{"version":3,"sources":["Actions/Types.js","services/accessTokenService.js","Actions/UserActions.js","SiteConfigs/translations-config.js","services/languageService.js","Utils/cssHelper.js","Routes/Routes.js","Reducers/NewsReducer.js","Reducers/PriceChartReducer.js","Reducers/QuotesReducer.js","Reducers/UserReducer.js","Reducers/UtilityReducer.js","Reducers/CommoditiesReducer.js","Reducers/CommoditiesChartReducer.js","Reducers/CurrencyChartReducer.js","Reducers/IndexReducer.js","Reducers/rankingsReducer.js","Reducers/symbolSearchReducer.js","Reducers/technicalAnalysisReducer.js","Reducers/xrefReducer.js","Reducers/OptionsReducer.js","Reducers/OptionsQuoteListReducer.js","Reducers/watchlistReducer.js","Reducers/QuotelistReducer.js","Reducers/MorningstarReducer.js","Reducers/PremiumDiscountChartReducer.js","Reducers/ResearchReducer.js","Reducers/CorporateDividendsReducer.js","Reducers/dividendsPerShareChartReducer.js","Reducers/Growth10KChartRedurcer.js","Reducers/AnnualPerformanceChartReducer.js","Reducers/GlobalExposureChartReducer.js","Reducers/TrailingReturnsChartReducer.js","Reducers/CurrentRatiosReducer.js","Reducers/StockEarningsReducer.js","Reducers/EquitiesGeneralTrkdReducer.js","Reducers/StockEarningsChartReducer.js","Reducers/FinancialsReducer.js","Reducers/FundDataReducer.js","Reducers/LipperReducer.js","Reducers/AddEtfReducer.js","Reducers/SimilarEtfsReducer.js","Reducers/AlertsReducer.js","Reducers/screenerUtilsReducer.js","Reducers/TodaysTopSectorsReducer.js","Reducers/FundIndexReducer.js","Reducers/UpgradesDowngradesReducer.js","Reducers/BuzzNewsReducer.js","Reducers/MarketsOverviewReducer.js","Reducers/index.js","Actions/UtilityActions.js","Sagas/MarkitDataSaga.js","Sagas/index.js","Sagas/CibcDataSaga.js","Utils/iframeCommunication.js","index.js","SiteConfigs/configureStore.js","Routes/asyncComponent.js","Views/Shared/ErrorBoundary/ErrorBoundary.js","Utils/chartColorHelper.js","assets/images/ErrorWarning.svg","Utils/apiParametersBuilderHelper.js","services/MarkitApi.js","Actions/QuotesActions.js","Actions/AlertsActions.js","Utils/writeToDebug.js","services/showDebugTransforms/showDebugRequestTransform.js","components/NoData/NoData.js","Utils/format.js","SiteConfigs/pages-config.js","Views lazy /^/.//.*$/ groupOptions: {} namespace object","Actions/watchlistActions.js","Sagas/sagaHelpers.js","Utils/pathUtils.js","Actions/QuotelistActions.js","Actions/xrefActions.js"],"names":["createTypes","retrieve","localAccessToken","accessTokenFromQueryString","getTokenFromQueryString","accessTokenMeta","document","querySelector","accessTokenFromMeta","getAttribute","accessTokenFromLocalStorage","localStorage","getItem","getPreviousToken","receiveUserInfo","response","type","Types","API_CIBC_RECEIVE_USER_INFO","receiveUserInfoFail","API_CIBC_RECEIVE_USER_INFO_FAIL","handleLoader","fetchName","API_CIBC_HANDLE_USER_INFO","requestUserInfo","API_CIBC_SINGLE_REQUEST_USER_INFO","endPoint","ajaxType","onSuccess","loader","translations","en","locale","messages","__RECENT__","above","aboveAverage","above52WeekHigh","above52WeekHighDescription","accountingChange","accountsPayable","accountsReceivable","accptOutstanding","accruedExpenses","accruedInvestIncome","accumGoodwillAmort","accumIntangibleAmort","accumulatedDepletion","accumulatedDepreciation","additionalPaidInCap","acqBusiness","actionCantBeUndone","add","addCriteria","addCriteriaSRDirections","additionalPerShare","addNewAlert","addOption","addOptionSymbol","addOptionSymbolAndGoTo","address","addSelectedToWatchList","addToWatchListAndCloseDialogue","addSymbolsUsingTheSearchAbove","addSymbolsUsingTheSearchAboveOrSelectOpton","addToQuoteList","addToWatchList","addToWatchlistSr","addToWatchlistSymbolSr","Advanced","advancedChart","advancedChartSr","advancedChartSrOnly","advertExpense","age","alertType","alertTypeSet","alertsAgreement","alertsAgreementHidden","alertsPref","alertsPrefDisclaimer1","alertsPrefDisclaimer2","alertsPrefEmailNote","alertsPrefMsg0","alertsPrefMsg1","alertsPrefMsg2","alertsPrefMsg3","alertsPrefMsg4","alertsPrefMsg5","amortAcqCosts","amortDeferPolicyAcqCosts","amortIntangibles","amortization","amortOAcqCosts","amortOfAcqCosts","amortOfIntangibles","amortPolicyAcquisitionCost","all","allcanada","allMarketDisclaimer","allunitedstates","allocation","allowFundsDurConst","allSectors","allFundType","allFundPromoters","allKeywords","alpha","alphaYear","analystConsensus","analystConsensusTooltip","MSDPrimaryIndexAlphaY1Ptile","MSDPrimaryIndexAlphaY3Ptile","MSDPrimaryIndexAlphaY5Ptile","MSDPrimaryIndexAlphaY10Ptile","MSDPrimaryIndexAlphaY1","MSDPrimaryIndexAlphaY3","MSDPrimaryIndexAlphaY5","MSDPrimaryIndexAlphaY10","alphaDescription","alphaVsCategory","alphaVsCategoryTooltip","alreadyInWatchList","alreadyInWatchList2","alternative","alternativeenergy","analysts","analystRating","analystReportsPreview","analystEstimate","analystReports","analystReportAlerts","analystReportsDisclaimer1","analystReportsDisclaimer2","analystReportsDisclaimer3","annualEps","announcementDate","annualizedReturnsTooltip","analystOpinions","annual","annualOption","semiannual","annualIncomeStatementItem","annualBalanceSheetItem","annualCashFlowItem","annualDividend","annualIncomeStatement","annualPerformance","annualPerformanceChartDataFollows","annualPerformanceData","annualized","annualizedReturns","annualizedPerformance","anyKeywords","apply","applySrOnly","articleByDate","ascending","ask","askLots","askLotsCapitalization","askLotsCapitalization2","askSharesCapitalization","askSharesCapitalization2","askLotsSrOnly","asOf","dailyMarketAsOf","asOfMarketClose","asOfPreviousClose","asOfPreviousClose2","asOfPreviousMonthEnd","assets","assetClasses","assetClass","assetAllocation","assetAllocationInfo","availableWatchlists","average","averageCost","averageVolume10Day","averageVolume10DayDescription","balanced","balanceSheet","banks","Basic","basicRanges","basicRangesSR","basicmaterials","MSDStockSectorBasicMaterials","basicNormalEPS","basicPrimarEPSExclExtraItems","basicPrimarEPSInclExtraItems","basicPrimarWeightAvShares","below","belowAverage","belowB","below52WeekLow","below52WeekLowDescription","bearishMovingAverageCrossover","bearishMovingAverageCrossover_desc","bearishRSI","bearishRSI_desc","bearishStochastics","bearishStochastics_desc","beta","betaYear","MSDPrimaryIndexBetaY1Ptile","MSDPrimaryIndexBetaY3Ptile","MSDPrimaryIndexBetaY5Ptile","MSDPrimaryIndexBetaY10Ptile","MSDPrimaryIndexBetaY1","MSDPrimaryIndexBetaY3","MSDPrimaryIndexBetaY5","MSDPrimaryIndexBetaY10","beta1Year","betaDescription","betaVsCategory","betaVsCategoryTooltip","beverages","bid","bids","bidLots","bidLotsCapitalization","bidLotsCapitalization2","bidSharesCapitalization","bidSharesCapitalization2","bidLotsSrOnly","billion","bookRatio","bookValue","bonds","both","bottomNMovers","bottomPriceMovers","bottomPerformers","bottomPctMovers","bottomMovers","buildings","bullishMovingAverageCrossover","bullishMovingAverageCrossover_desc","bullishRSI","bullishRSI_desc","bullishStochastics","bullishStochastics_desc","buttonView","breakevn","byChain","byCustom","byExpiry","byStrike","calls","call","callPut","calendarYearReturns","canadaGrowthAtReasonablePrice","canadaGrowthAtReasonablePrice_desc","canadaLowPEStocks","canadaValueStocks","canadianEquityETFs","canadianEquityETFs_desc","canadianDollars","canadianEquity","canadianNews","canadianPrime","canadianResearchReview","canadianResearchReviewDescription","cancel","cancelSr","cancelWatchlist","capEx","capitalgoods","capitalLeastObligations","capitalPreservation","capLabel","cashFlowStandAlone","cash","cashDividsPaidCommon","cashDividsPaidPreferred","cashInterestPdSuppl","cashPayments","cashReceipts","cashTaxesPdSuppl","cashDueBanks","cashEquivalents","cashShortTermInv","categoryAverage","category","categoryRankTooltip","categoryRank","change","changeContextChangement","changeContextVariation","changeDollars","changeOf","changePercent","changesWorkingCapital","changeToETFDetails","chargesMayNotBeApplicable","chart","charts","chartUnavailable","checkYourNotifications","chemicals","cibcFunds","cibcWorldMarkets","cibcWorldMarketsLower","clearList","closeMenu","close","closeWindow","closeDialogueSrOnly","closeCopy","Commentary","commercialPaper","commonStockQCMS","commonStockSCMS","commishFeeSecurityAct","commodities","commoditiesInUsDollars","commodity","commonStockNet","communicationservices","MSDStockSectorCommunicationServices","company","Compare","comparedToIndustry","compareLimitReached","companyOverview","compareToSymbol","comingSoon","constructionProgress","consumercyclical","MSDStockSectorConsumerCyclical","consumercyclicals","consumerdefensive","MSDStockSectorConsumerDefensive","consumerDiscretionary","consumergoods","consumerservices","consumerStaples","conglomerates","consensusEstimate","contactInfo","cost","convertible","convPrefStkNonRdmbl","costOfRev","costRevenueTotal","country","countryDescription","createNew","createNewScreen","createNewWatchlist","creditCardFee","creditQuality","creditDuration","creditordebit","creditQualityRating","creditQualityRatingDescription","creditYears","crosses","cfra","currentlyAddedSymbols","currentRatio","cumTransAdjst","currentFundCurrency","currPortLTDebtCapLs","customerAcceptances","customerAdvances","customizeScreener","customizeScreenerResults","customPeriodRange","customizeScreeners","customScreener","customSearch","cumulativePerformance","data","dataRetrieved","date","dateCreated","day","dayD","dailyChart","dayKCrosses","days","dayRange","dealerTradingAcctProfit","dealerTradingAcctLoss","deferredTaxes","definitions","definitionsSrOnly","delete","deleteSelected","deletePurchaseDetails","deleteSelectedSrOnly","deleteWatchlist","deleteWatchlistSr","deleteWatchlistHeader","delta","depletion","deposits","depreciation","depreciationAmortization","depreciationDepletion","depreciationExpense","depreciationSupp","depreciationSuppl","descending","description","detail","details","detailList","detailedList","detailValue","dilutedEPSExclExtraItems","dilutedEPSInclExtraItems","dilutedNormalEPS","dilutedWeightedAveShares","dilutionAdj","disclosures","discontinuedOps","display","displayBy","displayCurrency","distribution","distributionChart","distributionChartUnavailable","noDistributionInformationMF","distributionDetail","distributionFrequency","distributionFrequencyDescription","distributionInformation","distributionInformationAmounts","distributionsPerYear","distributionYield","distributionYieldDescription","distributionsPerShare","distributionLabel","dividend","dividendInfo","dividendYield","dividendGrowthLabel","dividendGrowthLabel2","domesticbond","down","dpsCommonStockPrimaryIssue","djiaChartHidden","duplicateWatchlistNameError","defIncTaxLTAsst","defPolicyAcqCosts","deferredCharges","deferredGasCost","deferredIncomeTax","deferredIncomeTaxLBDT","deferredIncomeTaxLDTC","deferredIncomeTaxSBDT","deferrentInvTaxCredit","discontOpsCurrentAsst","discontOpsLiabili","discontinuedOperations","disctOpsLTAsst","dividendsPayable","domicile","doNotSend","duringThePriorTradingSession","earnings","earningsPerShare","economicInsights","economicInsightsDescription","economics","edit","editSearch","editWatchlistSrOnly","editScreenerName","editPurchaseDetails","educationDisclaimer","effectiveTaxRate","earningsValue","effectSpecialItemOnIncomeTax","electricity","electricOps","emailAddress","energy","MSDStockSectorEnergy","enterName","enterNumberToMax","enterNameForWatchlist","enterSpecificValues","equalToNLessThanM","equityInAffiliates","equityNetEarnLoss","equityStylebox","equityStyleboxDescription","errorDuringDownload","etfs","etfMenu","etfPortfolioDisclaimer","etfHoldingSearch","featuredScreens","featuredScreens2","fundClassesDisclaimer","fundClassification","fundPromoter","fundCommissionsDisclaimer","ema15day","ema50day","ema100day","ema200day","endDay","endMonth","endYear","enterPurchaseDetails","enterPurchaseDetailsSr","estimates","estimatesDisclaimer","estimatesStockScreener","editWatchlist","etfsCaption","etfCentre","etfsAtGlance","etfsOverviewTodaysMoversTooltip","equities","equity","equityFund","equityinvestmentinstruments","eps","epsGrowth","epsGrowthCFY","epsGrowthNFY","ESPODebtGuarantee","exactPhrase","examplePhone","exciseTaxPayment","excisTaxReceipts","exceededExpectations","exDivDate","exDividendDate","expirationDate","expiration","expired","expiry","expiryLabel","explorationProduction","extraItem","extraordinaryItemun","family","fax","fedFundResale","fedFundSoldSecSoldUnderRepurch","fedFundsREPO","feeCommishFromOp","feeOtherCustServ","FHLB","fiftyTwoWeek","financeCashFlowItem","financials","financialsFor","financialsPeriod","financialservices","MSDStockSectorFinancialServices","financialStrength","financialsType","finishedAddingCriteria","finishedAddingCriteriaError","filterBy","filterByClassification","filterByCountry","filterByDate","filterByEtfType","filterByFundFamily","filterByFundPromoter","filterByMovers","filterByPerformance","filterByPeriod","filterByPublication","filterByScreenType","filterBySector","filterByVolume","filterMoversBy","filterDataTypeBy","financialsTableDisclaimer","fiveYearBond","fiveYrAvgPreTaxMargin","fiveYrAvgOperatingMargin","fiveYrNetProfitMargin","fiveYrAvgNetProfitMarginGrowth","fiveYrAvgEffectiveTaxRate","fiveYrYieldGrowthRate","fiveYrYieldAvg","fixedincome","fixedIncome","fixedIncomeStylebox","fixedIncomeStyleboxDescription","fixedIncomeStyleboxCol1","fixedIncomeStyleboxCol2","fixedIncomeStyleboxCol3","fixedIncomeStyleboxRow1","fixedIncomeStyleboxRow2","fixedIncomeStyleboxRow3","fixedlinetelecommunications","float","foodproducers","foreclosedRealEstate","foreignbond","forexAdjustment","forexAdjustmentNonOp","forexEffects","ForexGains","forexLoss","format","fsiD","fsiE","fsiG","fsiH","fsiJ","fsiK","fsiN","fsiQ","fuelExpense","fuelPurchasedResale","fundamentals","fundamentalsStockScreener","fundCategory","fundCategoryDescription","fundCentre","fundCodes","fundDetails","fundDetail","fundFamily","fundFamilyDescription","fundName","fundNameLower","fundOverview","fundObjective","funds","fundsFromOpREIT","fundSnapshot","fundStructure","fundStructureDescription","fundType","fundTypeHeader","fundValue","fundMovement","fedFundsPurch","FHLBAdvances","fhlbStock","fuelInvent","getAnalystRatings","globalExposure","globalExposureDisclaimer","globalExposureError","globalExposureErrorPortfolio","greatestPremium","greatestDiscount","gamma","gain","gainSaleofAssets","gainSr","gainTotalSr","gasOps","generalindustrials","generalretailers","genPartnerDistro","getLatestCommentary","gold","goldSr","grossDividendCommStock","grossPremWritten","grossRev","groupBy","growth5Year","growth10K","growth10KText1","growth10KText2","growthNfy","grossMargin","gasStorageInvent","generalPartner","goodwillGross","goodwillNet","headlinesOnly","headlinesAndDocumentBody","healthCare","healthcare","MSDStockSectorHealthcare","high","highPriceContext","highLow","highLowLabel","hide","hideCallsSrOnly","hidePutsSrOnly","hideCriteriaMatches","holdings","etfHoldingsContent","etfHoldingDisclaimer","holdingsMentioned","hyphen","highEstimate","impAssetsHeldSale","impAssetsHeldUse","impliedVolatility","inactive","inANewDialogue","inANewWindow","industrialtransportation","inception","inceptionDate","includeLeveraged","inceptionDateDescription","incomeAvailCommonExclExtraItems","incomeAvailCommonInclExtraItems","incomeHandling","incTaxExImpactofSpItem","indicationRatesNotActualRates","industrialengineering","industrials","MSDStockSectorIndustrials","industry","industryDataNotAvailable","informationTechnology","initialCharge","insights","insurCommishFeePrem","int","intangibleNet","interAdjPrimaryEPS","interCapitalOp","interCapNonOp","interDivsInvestSecurs","interesonDeposits","interest","interestCapSuppl","interestCoverage","interestExpenseSuppl","interestFeeLoans","interestIncomeBank","interestIncomeNonBank","interestIncomeNetNonOp","interestIncomeNonOp","interestIncomeOp","interestInvestIncomeNonOp","interestOnDeposits","interExpenseNetNonOp","interExpenseNetOp","interExpenseNonOp","interExpenseOp","interInvestOp","internationalEquity","internationalEquityAbbrv","internationalEquityETFs","internationalEquityETFs_desc","interOnOtherBorrow","inTheMoney","indexName","indexMovement","indicatorInput","invalidCharacterError","inventories","inverseEtf","inverseLeveragedETFs","inverseLeveragedETFs_desc","inverseDisclaimer","investIncomeOp","investIncomeNonOp","investmentType","investmentGoal","investmentNet","investmentValuation","investmtSecurityLoss","investSecGains","issRetirmntDebtNet","issRetirmntStockNet","incomeTaxPayable","insruanceReserve","insuranceReceivables","intangibleGross","interestBearingDept","interestEarnDeposits","interestRateSensitivity","interestRcvbl","inventFinishedGoods","inventOther","inventRawMaterial","inventWIP","keyCanadianRates","keyUsRates","keyword","keywords","keywordResultsBy","laborRelatedExpense","lastTrade","lastTradeHeader","lastChange","lastUpdatedToday","lastUpdated","last","lastLabel","lastClose","lastBidLots","lastAskLots","lastPrice","lastWeek","last2Weeks","last4Weeks","latestEconomicReports","latestEquityReports","latestEtfCommentary","latestPdfReports","latestDividend","latestPaymentDate","latestExDistributionDate","latestDistributionAmount","legalStructure","leisuregoods","less","leveragedEtf","leveragedDisclaimer","lifeinsurance","listBy","litigation","litigationExpense","load","loadLabelFr","loanLossProvision","loanOriginationInvest","loans","longDurationHighQuality","longDurationMediumQuality","longDurationLowQuality","longTermDebtIssued","longTermDebtNet","longTermDebtReduce","loss","lossBeniesAdjust","lossBeniesAdjustTotal","lossSaleAsts","lossSr","lossTotalSr","lots","lowHigh","low","lowPriceContext","lowAndHigh","lowEstimate","longStrategy","longStrategyChart","longPosition","largeCapValue","largeCapBlend","largeCapGrowth","longTermDebtEquity","lipperLeaders","landImprovements","leases","lifoReserve","limitedPartner","loanLossAllowances","loansHeldSale","longTermDebt","longTermInvestment","LTInvntOther","LTInvtAffiliateComp","machineryEquip","maCrossover15_50","minPensionLiabiliAdj","midCapValue","midCapBlend","midCapGrowth","makeDefaultWatchlist","managementEffectiveness","managerDeclared","manager","market","marketCentreDisclaimer","marketValue","marketsOverview","marketOverview","marketsOverviewBanner","markets","marketLabel","marketClose","marketCentre","marketMovers","matches","mixedEquity","materials","moreReports","marketCap","marketCapShort","marketCapShort2","marketMoversHeading","marketDataDelayedBy15","marketDataIsRealTime","marketsOverviewDelayedBy15","maxHoldingsReached","maxQLHoldingsReached","media","MER","MERDescription","mediumDurationHighQuality","mediumDurationMediumQuality","mediumDurationLowQuality","million","minimumAdditionalInvestment","minimumInitialInvestment","minimumInvestmentsTooltip","mining","minorityInterest","minPensionLiabAdj","minPensionLiabGain","minPensionLiabilLoss","miscEarnAdjs","missedExpectations","mobileNumber","mobiletelecommunications","month","monthly","monthlyOption","monthlyFxOutlook","monthlyFxOutlookDescription","moreNews","moreMarketMovers","moversMarketFilter","more","morningstarAnalyst","morningstarEquityStylebox","morningstarEquityStyleboxSr","morningstarEquityStyleboxCol1","morningstarEquityStyleboxCol2","morningstarEquityStyleboxCol3","morningstarEquityStyleboxRow1","morningstarEquityStyleboxRow2","morningstarEquityStyleboxRow3","morningstarFixedIncomeStylebox","morningstarFixedIncomeStyleboxSr","morningstarOverallRisk","morningstarOverallReturn","morningstar3YearRisk","morningstar3YearReturn","morningstar3YearRating","morningstar5YearRisk","morningstar5YearReturn","morningstar5YearRating","morningstar10YearRisk","morningstar10YearReturn","morningstar10YearRating","morningstarQuant","morningNewsCall","morningNewsCallWC","usMorningNewsCall","usMorningNewsCallWC","insightDescription","morningstarReturn","morningstarOverallRating","morningstarReturnRating","morningstarRisk","morningstarStylebox","morningstarBenchmark","morningstarStylbox","morningstarRating","morningstarRatingButtonSr","morningstarRatings","morningstarRiskRating","morningstarReports","morningstarAnalystCommentary","morningstarAnalystReport","morningstarTooltip","morningstarStockTooltip","morningstarRiskTooltip","morningstarDisclaimerETF","mostActive","mostRecentQtr","movingAverageCrossover","movingAvgXOVer","movingAverageCrossoverDescription","mrq","moneyMarket","mrq1YrAgo","municipalBond","municipalbond","mutualFunds","mutualFundsLower","refinitivLipperDisclaimerTitle","refinitivLipperDisclaimerText","RUTRBCIndustry","ruMktCapUS","ruPriceLast","ruPriceChange","RUTRBCSector","ruVol10dAvg","mutualFundsLabel","mutualFundCaption","myAlerts","myWatchLists","myWatchListsNewDialog","myQuoteLists","myCriteria","mySearches","mySearchesPlaceholder","nStars","NA","name","nasdaqChartHidden","nav","NAVShare","nearTheMoney","netAssetValue","netCashBeginBalRsrvFutUse","netCashEndBalRsrvFutUse","netChangeCash","netIncome","netIncomeAfterTax","netIncomeBeforeExtraItems","netIncomeBeforeTax","netInterestInAfterLoanLoss","netInterestIncome","netInvestmentIncome","netPercentAllocation","netPercentOfHoldings","netPremEarned","netSales","newWatchlist","new","news","News","newAboutThisEtf","newsHeadlines","newsTeaserHeadline","newWatchlistName","nextArticles","no","noData","noDataAvailable","noDistributionsInformation","noETFHoldingsNews","noMutualFundsAreInThisQuotelist","nonCashItems","nonclassifiedequity","noNewsAvailable","noneDeclared","nonequityinvestmentinstruments","nonInterestExpenseBank","nonInterestIncomeBank","nonlifeinsurance","noOptionsAreInThisQuotelist","noRecentSymbols","noReportsAvailable","noReportsAvailableForThisEtf","normalIIncAvailtoCommon","normalIncomeAfterTax","normalizedIncomeBeforeTax","northAmericanMarkets","noSavedScreens","noSymbolsInWatchlist","noSymbolsAreInThisQuotelist","noSecuritiesAreInThisQuoteList","noSymbolsAreInThisWatchlist","noTopHoldings","noTopSectors","noWatchLists","noWatchListsLong","noWatchListsLongLink","numberOf","numberOfShares","numberOfResults","numberOfUnits","numberOfContracts","numberOfDaysWithinNav","numberOfDaysAtPremium","numberOfDaysAtNav","numberOfDaysAtDiscount","numberOfFundsInCategory","numberOfHoldings","numOfAnalysts","natResources","netLoans","nonInterestBearingDept","noteRcvbleLongTerm","notesPayableSTDebt","notesRcvbleShortTerm","off52WeekHigh","off52WeekHighSr","officerNameTitle","ok","okSr","okSr2","of","oil","oilSr","onAssets","oneMonth","onEquity","oneWeek","oneYear","operatingMargin","open","openAlert","openMenu","openSymbol","openHelpContent","openInt","openInterest","openSymbolMenu","opIncome","opsMaintenance","options","optionChain","optionsExercised","optionsNotFound","optionChainFor","openPdf","openPdfInANewWindow","openInANewWindow","openPdfSr","optionsCaption","optionDetails","optionDetailsSrOnly","outOfTheMoney","other","MSDRegionOther","others","otherAssets","otherExpense","otherFinancingCashFlow","otherInsuranceRev","otherInterestIncome","otherInvestCashFlow","otherInvestCashFlowTot","otherNet","otherNonbankIncome","otherNonCashItems","otherNonInsurRev","otherNonOpIncomeExpense","otherNonutilRev","otherOpExpense","otherOpExpenseTotal","otherRev","otherRevenue","otherRevTotal","otherUnusualExpense","otherUnusualIncome","otherUtilRev","otherAssetsTotal","otherBearingLiabili","otherBearingLiabiliTotal","otherComprehensiveIncome","otherCurrLiabiliTotal","otherCurrentAsst","otherCurrentAsstTotal","otherCurrntLiabili","otherDept","otherEarningAsst","otherEquity","otherEquityTotal","otherErngAsstTotal","otherLTLiabilities","otherLibailities","otherLibailitiesTotal","otherLongTermAsst","otherPayables","otherPolicyholdFunds","otherPropPlantEquip","otherRcvlble","otherRealEstateOwned","otherSTBorrow","otherShortTrmInvest","overall","Overall","overallReturn","overallReturnDescription","overallRisk","overallRiskDescription","overallTimeframe","overThe","overview","Overview","page","pageCount","payableAccrued","payoutRatio","pctChange","pdfReports","pE","peRatio","peRatioTTM","percentChange","performers","period","pleaseSelectAListToAddTo","policyLoans","preferrredStockNet","prepaidExpense","primary","primaryEmail","principPaymntSecurit","primarySr","priceAtLaunch","priceEarnings","priceSales","priceSalesRatio","priceCashFlow","priceCashFlowRatio","priceTangibleBook","priceFreeCashFlow","pricing","pricingAndVolume","pricingVolume","percentOfHolding","percentOfHoldings","percentOfNetAssets","percentOfDaysWithinNav","periodRangeError","performance","performanceReview","personalgoods","phone","pleaseNameYourWatchList","pleaseNote","pleaseSelectSymbols","pleaseTryAgain","portfolio","portfolioReview","portfolioAllocation","portfolioTurnover","portfolioTurnoverDescription","preferences","preferred","preferredDiv","product","previousArticles","previousClose","previousCloseRange","previousCloseRangeDescription","previousMonthEnd","premiumDiscount","premiumDiscountDailyChart","premiumDiscountDaily","premiumDiscountToNav","premDiscountChartDisclaimer","premiumAndDiscountDays","premiumAndDiscountAmts","preTaxMargin","price","pricePerformancePrix","priceRatio","priceChange","sur","priceDollarGainers","priceDollarLosers","pricePctGainers","pricePctLosers","pricePerContract","pricePerformance","pricePerShare","pricePerUnit","profile","profitability","profitMargin","proFormaAdj","proFormaBasicEPS","proFormaDilutedEPS","proFormaNetIncome","propertyTax","provisionIncomeTax","purchAcqIntangibles","purchaseDetails","purchasedPower","purchasedRandDWrittenOff","purchaseDetailsCurrency","purchaseFixedAssets","purchaseInvestment","purchaseRD","puts","put","pensionBeneOverfunded","pensionBenefitsUnderfunded","policyLiabilities","prefStockNonRdmbl","prefStockNonRdmblNet","propPlantEquipGross","propPlantEquipNet","provDoubtAccts","quarterly","quarterlyOption","quarterlyIncomeStatementItem","quarterlyBalanceSheetItem","quarterlyCashFlowItem","quickScreener","quintileForIndustry","quotedetail","quotesDelayedBy15","quickRatio","quarterlyEps","rAndD","rangeVariable","rate","ratingSummary","ratingSummaryText1","ratingSummaryText2","ratingSummaryText3","ratingSummaryText4","ratingSummaryText5","ratingSummaryText6","ratingSummaryText","ratingPrevSummaryText","rating","ratio","rename","readArticle","readCommentarySR","readCommentary","readArticleSr","readMoreReports","realestate","MSDStockSectorRealEstate","realestateinvestmenttrusts","realEstateOpExpense","realEstateOpGain","realizedGainLoss","recentEtfs","recentEtfsHidden","recentSymbolNews","recentWatchlistNews","redemptionCharge","refreshList","refinitivDisclaimer","reinsuranceExpense","reinsuranceIncome","relativeStrengthIndex","relativeStrengthIndexDescription","relativeVolume","removeSelected","reports","reportNotAvailable","reportsReview","repurchRetirementCommon","repurchRetirementPreferd","repurchRetirmntCommonPreferr","restructuringCharge","reportTitle","researchHighlights","results","resultsNoCount","return","returnYear","returns","returnToNews","returnToReports","returnToCommentary","returnsNotAnnualized","returnOnAssets","returnOnAssets2","returnOnInvestments","returnOnEquity","returnOnEquity2","revenue","review","reviewCharts","reviewChartsSymbolSr","reviewLipperLeaders","reviewLipperLeadersSymbolSR","reviewScreen","reviewSavedScreens","reviewSavedSearches","reviewSnapshotSR","reviewPerformanceSR","reviewPortfolioSR","reviewReportsSR","revenueGrowthNfy","revenueGrowthNfy2","revenuePerShare","revenueGrowth","reviewCommentary","reviewSpecificCommentary","reviewFundamentals","reviewPerformance","reviewPortfolio","reviewMarketsAtAGlance","reviewNumResults","reviewNMatches","rho","rsi14d","rSquaredVsCategory","rSquaredVsCategoryTooltip","rdmblConvPrefStock","redeemablePrefStockSRPR","redeemablePrefStockZPSK","reinsuranceAsst","reinsuranceLiability","repurchaseAgreements","reserves","restrictedCashCurrent","restrictedCashLT","retEarnAccumDeficit","risk","rSquared","rSquaredYear","MSDPrimaryIndexRSquaredY1Ptile","MSDPrimaryIndexRSquaredY3Ptile","MSDPrimaryIndexRSquaredY5Ptile","MSDPrimaryIndexRSquaredY10Ptile","MSDPrimaryIndexRSquaredY1","MSDPrimaryIndexRSquaredY3","MSDPrimaryIndexRSquaredY5","MSDPrimaryIndexRSquaredY10","rSquaredDescription","saleBusiness","saleFixedAssets","saleIntangible","saleIssuanceCommon","saleIssuancePreferred","saleIssueCommonPrefrd","saleMaturityInvestments","salesRatio","salesReturnAllow","save","saveAs","saveScreenInNewDialog","saveAsNewScreenInANewDialog","savedAdvancedSearches","savedScreenLinkCaption","savedScreens","savedScreensCaption","saveSr","saveAndCloseDialogue","savedItems","savedSearches","saveWatchlist","screenIncludesCriteria","screenName","Screener","ScreenerDistribution","screenerFundType","screenerFundTypeDescription","screenerPortfolio","screeners","screenerLinkSr","screenerPreview","search","searchByKeyword","searchIn","searchOrSecurity","searchSymbol","searchSymbolOrSecurity","searchSymbolOrCompany","searchSymbolToAddToList","secondaryEmail","sectorEquity","security","selectOne","selectOneOrMore","selectPeriod","selectaListToAdd","selectWatchList","selectWatchlistSrOnly","selectYourCriteria","selectAll","selectSector","selectSectorFirst","selectSymbol","selectSymbolBasic","selectSymbolFromQuoteList","selectAllSecurities","selectAllOptions","selectAllFunds","selectAllQLSecurities","selectAStrikePrice","selectMaxCompare","selectYourCriteriaFromDropdown","sellGenAdminExpenseTotal","sellingGenAdminExpense","seriesBy","setAlerts","setStockAlert","setWatchListAlerts","setSymbolAlerts","services","shares","sharpeRatio","sharpeRatioYear","MSDSharpeRatioY1Ptile","MSDSharpeRatioY3Ptile","MSDSharpeRatioY5Ptile","MSDSharpeRatioY10Ptile","MSDSharpeRatioY1","MSDSharpeRatioY3","MSDSharpeRatioY5","MSDSharpeRatioY10","sharpeRatioDescription","sharpRatioTooltip","sharesOutstanding","sharesRelated","shortDurationHighQuality","shortDurationMediumQuality","shortDurationLowQuality","shortPosition","shortRestriction","shortStrategy","shortStrategyChart","shortTermDebtIssued","shortTermDebtNet","shortTermDebtReduce","show","showAll","showChangeInDollars","showChangeInPercent","shownIn","sliceNumber","silver","silverSr","sixMonthTBill","similarETFs","similarETFsNotFound","simpleRange","since","size","slowStochastics","sma15day","sma50day","sma100day","sma200day","smallCapBlend","smallCapGrowth","smallCapValue","snapshot","snapshotReview","snapshotLower","snapshotPortfolioDisclaimer","softwareDevCosts","sortBy","sortable","sp500ChartHidden","spTsx60ChartHidden","spTsxCompChartHidden","spTsxVentureChartHidden","standardDeviation","standardDeviationYear","MSDStandardDeviationY1Ptile","MSDStandardDeviationY3Ptile","MSDStandardDeviationY5Ptile","MSDStandardDeviationY10Ptile","MSDStandardDeviationY1","MSDStandardDeviationY3","MSDStandardDeviationY5","MSDStandardDeviationY10","standardDeviationDescription","standardDeviationTooltip","starsOfStarsRating","starsOfStarsMaxRating","startDay","startMonth","startYear","steamOps","stochasticOscillator","stochasticOscillatorDescription","stockBaseComp","stockScreener","stockCentre","stocksETFsIndices","strike","strikesShown","strikePrice","strikeType","stockDetail","source","stocks","stocksAndIndicesCaption","stockEarningsChartHeader","stockEarningsLink","subjectToChangeDisclaimer1","subjectToChangeDisclaimer2","suspendFrom","summary","supportservices","symbol","symbolLabel","symbols","symbolLastChangeBottom","symbolLastChangeTop","symbolCompany","symbolCompanyName","symbolChart","symbolDetails","symbolDoesNotHaveAnyOptions","symbolInactive","symbolsForWatchlist","symbolsInList","symbolDoesNotExist","symbolNotFound","symbolNotFoundTryAgain","secDepotsits","secIndbtdRltPrts","securitiesHeld","securitiesSale","sepAccntLiability","seperateAcctAssets","shortTermInvs","shrOutComSktIss2","shrOutComSktIss3","shrOutComSktIss4","shrOutsPrimaryLss","shrsOutPrefPrimaryIss","shrsOutPrefStkIss2","shrsOutPrefStkIss3","shrsOutPrefStkIss4","shrsOutPrefStkIss5","shrsOutPrefStkIss6","startEtfScreener1","startEtfScreener2","tobacco","taxableBond","taxablebond","taxOnExtraItem","tCost","technicalAnalysis","Technical","technicals","technology","MSDStockSectorTechnology","telecommunications","telecommunicationServices","tenure","tenYearBond","test","text","the","theLowerCase","thereAreCurrentlyNoGainers","thereAreCurrentlyNoLoser","thereAreNoReports","thereAreNoNewsReports","theta","theWeekAhead","theWeekAheadWC","theWeekAheadAnalystReports","theWeekAheadDescription","timeframe","thirtyYearBond","thisOptionHasExpired","thousand","threeMonth","threeMonthTBill","threeYearTBill","to","tools","toUpperCase","toContextDe","toLowerCase","today","todaysChange","todaysChangeSr","todaysMovers","todayFunds","todayIndex","todaysOpen","todaysRange","todaysRangeButtonSr","topPerformingBelowAverageMEREquityETFs","topPerformingBelowAverageMEREquityETFs_desc","topPerformingEmergingMarketsETFs","topPerformingEmergingMarketsETFs_desc","top10Holdings","top10HoldingsDescription","topGlobalHoldings","topGlobalHoldingsDescription","topGlobalHoldingsTooltip","topHoldings","topNMostActive","topNMovers","topPctMovers","topPerformers","topPriceMovers","topMovers","topSectorHoldings","topSectorHoldingsDescription","topSectorsByPercent","topSectorsHeld","topSecuritiesHeld","total","totalAdjToNetIncome","totalAssets","totalAssetsLowerA","totalCashDividsPaid","totalCashFinancing","totalCashInvest","totalCashOps","totalDebtEquity","totalDebtIssue","totalDebtReduce","totalExtraItem","totalGainLossOf","totalInterestExpense","totalNetAssets","totalNetAssetsShort","totalNetAssetsDescription","totalNetAssetsRange0to10M","totalNetAssetsRange10to50M","totalNetAssetsRange50to500M","totalNetAssetsRange500to1000M","totalNetAssetsRangeabove1000M","totalOpExpense","totalPremEarned","totalRev","totalSpecialItems","totalReturnPerformance","trade","tradeSr","trailingTwelveMonths","typeContextCategory","trStockReports","tradePricesAndQuotes","tradingAcctInterest","trailingReturnPeriod","trailingRollingReturns","trailingRollingReturnTooltip","treasuryStock","ttm","ttm1YrAgo","ttmLabel","totalCurrentAsst","totalCurrentLiabili","totalDebt","totalDept","totalEquity","totalGrossLoan","totalInvent","totalInvestSec","totalLibailities","totalLongTermDebt","totalRcvbleNet","totalSTBorrow","totalShareholdersEquity","totalUtilPlantNet","tradeAcctsRcvbleGross","tradeAcctsRcvbleShortTerm","tradingAcctAsst","transportation","treasuryStockCommon","treasuryStockPref","trsyShrCommIss2","trsyShrCommIss3","trsyShrCommIss4","trsyShrCommPrimaryLss","trsyShrPrefIss1","trsyShrPrefIss2","trsyShrPrefIss3","trsyShrPrefIss4","trsyShrPrefIss5","trsyShrPrefIss6","ttlCommSharesOuts","unableToLoadPage","underlying","underlyingprice","underwritingCommissions","units","unrealizedGain","unrealizedGains","unrealizedLoss","unrealizedLossGains","unusualExpenseIn","up","us","usGrowthAtReasonablePrice","usGrowthAtReasonablePrice_desc","usLowPEStocks","usValueStocks","usCommodityETFs","usCommodityETFs_desc","usDollars","usePreviousSearch","usEquity","usEquityETFs","usEquityETFs_desc","usFixedIncomeETFs","usFixedIncomeETFs_desc","usGaapAdj","usPrime","ususualItems","usVsCanadianDollars","USvsCanadianSrOnly","usNews","utilities","MSDStockSectorUtilities","unbilledUtilRev","unearnedIncome","unearnedPremRev","unrealizedGainLoss","utilPlant","utilPlantAccumDeprc","utilPlantNet","vacationStop","value","valuation","vega","viewAll","viewBy","viewMore","viewTop5","viewTop10","viewMoreReports","viewMarketMovers","viewMoreNewsHeadlines","viewOption","volume","avgVolume","threeMonths","threeMonthsSr","volatility","vsSnP500","vsSnP5004Week","vsSnP50052Week","warrantsConverted","watchlist","watchlistDeliveryConfigured","watchlistAlertDescription","watchlistAlerts","watchlistAlertsDescription","warningIcon","watchlistDataUnavailable","watchlistDataUnavailable2","watchlistDataUnavailable3","watchlistInsufficientCapacity","watchlistTotals","watchlistNameLenghtError","watchlistNews","watchlistSymbolDetail","waterOps","web","weekly","weeksVariable","yearly","yes","yield","yieldLabel","youMustSelect","yourSelectionAltersData","ytd","ytdEtfPerformance","ytdPct","ytdReturn","yourWatchlistEmpty","yourPdfDownloaded","alternativecreditfocused","alternativeequityfocused","alternativemarketneutral","alternativeother","asiapacificequity","bankloan","bearmarket","canada","MSDRegionCanada","canadaAndUS","canadiancorporatefixedincome","canadianequity","canadianequitybalanced","canadianFixedIncomeETFs","canadianFixedIncomeETFs_desc","canadianfixedincome","canadianfixedincomebalanced","canadianinflationprotectedfixedincome","canadianlongtermfixedincome","canadianmoneymarket","canadianneutralbalanced","canadianshorttermfixedincome","chinaregion","commoditiesbroadbasket","commoditiesenergy","commoditiesfocused","communications","convertibles","corporatebond","daily","dailyVolume","diversifiedemergingmarkets","emergingmarketsbond","emergingmarketsequity","emergingmarketsfixedincome","emergingmarketslocalcurrencybond","energyequity","energylimitedpartnership","equityenergy","equitypreciousmetals","europestock","europeanequity","financial","financialservicesequity","floatingrateloans","foreignlargeblend","foreignlargegrowth","foreignlargevalue","geographicequity","globalcorporatefixedincome","globalequity","globalequitybalanced","globalfixedincome","globalfixedincomebalanced","globalinfrastructureequity","globalneutralbalanced","globalrealestate","greaterchinaequity","health","highDistributionEquityETFs","highDistributionEquityETFs_desc","highyieldbond","highyieldfixedincome","highyieldmuni","highYieldFixedIncomeETFs","highYieldFixedIncomeETFs_desc","incomeStatement","indiaequity","infrastructure","intermediatecorebond","intermediategovernment","internationalequity","japanstock","largeblend","largegrowth","largevalue","latinamericastock","longgovernment","managedfutures","marketneutral","miscellaneousregion","miscellaneoussector","multialternative","multicurrency","multisectorbond","municalifornialong","muninationalinterm","muninationallong","muninationalshort","muninewyorkintermediate","muninewyorklong","munitargetmaturity","naturalresources","naturalresourcesequity","nontraditionalbond","northamericanequity","preciousmetalsequity","preferredsharefixedincome","preferredstock","realestateequity","sectorequity","shortgovernment","singlecurrency","smallblend","smallgrowth","smallvalue","tacticalallocation","tacticalbalanced","targetmaturity","ultrashortbond","usequity","usmoneymarket","worldallocation","worldbond","worldlargestock","year","yieldAndDate","yourSelectionDidNotYieldResult","strongBuy","buy","Buy","hold","Hold","sell","Sell","strongSell","Underperform","upwardTrend","downwardTrend","unchangedTrend","analystRatingText1","analystRatingText2","actualEarnings","earningSurprise","priceEarnings1","priceEarnings2","priceEarnings3","earningEstimate1","earningEstimate2","earningEstimate3","earningEstimate4","rose","fell","positiveSurprise","negativeSurprise","noAnaylystOpinions","earningsAnnouncement","exceededExp","missedExp","stockEarningsChartTooltip","estimatesLabel","qtrEarningsChartCaption","yrEarningsChartCaption","earningsChartCaptionSr","latestXdDate","dividendTaxationCode","distributionInformationMF","noDistributionInformation","updatedAsOf","lipperLeaderRatings","lipperLeaderTooltip","overallRating","overallRatingDescription","totalReturn","consistentReturn","preservation","lipperLeaderKey","lipperLogoAlt","lipperLeaderContent1","lipperLeaderContent2","lipperLeaderCaption","incomeDistributionbyDollar","sumofCalendarYear","fundUpdateDisclaimer","compareEtf","findAndCompare","avg10Day","etfObjective","annualReturns","calendarYearReturnsSr","annualReturnsSr","etfSimilarTo","Alpha","Beta","RSquared","premiumDiscount3Month","numOfDaysPremium","numOfDaysNAV","numOfDaysDiscount","numOfDays5Pct","overAll","sector","assetAllocSr","globalExposureSr","sectorSr","holdingsSr","findSimilarEtfs","similarEtfTooltipIntro","similarEtfTooltipPoint1","similarEtfTooltipPoint2","similarEtfTooltipPoint3","similarEtfTooltipConclusion","overallRatingSr","noDataForETF","topSectors","canadian","unitedStates","MSDRegionUnitedStates","compareWarningText","manageAlerts","marketAlert","marketAlerts","marketAlertsDescription","modifyMarketAlerts","exchange","exchangeTradedFunds","dailyListOfMostActiveStocks","toBeSentAt","percentage","gainers","losers","gainersAndLosers","timeframe1024","timeframe4096","timeframe65536","dailyListOf52week","new52week","highs","lows","highsAndLows","highAndLow","dailyListOfVolumeChanges","stocksWithTheLargest","increases","decreases","increasesAndDecreases","dailyListOfGaps","stocksThatOpenedAtLeast","higher","lower","higherAndLower","dailyListOfBreakouts","stocksWhose","lowPriceAboveYesterdaysHigh","highPriceAboveYesterdaysLow","lowHighPriceAboveBelowYesterdaysHighLow","dailyListOfStockSplits","pleaseNoteAlert","noEmailProvidedModal","noEmailProvidedModalPrefs","setEmailAlerts","tsx","tsxVenture","nyse","nasdaq","amex","addAlert","stockAlerts","stockAlertsFor","priceAndVolumeAlerts","priceDropsBelow","orRisesAbove","priceDropPoint","priceRisePoint","priceGap","atOpeningTrade","dropDownOptions","gapUp","gapDown","lastPriceAlert","peRatioAlert","peDropPoint","peRisePoint","reachesANew52Weekp1","reachesANew52Weekp2","symbolIsOfIts52WeekHighOfOn","priceChange1Week","priceChange4Week","priceChanges","fromPreviousClose","closeOnDate","priceChangeValue","crossed","crossesIts","movingAverage","crossesItsMovingAverage","movingAverageValue","changesAlert","fasterThanThe","overTheLast","changeValue","marketAlertLabel","spTsxComposite","djia","changePeriod","tradingVolumeExceeds10DayAverageBy","tradingVolumeExceeds10DayAverageBy2","rsiOverBoughtSold","rsiUnderBoughtSold","stockSplitAnnounced","earningEstimates","quarterlyEarningsEstimatesAnnounced","annualEarningsEstimatesAnnounced","mostRecentDate","newsAlerts","newsStoriesFromReuters","inDepthStories","analystReportsAlerts","analystReportsForAllProviders","companyBasedAnalystSearch","pleaseSetTheLowPrice","pleaseSetTheHighPrice","pleaseSetTheLowPe","pleaseSetTheHighPe","pleaseInputValues","editMarketAlert","editStockAlert","deleteAlert","peDropsBelow","inputValueToContinue","alert_52","alert_53","alert_56","alert_57","alert_58","alert_65","alert_66","alert_86","alert_87","alert_88","alert_89","alert_90","alert_91","alert_92","alert_93","alert_289","alert_1","alert_2","alert_3","alert_4","alert_5","alert_6","alert_49","alert_50","alert_168","alert_201","alert_202","alert_309","alert_310","alert_311","alert_376","alert_381","alert_430","alert_434","alert_435","alert_436","upgrades","upgradesSr","upgradesAndDowngrades","downgrades","downgradesSr","numOfUpgrades","numOfDowngrades","numOfTotalViews","pctUpgrades","pctDowngrades","consensusRating","analystsViews","upgradesBtnSr","downgradesBtnSr","selectAllSr","selectCustomSr","selectAllSrIndustry","holdControlKeyToSelect","MSDDomicileCountry","MSDCIBCETFType","includeStandardETFs","includeLeveragedETFs","includeInverseETFs","MSDMorningstarCategoryName","custom","addCriteriaToStart","criteria","minimizeCriteria","expandCriteria","criteriaMatches","screenMatches","removeCriteriaCategory","resetCriteria","resetAllCriteria","canadaEquity","addCriteriaToStartACustomSearch","showCriteriaMatchesToolTip","bottom20","belowAvg20","avg20","aboveAvg20","top20","from","eventDate","STXOverSMA15SMA50","movingAverageOver","movingAverageOverNone","currentlyAbove52WeekHigh","new52WeekLow","greaterThanEqualTo","greaterThanSymbolVariable","greaterThanEqualToSymbolVariable","lessThanEqualTo","lessThanSymbolVariable","between","and","specificRange","specificRangeSRPerformance","nonNumericError","fundStructureTooltip","exchangeCountryTooltip","removeSymbol","removeAllCriteria","globalHoldingSR","region","asia","MSDRegionAsia","europe","MSDRegionEurope","sectors","yourResults","standard","leveraged","inverse","bullish","bearish","asOfDatPreviousDayMonthEnd","startACustomScreenWithTheseCriteria","saveScreen","saveAsNewScreen","saveScreener","enterScreenName","nameMustNotbeMoreThan22","descriptionLongerThan100","deleteScreen","doYouWantToDeleteScreen","nameFieldMustBe3Characters","thisNameAlreadyExists","overYourSavedSCreenLimit","compareSelectedEtfs","error","STRSIPeriod2","STRSIPeriod14","STRSIPeriod20","reviewFundSnapshot","pleaseSelectCompareSymbols","youCanOnlySelect4","preScreeners","savedScreeners","saveSearch","saveSearchSrOnly","stockScreenMatches","sectorCurrency","yearChange","stockCriteria","expandStockCriteria","minimizeStockCriteria","canadaLowPEStocks_desc","usLowPEStocks_desc","canadaValueStocks_desc","usValueStocks_desc","cumulativeMatches","payoutRatioPercent","dividendYieldPercent","priceEarningRatio","growthRate5yearEps","revenueMillions","roePercent","roaPercent","netProfitMargin","greaterThan","lessThan","minimizeFundamentals","expandFundamentals","year1","twoYears","reutersConsensusEstimates","minimizeReutersConsensusEstimates","expandReutersConsensusEstimates","recommendations","annualRevenueInMillions","twoYearSingularEnglishOnly","threeYearSingularEnglishOnly","fiveYearSingularEnglishOnly","tenYearSingularEnglishOnly","annualEarningsPerShare","quarterlyRevenue","quarterlyEarningsPerShare","keywordSearchHeading","keywordSearchDescription","keywordSearchP1","keywordSearchP2","keywordSearchP3","keywordSearchP4","keywordSearchP5","keywordSearchTable1H1","keywordSearchTable1H2","keywordSearchTable1H3","keywordSearchTable1R1C1","keywordSearchTable1R1C2","keywordSearchTable1R1C3","keywordSearchTable1R2C1","keywordSearchTable1R2C3","keywordSearchTable1R3C1","keywordSearchTable1R3C3","additionalKeywordSearchHeading","additionalKeywordSearchDescription","additionalKeywordSearchP1","additionalKeywordSearchP2","additionalKeywordSearchP3","additionalKeywordSearchP4","additionalKeywordSearchP5","additionalKeywordSearchP6","additionalKeywordSearchP7","keywordSearchTable2H1","keywordSearchTable2H2","keywordSearchTable2R1C1","keywordSearchTable2R1C2","keywordSearchTable2R2C1_1","keywordSearchTable2R2C1_2","keywordSearchTable2R2C1_3","keywordSearchTable2R2C2","keywordSearchTable2R3C1_1","keywordSearchTable2R3C1_2","keywordSearchTable2R3C1_3","keywordSearchTable2R3C2","keywordSearchTable2R4C1","keywordSearchTable2R4C2","keywordSearchTable2R5C1","keywordSearchTable2R5C2","keywordSearchTable2R6C1","keywordSearchTable2R6C2","keywordSearchTable2R7C1","keywordSearchTable2R7C2","keywordSearchTable2R8C1","keywordSearchTable2R8C2","keywordSearchTable2R9C1","keywordSearchTable2R9C2","keywordSearchTable2R10C1","keywordSearchTable2R10C2","keywordSearchTable2R11C1","keywordSearchTable2R11C2","keywordSearchTable2R12C1","keywordSearchTable2R12C2","keywordSearchTable2R13C1","keywordSearchTable2R13C2","keywordSearchTable2R14C1","keywordSearchTable2R14C2","keywordSearchTable2R15C1","keywordSearchTable2R15C2","keywordSearchTable2R16C1","keywordSearchTable2R16C2","keywordSearchTable2R17C1","keywordSearchTable2R17C2","keywordSearchTable2R18C1","keywordSearchTable2R18C2","Advertising","Aerospace","Agriculture","Banking","Beverages","Biotechnology","Builders","Chemicals","Communications","Defense","Energy","Entertainment","ETFs","Financials","Food","Forestry","Furniture","Industrials","Insurance","Machinery","Manufacturing","Materials","Media","Mining","Miscellaneous","miscellaneouseducationalserviceproviders","Peripherals","Pharmaceuticals","Plastics","Printing","Publishing","Rail","REITs","Retail","Semiconductors","Services","Shipping","Textiles","Tobacco","Transport","Trucking","Utilities","screenDescription","renameScreenerSr","editScreenerSr","deleteScreenerSr","customSearchResults","editScreener","cibcPreScreens","reviewPrescreens","cibcSeriesD","cibcSeriesDDescription","cibcMutualFunds","cibcMutualFundsDescription","renaissance","renaissanceDescription","axiomFunds","axiomFundsDescription","technicalAnalysisAndRisk","PriceBookRatio","alpha3Yr","beta3Yr","informationRatio","annulaizedStdDev","consistentReturnLiteral","customizeScreenerAction","fundTypes","additionalFundAttributes","screenNameLabel","screenerList","professionalbusinesseducation","schoolcollegeuniversity","agriculturalchemicals","aluminum","commoditychemicals","constructionmaterials","diversifiedchemicals","diversifiedmining","forestwoodproducts","miningsupportservicesequipment","nongoldpreciousmetalsminerals","nonpapercontainerspackaging","paperpackaging","paperproducts","specialtychemicals","chemicalmanufacturing","chemicalsplasticrubber","containerspackaging","fabricatedplasticrubber","forestrywoodproducts","goldsilver","ironsteel","metalmining","miscfabricatedproducts","nonmetallicmining","paperpaperproducts","specialtyminingmetals","aerospacedefense","constragricmachinery","constrsuppliesfixtures","constructionrawmaterials","constructionservices","misccapitalgoods","mobilehomesrvs","apparelaccessories","apparelaccessoriesretailers","appliancetool","appliancestoolshousewares","audiovideoequipment","autotruckmanufacturers","autotruckparts","autotruckmotorcycleparts","autovehiclespartsserviceretailers","advertisingmarketing","computerelectronicsretailers","constructionsuppliesfixtures","consumerpublishing","departmentstores","discountstores","entertainmentproduction","footwear","furniturefixtures","homebuilding","homefurnishings","homefurnishingsretailers","homeimprovementproductsservicesretailers","hotelsmotelscruiselines","jewelrysilverware","leisurerecreation","otherspecialtyretailers","photography","recreationalproducts","restaurantsbars","textilenonapparel","textilesleathergoods","tires","tiresrubberproducts","toysjuvenileproducts","beveragesalcoholic","beveragesnonalcoholic","brewers","crops","consumergoodsconglomerates","distillerswineries","drugretailers","fishlivestock","fishingfarming","foodprocessing","foodretaildistribution","householdproducts","nonalcoholicbeverages","officesupplies","personalproducts","personalhouseholdprods","coal","integratedoilgas","oilgasdrilling","oilgasexplorationandproduction","oilgasintegrated","oilgasoperations","oilgasrefiningandmarketing","oilwellservicesequipment","oilgastransportationservices","oilrelatedservicesandequipment","renewableenergyequipmentservices","renewablefuels","consumerfinancialservices","insuranceaccidenthealth","insurancelife","insurancemiscellaneous","insurancepropcasualty","investmentservices","miscfinancialservices","moneycentrebanks","regionalbanks","slssavingsbanks","closedendfunds","consumerlending","corporatefinancialservices","diversifiedinvestmentservices","financialcommoditymarketoperators","investmentbankingbrokerageservices","investmentholdingcompanies","investmentmanagementfundoperators","investmenttrusts","lifehealthinsurance","mutualfunds","multilineinsurancebrokers","propertycasualtyinsurance","reinsurance","biotechnologydrugs","healthcarefacilities","majordrugs","medicalequipmentsupplies","advancedmedicalequipmenttechnology","biotechnologymedicalresearch","healthcarefacilitiesservices","managedhealthcare","medicalequipmentsuppliesdistribution","pharmaceuticals","advertising","broadcastingcabletv","broadcasting","businessservices","casinosgaming","communicationsservices","hotelsmotels","motionpictures","personalservices","printingpublishing","printingservices","realestateoperations","recreationalactivities","rentalleasing","restaurants","retailapparel","retailcatalogmailorder","retaildepartmentdiscount","retaildrugs","retailgrocery","retailhomeimprovement","retailspeciality","retailtechnology","schools","securitysystemsservices","wastemanagementservices","airfreightlogistics","airlines","airportservices","businesssupportservices","businesssupportsupplies","commercialprintingservices","constructionengineering","diversifiedindustrialgoodswholesale","electricalcomponentsequipment","employmentservices","environmentalservicesequipment","groundfreightlogistics","heavyelectricalequipment","heavymachineryvehicles","highwaysrailtracks","industrialmachineryequipment","marinefreightlogistics","marineportservices","passengertransportationgroundsea","professionalinformationservices","shipbuilding","communicationsequipment","computerhardware","computernetworks","computerperipherals","computerservices","computerstoragedevices","electronicinstrcontrols","officeequipment","scientifictechnicalinstr","semiconductors","softwareprogramming","blockchaincryptocurrency","communicationsnetworking","electronicequipmentparts","financialtechnologyfintech","householdelectronics","integratedhardwaresoftware","integratedtelecommunicationsservices","internetservices","itservicesconsulting","miscellaneousfintechinfrastructure","phoneshandhelddevices","semiconductorequipmenttesting","software","wirelesstelecommunicationsservices","commercialreits","diversifiedreits","realestatedevelopmentoperations","realestateservices","residentialreits","specializedreits","aircourier","airline","misctransportation","railroads","trucking","watertransportation","electricutilities","naturalgasutilities","waterutilities","independentpowerproducers","multilineutilities","searchByKeywords","selectSources","selectIndustries","industrySection","true","false","editCriteria","renameScreen","allFundFamilies","allEtfTypes","browseByEtf","reportPdf","sourceCriterion","industryCriterion","customSearchResultsFor","thereAreNoSavedSearches","newAdvancedSearch","savedAnalystReportsSearchButtonSR","deleteSearch","editSearchInNewDialog","renameSearchInNewDialog","editSavedSearch","renameSearch","deleteSavedSearch","doYouWantToDelete","editCustomSearchName","saveCustomSearch","customSearchNameOver32","setAlert","setAlertSr","analystReportAlertsHeader","recieveDailyEmail","setAnalystReportAlerts","savedSearch","savedSearchResults","alreadySearchingSymbol","noResultsFoundPleaseChooseDiff","nameExistsAlready","saveAsNewSearch","searchName","equityFunds","mixedEquityFunds","fixedIncomeFunds","moneyMarketFunds","bondFunds","realEstateFunds","otherFunds","LFFundType","LFAssetType","LFFundPromotor","LFLipperClassification","LFTotalReturns1m","lessThanZero","zeroToFive","fiveToTen","tenToFifteen","greaterThanFifteen","timePeriod","minimumInitialInvestmentScreener","mgmtExpenseRatio","LFLoadType","noLoad","front","back","level","originalAmount","marketValueLabel","noSavedScreeners","createNewScreener","reviewScreener","minimizeFundTypeCriteria","expandFundTypeCriteria","lipperInstructions","PreservationCriteria","LFNoLoad","LFFrontLoad","LFBackLoad","LFLevelLoad","LFDeferredLoadOrigAmt","LFDeferredLoadMktValue","equalTo","anotherDifferentTranslationOfAll","totalNetAssetsScreener","minimizeTotalReturnPerformance","expandTotalReturnPerformance","screenerTotalReturnPerformance","minimizeAdditionalFund","expandAdditionalFund","minimizeLipperCriteria","expandLipperCriteria","lipperLeaderRatingsScreener","canadianMFs","canadianETFs","usETFs","pageIsLoading","top5Holdings","top5HoldingsTooltip","entity","showSectorHoldings","showEntityHoldings","accountHoldings","fr","analystRatingText","breakeven","cashFlow","commoditiesPriceChart","readFull","reviewSymbol","sectorBtnSr","getLanguage","defaultLanguage","languageFromQueryString","getLangFromQueryString","lang","setItem","languageFromLocalStorage","cssDetect","CSS","supports","documentMode","connect","state","user","userData","fetchingUserInfo","Intl","dispatch","setLocale","IntlActions","setAlertsLang","requestPostProfile","languageCode","props","tier","language","iframeCommunication","location","window","content","areasToRoute","areas","marketsCentre","quotelists","etfCentreIndividualHolding","fundCentreIndividualHolding","alerts","pdfDownload","pageNotFound","foundUserLang","removeTokenFlag","setTimeout","removeItem","indexOf","myLocale","setDocumentLocale","hasToken","accessTokenService","skipTokenRequest","techAnalysis","fundCentreETFs","allowedAlerts","allowedFundCentre","code","userId","routesCollection","forEach","area","checkTechAnalysis","checkFundCentreETFs","checkAlerts","checkFundCentre","push","React","createElement","Redirect","key","route","redirectPath","matchPath","pathname","heirarchy","addParams","tabNameMapping","updatedHeirarchy","pageName","url","href","params","tab","sessionStorage","pop","replace","Route","exact","isExact","path","strict","component","asyncComponent","componentPath","Router","onMouseMove","event","handleKeepAlive","className","supportsFlex","isIe","Switch","SessionEnded","tokenExpired","requestToken","ACTION_HANDLERS","API_REQUEST_MARKET_NEWS","Object","assign","fetchingNewsData","API_RECEIVE_MARKET_NEWS","receiveMarketNews","action","newsData","API_REQUEST_ETF_NEWS","fetchingEtfNewsData","API_RECEIVE_ETF_NEWS","receiveEtfNews","etfNewsData","API_REQUEST_NEWS_LINK","fetchingNewsLink","newsArticleData","API_REQUEST_NEWS_ARTICLE","fetchingNewsArticle","API_RECEIVE_NEWS_ARTICLE","receiveNewsArticle","API_REQUEST_NEWS_INSIGHTS","fetchingNewsInsights","API_RECEIVE_NEWS_INSIGHTS","receiveInsights","insightsData","newsId","API_HANDLE_NEWS_LOADER","createReducer","fetchingPdf","requestPriceChart","fetchingPriceChartData","API_CIBC_SINGLE_REQUEST_PRICECHART","API_CIBC_REQUEST_PRICECHART","API_CIBC_RECEIVE_PRICECHART","receivePriceChart","API_CIBC_RECEIVE_MULTIPLE_PRICECHART","receiveMultiplePriceChart","venueXid","API_CIBC_HANDLE_PRICECHART_LOADER","API_REQUEST_QUOTE","fetchingQuoteData","API_RECEIVE_QUOTE","receiveQuotes","byXid","quotes","length","quote","quotesByXid","API_CIBC_REQUEST_LEGACY_QUOTE","fetchingLegacyQuoteData","legacyQuote","API_CIBC_RECEIVE_LEGACY_QUOTE","receiveLegacyQuotes","API_HANDLE_QUOTE_LOADER","API_REQUEST","apiRequest","fetching","isFetching","API_FAILURE","failure","message","API_REQUEST_COMMODITIES_QUOTES","fetchingCommoditiesData","API_RECEIVE_COMMODITIES_QUOTES","receiveCommoditiesQuotes","commoditiesQuoteData","API_HANDLE_COMMODITIES_LOADER","API_CIBC_REQUEST_COMMODITIESCHART","fetchingCommoditiesChartData","API_CIBC_RECEIVE_COMMODITIESCHART","receiveCommoditiesChart","API_CIBC_HANDLE_COMMODITIESCHART_LOADER","API_CIBC_REQUEST_CURRENCYCHART","fetchingCurrencyChartData","API_CIBC_RECEIVE_CURRENCYCHART","receiveCurrencyChart","currencyChartData","API_CIBC_HANDLE_CURRENCYCHART_LOADER","API_REQUEST_INDEX_QUOTES","fetchingIndexData","API_RECIEVE_INDEX_QUOTES","recieveIndexQuotes","indexData","API_HANDLE_INDEX_LOADER","API_REQUEST_MARKET_RANKINGS","fetchingMarketRankings","API_RECEIVE_MARKET_RANKINGS","receiveMarketRankings","marketRankings","rankingType","API_HANDLE_MARKET_RANKINGS_LOADER","API_SINGLE_REQUEST_SYMBOL_SEARCH","fetchingSymbolSearch","API_RECEIVE_SYMBOL_SEARCH","receiveSymbolSearch","API_HANDLE_SYMBOL_SEARCH_LOADER","classificationIds","id","API_CIBC_REQUEST_TECHNICAL_ANALYSIS","fetchingTechnicalAnalysis","API_CIBC_RECEIVE_TECHNICAL_ANALYSIS","receiveTechnicalAnalysis","API_CIBC_HANDLE_TECHNICAL_ANALYSIS_LOADER","API_REQUEST_XREF_BY_VENUE_XIDS","requestXrefByVenueXids","currentXids","keys","filterXids","newXids","filter","xid","abort","venueXids","join","fetchingXrefByVenueXids","API_RECEIVE_XREF_BY_VENUE_XIDS","receiveXrefByVenueXids","newXrefData","byLegacyCompanyMap","items","xrefResult","xids","venue","legacyCompany","byLegacyCompany","API_RECEIVE_SYMBOL_IN_CONTEXT","receiveSymbolInContext","previousEtfsList","foundSymbols","newEtfsList","addSymbol","addCompany","hasSymbols","classification","prevousIndex","lodash","findLastIndex","x","splice","concat","slice","fetchingSymbolInContext","symbolInContext","API_REQUEST_SYMBOL_IN_CONTEXT","API_REQUEST_EXCHANGES","API_HANDLE_XREF_BY_VENUE_XIDS_LOADER","API_CIBC_RECEIVE_XIDS_BY_COMPANYID","receiveXidsByWsodCompany","fetchingXidsByCompanyID","companyXids","API_CIBC_REQUEST_XIDS_BY_COMPANYID","SET_SYMBOL_IN_CONTEXT","setSymbolInContext","xref","API_CIBC_REQUEST_UNDERLAYING_BY_XIDS","requestUnderlayingXrefByVenueXids","underlayingData","fetchingUnderlayingXrefByVenueXids","API_CIBC_RECEIVE_UNDERLAYING_BY_XIDS","receiveUnderlayingXrefByVenueXids","SET_SYMBOL_BY_XID","setSymbolByXid","API_CIBC_HANDLE_XIDS_BY_COMPANYID_LOADER","requestOptionChain","fetchingOptionData","strikeCount","API_REQUEST_OPTION_CHAIN","API_REQUEST_OPTION_CHAIN_WITH_QUOTES","API_REQUEST_OPTION_EXPIRATION_DATES","fetchingExpData","expDateData","API_RECEIVE_OPTION_EXPIRATION_DATES","receiveExpirationDates","API_RECEIVE_OPTION_CHAIN","receiveOptionChain","optionChainData","optionChainByStrikeData","API_RECEIVE_OPTION_CHAIN_BY_STRIKE","receiveOptionChainByStrike","optionsByStrike","underlyingQuote","item","option","orderedByStrikePrice","ADD_OPTION_TO_QUOTE_LIST","addOptionToQuoteList","quoteList","API_CIBC_REQUEST_STRATEGY_CHART","fetchingStrategyChart","strategyChart","API_CIBC_RECEIVE_STRATEGY_CHART","receiveStrategyChart","SET_OPTION_CHAIN_STRIKE_COUNT","requestSetStrikeCount","API_HANDLE_OPTION_LOADER","ADD_SELECTED_OPTION","addToSelectedOptionsList","selectedOptionsList","viewStrikeCounts","optionObject","byUnderlyingXid","totalOptions","list","console","log","showError","underlyingXid","o","REMOVE_OPTIONS_FROM_QUOTE_LIST","removeOptionsFromQuoteList","newList","index","CLEAR_OPTIONS_QUOTELIST","navigateToWatchlist","API_CIBC_REQUEST_WATCHLIST_NAMES","fetchingWatchlistNames","API_CIBC_RECEIVE_WATCHLIST_NAMES","receiveWatchlistNames","watchlists","recentIndex","i","recentWatchlist","maxListsReached","limits","lists","API_CIBC_REQUEST_WATCHLIST","requestWatchlist","fetchingWatchlist","currentCurrency","currency","activeWatchlistId","activeWatchlistTab","API_CIBC_RECEIVE_WATCHLIST","receiveWatchlist","mappedByIssueType","holding","issueType","holdingsByIssueType","API_REQUEST_WATCHLIST_QUOTE","fetchingWatchlistQuoteData","API_RECEIVE_WATCHLIST_QUOTE","receiveWatchlistQuotes","quotesData","newEtfs","newOptions","newStocks","map","isoCode","putCall","lastDate","bidSize","askSize","price52WeekHigh","price52Week","price52WeekLow","isRealTime","realTimeQuoteIndicator","etf","financialStatusIndicator","stock","API_CIBC_REQUEST_WATCHLIST_UPDATE_TRANSACTION","fetchingUpdateTransaction","API_CIBC_RECEIVE_WATCHLIST_UPDATE_TRANSACTION","API_CIBC_REQUEST_WATCHLIST_CREATE_WATCHLIST","fetchingCreateNewWatchlist","API_CIBC_RECEIVE_WATCHLIST_CREATE_WATCHLIST","receiveCreateNewWatchlist","portfolioId","API_CIBC_REQUEST_WATCHLIST_ADD_HOLDINGS","fetchingAddHoldings","API_CIBC_RECEIVE_WATCHLIST_ADD_HOLDINGS","fetchingDeleteHoldings","fetchingRenameWatchlist","API_CIBC_RECEIVE_WATCHLIST_DELETE_HOLDINGS","API_CIBC_REQUEST_WATCHLIST_DELETE_HOLDINGS","API_CIBC_RECEIVE_WATCHLIST_RENAME","renameWatchlistError","API_CIBC_SET_WATCHLIST_RENAME_ERROR","setRenameWatchlistError","API_CIBC_REQUEST_WATCHLIST_RENAME","API_CIBC_RECEIVE_WATCHLIST_DELETE","newId","foundDefaultIndex","defaultPortfolio","fetchingDeleteWatchlist","API_CIBC_REQUEST_WATCHLIST_DELETE","SORT_WATCHLIST","sortHoldingsGroup","field","direction","sortDirection","groupSortDirection","groupSortField","sortData","fieldName","directionName","holdingGroup","holdingsGroups","ETFS","etfsSortDirection","etfsSortField","MUTUALFUNDS","mutualFundsSortDirection","mutualFundsSortField","OPTIONS","optionsSortDirection","optionsSortField","STOCKS","stocksAndIndicesSortDirection","stocksAndIndicesSortField","dataToSortByField","dataToSortBySymbol","active","undefined","newData","orderBy","newHoldingsByIssueType","newStateObject","API_HANDLE_WATCHLIST_LOADER","SORT_WATCHLIST_SETINDICATORS","setWatchlistTableSortIndicators","API_CIBC_RECEIVE_ADD_TO_RECENT_QUOTES","receiveAddToRecentQuotes","mostRecentXid","get","fetchingAddToRecentQuotes","mostRecentRecentQuoteXid","API_CIBC_REQUEST_ADD_TO_RECENT_QUOTES","SET_ACTIVE_WATCHLIST_ID","setActiveWatchilistId","hasUserLists","API_RECEIVE_QUOTELIST_QUOTE","receiveQuotelistQuotes","quotelistByIssueType","quoteMap","quoteData","chgPercentPrev","newStocksETFsIndices","quoteDataToMerge","merge","fetchingQuotelistQuoteData","API_REQUEST_QUOTELIST_QUOTE","API_RECEIVE_QUOTELIST_FUND_BASICS","receiveQuotelistFundBasics","currentMutualFunds","fundBasicsData","fundBasicsDataXid","newMutualFunds","mergedData","API_REQUEST_QUOTELIST_FUND_BASICS","fetchingQuotelistFundBasicsData","ADD_TO_QUOTELIST","addToQuotelist","holdingType","quotelistCurrentTypeTotal","symbolAlreadyExists","listing","newSymbols","checked","REMOVE_FROM_QUOTELIST","removeFromQuotelist","symbolsToKeep","quotelistSection","SORT_QUOTELIST","STOCKS_ETFS_INDICES","stocksETFsIndicesSortDirection","stocksETFsIndicesSortField","newQuotelistByIssueType","SORT_QUOTELIST_SETINDICATORS","setQuotelistTableSortIndicators","API_HANDLE_QUOTELIST_LOADER","API_REQUEST_MORNINGSTAR_RATINGS","fetchingMorningstarRatings","API_RECEIVE_MORNINGSTAR_RATINGS","receiveMorningstarRatings","API_REQUEST_MORNINGSTAR_PREMIUM_DISCOUNT_DAILY","fetchingPremiumDiscountDaily","premiumDiscountDailyData","API_RECEIVE_MORNINGSTAR_PREMIUM_DISCOUNT_DAILY","receivePremiumDiscountDaily","premData","API_REQUEST_MORNINGSTAR_SHARE_CLASS","fetchingShareClass","shareClassData","API_RECEIVE_MORNINGSTAR_SHARE_CLASS","receiveShareClass","API_RECEIVE_MORNINGSTAR_PORTFOLIO_STATISTICS","receivePortfolioStatistics","fetchingPortfolioStatistics","portfolioStatisticsData","API_REQUEST_MORNINGSTAR_PORTFOLIO_STATISTICS","API_REQUEST_MORNINGSTAR_MANAGED_FUNDS_STRATEGY","fetchingManagedFundsStrategy","fundStrategyData","API_RECEIVE_MORNINGSTAR_MANAGED_FUNDS_STRATEGY","receiveMorningstarManagedFundsStrategy","API_RECEIVE_MORNINGSTAR_MANAGED_FUNDS_BENCHMARK","receiveBenchmarkInfo","returnInfo","primaryBenchmark","prospectusBenchmark","fetchingBenchmarkInfo","benchmarkData","API_REQUEST_MORNINGSTAR_MANAGED_FUNDS_BENCHMARK","API_RECEIVE_MORNINGSTAR_MANAGED_FUNDS_BENCHMARK_CATEGORY","receiveBenchmarkInfoCategory","benchmarkDataCategories","API_REQUEST_MORNINGSTAR_MANAGED_FUNDS_BENCHMARK_CATEGORY","API_REQUEST_MORNINGSTAR_MANAGED_FUNDS_ATTRIBUTES","fetchingManagedFundsAttributes","attributeData","API_RECEIVE_MORNINGSTAR_MANAGED_FUNDS_ATTRIBUTES","receiveAttributeData","API_REQUEST_MORNINGSTAR_RISK_MEASURES","fetchingRiskMeasures","volitility","API_RECEIVE_MORNINGSTAR_RISK_MEASURES","receiveRiskMeasures","fund","fundNav","asOfDate","asOfDateFund","categoryNav","asOfDateCategory","betaValue","primaryIndex","fundRsquared","fundAlpha","fundBeta","categoryRsquared","categoryAlpha","categoryBeta","mapDataForName","saveName","temporalPeriod","API_REQUEST_MORNINGSTAR_PEERS","fetchingMorningstarPeers","morningstarPeers","API_RECEIVE_MORNINGSTAR_PEERS","receiveMorningstarPeers","API_REQUEST_MORNINGSTAR_ANNUAL_PERFORMANCE","fetchingAnnualPerformance","API_RECEIVE_MORNINGSTAR_ANNUAL_PERFORMANCE","receiveAnnualPerformance","toString","newState","API_REQUEST_MORNINGSTAR_PERFORMANCE","fetchingPerformance","API_RECEIVE_MORNINGSTAR_PERFORMANCE","receivePerformance","API_REQUEST_MORNINGSTAR_GROWTH_10K","fetchingManagedFundsGrowth10k","growth10KData","API_RECEIVE_MORNINGSTAR_GROWTH_10K","receiveManagedFundsGrowth10k","API_REQUEST_MORNINGSTAR_ASSET_ALLOCATION","fetchingAssetAllocationData","assetAllocationData","assetsFormatted","API_RECEIVE_MORNINGSTAR_ASSET_ALLOCATION","receiveAssetAllocationData","formatted","categoryAllocation","categoryValue","net","catItem","asset","color","chartColorHelper","getColorByIndex","isShort","isLeveraged","API_RECEIVE_MORNINGSTAR_SECTOR_ALLOCATION","receiveSectorAllocation","fundAllocation","datePortfolio","equitySectors","fetchingSectorAllocationData","sectorAllocationData","API_REQUEST_MORNINGSTAR_SECTOR_ALLOCATION","API_RECEIVE_MORNINGSTAR_TOP_HOLDINGS","receiveTopHoldings","securityIdentifiers","holdingDetailDate","portfolioDate","shareDetails","weighting","Math","sign","fetchingTopHoldings","topHoldingsData","API_REQUEST_MORNINGSTAR_COMPANY_INFORMATION","fetchingMorningstarCompanyInformation","companyInformation","API_RECEIVE_MORNINGSTAR_COMPANY_INFORMATION","receiveMorningstarCompanyInformation","API_CIBC_REQUEST_MORNINGSTAR_FUND_DETAILS","fetchingMorningstarFundDetails","API_CIBC_RECEIVE_MORNINGSTAR_FUND_DETAILS","receiveMorningstarFundDetails","API_CIBC_REQUEST_MORNINGSTAR_TOP_HOLDINGS","API_RECIEVE_MORNINGSTAR_ANNUAL_RETURN_DATA","receivetMorningstarAnnualReturnData","obj","marketReturnYTD","NAVYTDReturn","catAverageNAV","rank","catSize","values","YTDValues","fetchingMorningstarAnnualReturn","annualReturnData","API_REQUEST_MORNINGSTAR_ANNUAL_RETURN_DATA","API_RECEIVE_MORNINGSTAR_PROSPECTUS_FEES","receiveMorningstarProspectusFees","fetchingMorningstarProspectusFees","prospectusFees","API_REQUEST_MORNINGSTAR_PROSPECTUS_FEES","API_CIBC_RECEIVE_TOP_HOLDINGS","receiveMorningstarTopHoldings","fetchingMorningstarTopHoldings","API_CIBC_REQUEST_TOP_HOLDINGS","API_CLEAR_TOP_HOLDINGS","API_REQUEST_MORNINGSTAR_ANNUAL_FEES","fetchingMorningstarAnnualFees","annualFees","API_RECEIVE_MORNINGSTAR_ANNUAL_FEES","receiveMorningstarAnnualFees","tempFees","API_HANDLE_MORNINGSTAR_RATINGS_LOADER","fetchingManagedFundsAnnualReturns","investmentData","API_CIBC_RECEIVE_PREMIUM_DISCOUNT_CHART","receivePremiumDiscountChart","fetchingPremiumDiscountChart","chartData","API_CIBC_REQUEST_PREMIUM_DISCOUNT_CHART","API_CIBC_HANDLE_PREMIUM_DISCOUNT_CHART_LOADER","API_REQUEST_RESEARCH_HISTORY","requestResearchHistory","fetchingResearchHistoryData","researchHistoryData","customSearchInputs","API_RECEIVE_RESEARCH_HISTORY","receiveResearchHistory","API_REQUEST_RESEARCH_HISTORY_META_DATA","fetchingResearchHistoryDocumentMetaData","researchHistoryMetaData","API_RECEIVE_RESEARCH_HISTORY_META_DATA","receiveResearchHistoryWithMetaData","documentId","API_HANDLE_RESEARCH_HISTORY_LOADER","SET_CUSTOM_SEARCH_INPUTS","setCustomSearchInputs","API_RECEIVE_RESEARCH_FILE_SIZE","receiveFileSize","fileSize","fetchingResearchHistoryLink","API_SINGLE_REQUEST_CORPORATE_DIVIDENDS","fetchingCorporateDividends","API_RECEIVE_CORPORATE_DIVIDENDS","receiveCorporateDividends","API_HANDLE_CORPORATE_DIVIDENDS_LOADER","API_CIBC_RECEIVE_DIVIDENDS_PER_SHARE_CHART","receiveDividendsPerShareChart","fetchingDividendsPerShareChart","API_CIBC_REQUEST_DIVIDENDS_PER_SHARE_CHART","API_CIBC_HANDLE_DIVIDENDS_PER_SHARE_CHART_LOADER","API_CIBC_RECEIVE_GROWTH_10K_CHART","receiveGrowth10KChart","fetchingGrowth10kChart","API_CIBC_REQUEST_GROWTH_10K_CHART","API_CIBC_HANDLE_GROWTH_10K_CHART_LOADER","API_CIBC_RECEIVE_ANNUAL_PERFORMANCE_CHART","receiveAnnualPerformanceChart","fetchingAnnualPerformanceChart","API_CIBC_REQUEST_ANNUAL_PERFORMANCE_CHART","API_CIBC_HANDLE_ANNUAL_PERFORMANCE_CHART_LOADER","API_CIBC_RECEIVE_GLOBAL_EXPOSURE_CHART","receiveGlobalExposureChart","fetchingGlobalExposureChart","API_CIBC_REQUEST_GLOBAL_EXPOSURE_CHART","API_CIBC_HANDLE_GLOBAL_EXPOSURE_CHART_LOADER","API_CIBC_RECEIVE_TRAILING_RETURNS_CHART","receiveTrailingReturnsChart","fetchingTrailingReturnsChart","API_CIBC_REQUEST_TRAILING_RETURNS_CHART","API_CIBC_HANDLE_TRAILING_RETURNS_CHART_LOADER","INITIAL_STATE","fetchingCurrentRatios","fetchingEquityClassification","equityClassification","sectorName","industryName","earningsPerShareMRQ","earningsPerShareTTM","earningsPerShareMRQ1Yr","earningsPerShareTTM1Yr","revenuePerShareMRQ","revenuePerShareTTM","revenueGrowthMRQ","revenueGrowthTTM","grossMarginTTM","preTaxMarginTTM","fiveYrPreTaxMarginTTM","operatingMarginTTM","fiveYrOperatingMarginTTM","profitMarginTTM","fiveYearAvgNetProfitMarginTTM","fiveYearAvgNetProfitMarginGrowthTTM","effectiveTaxRateTTM","fiveYearAvgEffectiveTaxRateTTM","grossMarginPtile","preTaxMarginPtile","operatingMarginPtile","operatingMargin5YPtile","profitMarginPtile","profitMargin5YPtile","netProfitMarginGrowth5YPtile","effectiveTaxRatePtile","effectiveTaxRate5YPtile","priceEarningsTTM","priceCashFlowTTM","priceFreeCashFlowTTM","priceTangibleBookMRQ","priceSalesTTM","priceEarningsPtile","priceCashFlowPtile","priceFreeCashFlowPtile","priceTangibleBookPtile","priceSalesPtile","longTermDebtEquityMRQ","totalDebtEquityMRQ","interestCoverageMRQ","quickRatioMRQ","currentRatioMRQ","longTermDebtEquityPtile","totalDebtEquityPtile","interestCoveragePtile","quickRatioPtile","currentRatioPtile","shareRelated","marketCapitalization","marketCapitalizationPtile","shareOutstandingPtile","floatPtile","returnOnAssetsPtile","returnOnInvestmentsPtile","returnOnEquityPtile","bookValueMRQ","cashFlowMRQ","cashMRQ","fiveYearYieldAvg","fiveYearYieldGrowthRate","payoutRatioPtile","fiveYearYieldAvgPtile","fiveYieldGrowthRatePtile","API_REQUEST_CURRENTRATIOS","API_RECEIVE_CURRENTRATIOS","receiveCurrentRatios","ratios","perShare","growthRates","margins","priceVolume","epsExcludingExtroaordinaryItemsTtm","revenuePerShareTtm","bookValuePerShareTangibleTtm","cashPerShareMrq","epsBasicExcludingExtraordinaryItemsMRQ","cashFlowPerShareAnnMRQ","epsPercentChangeMrq1YearAgo","epsPercentChangeTtmOverTtm","revenuePercentChangeTtmOverTtm","netProfitMargin5YearGrowth","revenuePercentChangePriorQMRQ","dividendGrowth5Year","grossMarginTtm","marginBeforeTaxTtm","marginBeforeTax5YearAverage","operatingMarginTtm","operatingMargin5YearAverage","netProfitPercentTtm","netMargin5YearAverage","taxRateTtm","taxRate5YearAverage","peExcludingExtraordinaryItemsTtm","priceToCashFlowTtm","priceToFreeCashFlowPerShareTtm","priceToTangibleBookTtm","priceToSalesTtm","dividendYield5YearAverage","longTermDebtToEquityMrfy","totalDebtToTotalEquityMrq","quickRatioMrfy","currentRatioMrfy","payoutRatioTtm","netInterestCoverageMRQ","sharesOutstandingMillions","sharesTotalFloatMillions","returnOnAverageAssetsTtm","returnOnInvestmentTtm","returnOnAverageEquityTtm","API_CLEAR_CURRENTRATIOS","API_HANDLE_CURRENTRATIOS_LOADER","API_RECEIVE_CURRENTRATIOS_PERCENTILE","receiveCurrentRatiosPercentiles","listingPercentiles","taxRateTtmPtile","taxRate5YPtile","pretaxMarginTtmPtile","operMargin5YPtile","sharesTotalFloatPtile","sharesOutPtile","marketCapPtile","dividendGrowth5YrPtile","quickRatioMrqPtile","currentRatioMrqPtile","payOutRatioTtmPtile","cebtLt2EquityMrqPtile","cebtTotal2EquityTotalMrqPtile","divYield5YrAvgPtile","pEexclXItemsTtmPtile","price2BookvTangMrqPtile","price2CashFlowTtmPtile","price2CashFlowFreeTtmPtile","price2SalesTtmPtile","roAssetsTtmPtile","roEquityTtmPtile","roInvestmentTtmPtile","API_RECEIVE_EQUITY_CLASSIFICATION","receiveEquityClassification","API_REQUEST_EQUITY_CLASSIFICATION","API_CIBC_REQUEST_STOCK_EARNINGS","fetchingStockEarnings","API_CIBC_RECEIVE_STOCK_EARNINGS","receiveStockEarnings","ratingsSummary","API_CIBC_REQUEST_STOCK_EARNINGS_ANNOUNCEMENTS","announcements","fetchingStockEarningsAnnouncements","API_CIBC_RECEIVE_STOCK_EARNINGS_ANNOUNCEMENTS","receiveStockEarningsAnnouncements","API_CIBC_HANDLE_STOCK_EARNINGS_LOADER","strongBuyRecomendations","buyRecomendations","holdRecomendations","underperformRecomendations","sellRecomendations","currentConsensusRec","previousConsensusRec","currentRating","ratingDate","totalOpinions","totalAnalysts","API_REQUEST_REUTERS_EQUITIES_INFO","generalInfo","fetchingEquitiesGeneralInfo","API_CLEAR_REUTERS_EQUITIES_INFO","API_RECEIVE_REUTERS_EQUITIES_INFO","receiveEquityGeneralInfo","companyOverviewFull","truncTextOverview","companyText","descriptions","textBody","API_RECEIVE_OFFICER_INFO","receiveOfficerInfo","info","officers","officer","first","middle","title","nameFormatted","dateStartOfficer","titles","long","fetchingEquitiesOfficerInfo","officerInfo","API_REQUEST_OFFICER_INFO","API_HANDLE_REUTERS_EQUITIES_LOADER","API_CIBC_RECEIVE_STOCK_EARNINGS_CHART","receiveStockEarningsChart","fetchingStockEarningsChart","API_CIBC_REQUEST_STOCK_EARNINGS_CHART","API_CIBC_REQUEST_FINANCIALS","fetchingFinancials","financialsData","API_CIBC_RECEIVE_FINANCIALS","receiveFinancials","tempData","tempDataNoDate","orderedKeys","order","sort","a","b","orderKeys","API_HANDLE_FINANCIALS_LOADER","API_CIBC_HANDLE_FUND_DATA_LOADER","API_CIBC_REQUEST_FUND_SNAPSHOT_DATA","fetchingFundData","snapshotData","CLEAR_FUND_SNAPSHOT_DATA","API_CIBC_RECEIVE_FUND_SNAPSHOT_DATA","receiveFundSnapshotData","API_CIBC_RECEIVE_FUND_SNAPSHOT_DATA_FAIL","API_CIBC_REQUEST_FUND_PERFORMANCE_DATA","performanceData","API_CIBC_RECEIVE_FUND_PERFORMANCE_DATA","receiveFundPerformanceData","API_CIBC_RECEIVE_FUND_PERFORMANCE_DATA_FAIL","CLEAR_FUND_PERFORMANCE_DATA","API_CIBC_REQUEST_FUND_PORTFOLIO_DATA","portfolioData","CLEAR_FUND_PORTFOLIO_DATA","API_CIBC_RECEIVE_FUND_PORTFOLIO_DATA","receiveFundPortfolioData","API_CIBC_RECEIVE_FUND_PORTFOLIO_DATA_FAIL","API_CIBC_REQUEST_FUND_LIPPER_LEADER_DATA","lipperLeaderData","CLEAR_FUND_LIPPER_LEADER_DATA","API_CIBC_RECEIVE_FUND_LIPPER_LEADER_DATA","receiveFundLipperLeaderData","API_CIBC_RECEIVE_FUND_LIPPER_LEADER_DATA_FAIL","API_CIBC_REQUEST_FUND_PROSPECTUS_DATA","fetchingFundProspectusData","prospectusData","API_CIBC_RECEIVE_FUND_PROSPECTUS_DATA","receiveFundProspectusData","API_REQUEST_FUND_BASIC_LIPPER","fundBasics","fetchingFundBasicsLIpper","API_RECEIVE_FUND_BASIC_LIPPER","receiveFundBasics","API_REQUEST_FUND_YIELD_LIPPER","fundYield","fetchingFundYieldLipper","API_RECEIVE_FUND_YIELD_LIPPER","receiveFundYield","API_REQUEST_FUND_LIPPER_LEADERS","fundLipperLeaders","fetchingFundLipperLeaders","API_RECEIVE_FUND_LIPPER_LEADERS","receiveFundLipperLeaders","CLEAR_FUND_LIPPER_LEADERS","API_REQUEST_FUND_LIPPER_ASSET_ALLOCATIONS","fundLipperAssetAllocations","fetchingFundLipperAssetAllocations","API_RECEIVE_FUND_LIPPER_ASSET_ALLOCATIONS","receiveFundLipperAssetAllocations","API_REQUEST_FUND_PERFORMANCE_LIPPER","fetchingFundPerformanceLIpper","API_RECEIVE_FUND_PERFORMANCE_LIPPER","receiveFundPerformance","CLEAR_FUND_PERFORMANCE_LIPPER","API_HANDLE_LIPPER_LOADER","compareEtfSymbols","compareQuoteList","morningstarProspectus","corporateDividends","morningstarBenchmarks","morningstarBenchmarkCategory","morningstarFundAttributes","fundStrategy","riskMeasures","dividendInformation","geographicAllocationData","limit","removeItemByIndex","API_ADD_SYMBOLS_TO_COMPARE_LIST","addSymbolToCompareList","API_HANDLE_COMPARELIST_LOADER","API_RECEIVE_COMPARE_LIST_QUOTE","receiveComparelistQuotes","average10Day","API_REQUEST_COMPARE_LIST_QUOTE","fetchingComparelistQuoteData","API_REQUEST_COMPARE_MORNINGSTAR_PROSPECTUS","fetchingCompareMorningstarProspectusFees","API_RECEIVE_COMPARE_MORNINGSTAR_PROSPECTUS","API_REQUEST_COMPARE_CORPORATE_DIVIDEND","fetchingCompareCorporateDividends","API_RECEIVE_COMPARE_CORPORATE_DIVIDEND","API_REQUEST_COMPARE_MORNINGSTAR_RATINGS","fetchingCompareMorningstarRatings","API_RECEIVE_COMPARE_MORNINGSTAR_RATINGS","API_REQUEST_COMPARE_MORNINGSTAR_BENCHMARKS","fetchingMorningstarBenchmark","API_RECEIVE_COMPARE_MORNINGSTAR_BENCHMARKS","receiveMorningstarBenchmarks","API_REQUEST_COMPARE_MORNINGSTAR_BENCHMARK_CATEGORY","fetchingManagedFundsBenchmarkCategory","API_RECEIVE_COMPARE_MORNINGSTAR_BENCHMARK_CATEGORY","receiveMorningstarBenchmarkCategory","API_REQUEST_COMPARE_ATTRIBUTES","fetchingCompareFundsAttributes","API_RECEIVE_COMPARE_ATTRIBUTES","receiveCompareAttributes","API_REQUEST_COMPARE_SHARECLASS_DATA","fetchingCompareShareclassData","API_RECEIVE_COMPARE_SHARECLASS_DATA","API_CIBC_REQUEST_COMPARE_FUND_DETAILS","fetchingCompareFundsDetails","API_CIBC_RECEIVE_COMPARE_FUND_DETAILS","receiveCompareFundDetails","API_REQUEST_COMPARE_FUND_STRATEGY","fetchingCompareFundsStrategy","API_RECEIVE_COMPARE_FUND_STRATEGY","receiveCompareFundStrategy","API_REQUEST_COMPARE_PORTFOLIO_STATS","fetchingComparePortfolioStatistics","API_RECEIVE_COMPARE_PORTFOLIO_STATS","API_REQUEST_COMPARE_PERFORMANCE","fetchingComparePerformance","API_RECEIVE_COMPARE_PERFORMANCE","receiveComparePerformance","API_REQUEST_COMPARE_ANNUAL_PERFORMANCE","fetchingCompareAnnualPerformance","API_RECEIVE_COMPARE_ANNUAL_PERFORMANCE","receiveCompareAnnualPerformance","API_REQUEST_COMPARE_RISK_MEASURES","API_RECEIVE_COMPARE_RISK_MEASURES","API_REQUEST_COMPARE_PREMIUM_DISCOUNT","fetchingcomparePremiumDiscount","API_RECEIVE_COMPARE_PREMIUM_DISCOUNT","receiveComparePremiumDiscount","API_REQUEST_COMPARE_DIVIDEND_INFORMATION","API_RECEIVE_COMPARE_DIVIDEND_INFORMATION","receiveCompareCorporateDividends","API_REQUEST_COMPARE_ASSET_ALLOCATION","fetchingCompareAssetAllocationData","API_RECEIVE_COMPARE_ASSET_ALLOCATION","receiveCompareAssetAllocationData","API_CIBC_REQUEST_COMPARE_TOP_HOLDINGS","fetchingCompareTopHoldings","API_CIBC_RECEIVE_COMPARE_TOP_HOLDINGS","API_REQUEST_COMPARE_GEOGRAPHIC_ALLOCATION","fetchingcompareGeographicAllocation","API_RECEIVE_COMPARE_GEOGRAPHIC_ALLOCATION","receiveCompareGeographicAllocation","API_REQUEST_COMPARE_SECTOR_ALLOCATION","fetchingcompareSectorAllocation","API_RECEIVE_COMPARE_SECTOR_ALLOCATION","receiveCompareSectorAllocation","DELETE_SYMBOL_FROM_COMPARE_LIST","deleteSymbolFromCompareList","RESET_COMPARE_LIST","resetCompareList","API_REQUEST_SIMILAR_ETFS","fetchingCompareSimilarEtfs","similarEtfs","API_RECEIVE_SIMILAR_ETFS","receiveCompareSimilarEtfsPeers","API_REQUEST_ALERTS_PROFILE","fetchingAlertsProfile","API_RECEIVE_ALERTS_PROFILE","receiveAlertsProfile","API_REQUEST_ALERTS_PROFILE_DESTINATIONS","fetchingAlertsDestination","API_RECEIVE_ALERTS_PROFILE_DESTINATIONS","receiveAlertsDestinations","hasDestinations","destination","destinations","API_REQUEST_ALERTS_SUBSCRIPTIONS","fetchingAlertsSubscriptions","subscriptions","analystReport","alertsByXid","API_RECEIVE_ALERTS_SUBSCRIPTIONS","receiveAlertsSubscriptions","uniqueItemIds","alertCategory","itemId","exchangeCode","alert","attributes","attributesMap","att","JSON","parse","insertDate","API_REQUEST_ALERTS_DELETE_DESTINATION","fetchingDeleteDestination","API_RECEIVE_ALERTS_DELETE_DESTINATION","API_REQUEST_ALERTS_PUT_DESTINATION","fetchingPutDestination","API_RECEIVE_ALERTS_PUT_DESTINATION","API_RECEIVE_ALERTS_POST_PROFILE","fetchingPostProfile","API_REQUEST_ALERTS_POST_PROFILE","API_RECEIVE_ALERTS_DELETE","fetchingDeleteAlerts","API_REQUEST_ALERTS_DELETE","API_RECEIVE_ALERT_UPDATE","fetchingUpdateAlert","API_REQUEST_ALERT_UPDATE","API_CIBC_REQUEST_ALERT_UPDATE","API_REQUEST_ALERTS_ADD","fetchingAddAlerts","API_RECEIVE_ALERTS_ADD","API_HANDLE_ALERTS_LOADER","API_CIBC_REQUEST_SCREENER_COLUMNS_DISTINCT_LIST","fetchesActive","fetchingScreenerColumnDistinctList","API_CIBC_RECEIVE_SCREENER_COLUMN_DISTINCT_LIST","receiveScreenerColumnDistinctList","distinctColumnValues","responseItems","columnName","foundIndex","SET_SAVED_SCREEN_COUNT","setSavedScreenCount","_ref","count","savedScreenCount","API_HANDLE_SCREENER_UTILS_LOADER","API_CIBC_REQUEST_TODAYS_TOP_SECTORS","fetchingTodaysTopSectors","API_CIBC_RECEIVE_TODAYS_TOP_SECTORS","API_CIBC_HANDLE_TODAYS_TOP_SECTORS_LOADER","API_CIBC_REQUEST_FUND_INDEX_OVERVIEW_FUND","fetchingFundIndexOverviewFund","fundData","API_CIBC_RECEIVE_FUND_INDEX_OVERVIEW_FUND","receiveFundIndexOverviewFund","API_CIBC_REQUEST_FUND_INDEX_OVERVIEW_INDEX","fetchingFundIndexOverviewIndex","API_CIBC_RECEIVE_FUND_INDEX_OVERVIEW_INDEX","receiveFundIndexOverviewIndex","API_CIBC_HANDLE_FUND_INDEX_LOADER","API_CIBC_REQUEST_UPGRADES_DOWNGRADES","fetchingUpgradesDowngrades","API_CIBC_RECEIVE_UPGRADES_DOWNGRADES","receiveUpradesDowngrades","API_CIBC_HANDLE_UPGRADES_DOWNGRADES_LOADER","API_CIBC_REQUEST_BUZZNEWS","fetchingBuzzNews","API_CIBC_RECEIVE_BUZZNEWS","receiveBuzzNews","API_CIBC_HANDLE_BUZZNEWS_LOADER","API_REQUEST_MARKETS_OVERVIEW_CHART","marketsOverviewChartData","API_RECEIVE_MARKETS_OVERVIEW_CHART","receiveMarketsOverviewChart","dataByXid","datapoint","API_HANDLE_MARKETS_OVERVIEW_CHART_LOADER","appReducer","combineReducers","alertsData","AlertsReducer","annualPerformanceChartData","AnnualPerformanceChartReducer","buzzNewsData","BuzzNewsReducer","commoditiesChartData","commoditiesChartReducer","commoditiesData","commoditiesReducer","compareEtfList","AddEtfReducer","compareSimilarEtfs","SimilarEtfs","corporateDividendData","CorporateDividendsReducer","currencyReducer","currentRatiosData","CurrentRatiosReducer","dividendsPerShareChartData","DividendsPerShareReducer","equitiesTrkd","EquitiesGeneralTrkdReducer","FinancialsReducer","FundDataReducer","fundIndexData","FundIndexReducer","globalExposureChartData","GlobalExposureChartReducer","growth10kChartData","Growth10KChartReducer","indexReducer","IntlReducer","lipperData","LipperReducer","marketRankingsData","rankingsReducer","morningstarData","MorningstarReducer","NewsReducer","optionData","OptionsReducer","optionQuoteListData","OptionsQuoteListReducer","premiumDiscountChartData","PremiumDiscountChartReducer","priceChartData","PriceChartReducer","quotelistData","QuotelistReducer","QuotesReducer","MarketsOverviewReducer","researchData","ResearchReducer","routing","routerReducer","screenerUtils","ScreenerUtilsReducer","stockEarnings","StockEarningsReducer","stockEarningsChartData","StockEarningsChartReducer","symbolSearchData","symbolSearchReducer","technicalAnalysisData","technicalAnalysisReducer","todaysTopSectors","TodaysTopSectorsReducer","trailingReturnsChartData","TrailingReturnsChartReducer","UserReducer","utility","UtilityReducer","watchlistData","watchlistReducer","xrefData","xrefReducer","stockUpgradesDowngrades","UpgradesDowngradesReducer","rootReducer","apiFailure","api","rootSaga","token","MD","platformUrl","apiBaseUrl","cibcApiUrl","apiBaseCibcUrl","platformApi","markitApi","create","cibcApi","fork","worker","apiType","getAjaxHandlerType","status","responseDetails","on400","watcher","takeEvery","getCibcApiRequestTypes","takeLatest","getCibcApiSingleRequestTypes","cibcDataSaga","headers","setHeaders","Accept","realtime","handleBlobResponse","on404","getApiRequestTypes","getApiSingleRequestTypes","markitDataSaga","IframeCommunication","constructor","this","init","bindListeners","actions","keepAlive","iframeSize","navigation","modal","scrollTo","checkParentFrame","parentFrameValid","minListHeight","startKeepAliveTimer","self","addEventListener","receiveMessage","ResizeObserver","entries","handleResize","observe","body","bindIframeListener","iframe","tcFrame","bindTRIframeListener","tipranksFrame","sendMessage","environment","parent","postMessage","isTrusted","origin","height","stringify","handleCommand","handleLanguage","handleTcFrameSize","handleTRIFrameSize","handleModalPosition","handleTcMessages","handleAdvancedChartClose","handleParentFrameCheck","setAttribute","lastActiveTime","Date","now","setInterval","clearTimeout","iframeSizeWait","resizeWait","entry","contentRect","lastHeight","frameHeight","ceil","handleDropdownIframeSize","getElementById","bodyHeight","offsetHeight","focusRef","focus","openAdvancedChart","symbolDescription","tradeOption","optionType","expYear","expMonth","expDay","tradeMutualFund","tradeStockEtf","arguments","goTo","openModal","isOpen","modalPositionCallBack","scrollY","sendNavigation","clearValidateParentTimer","distanceFromTop","valid","theValidFrameTime","sentCheckParentFrame","waitingForParent","parentCheckTimer","validateParentFrame","cibcRedirectUrl","timestamp","rootElement","storeConfiguration","compressor","createCompressor","persistConfig","storage","storageSession","transforms","blacklist","persistedReducer","persistReducer","sagaMiddleware","createSagaMiddleware","middleware","applyMiddleware","reduxMulti","enhancer","compose","reduxReset","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","store","createStore","myState","persistor","persistStore","previousToken","flush","purge","run","configureStore","onpopstate","ReactDOM","render","ErrorBoundary","Provider","PersistGate","loading","IntlProvider","Routes","importComponent","AsyncComponent","Component","super","_isMounted","componentDidMount","getAsyncComponent","componentWillUnmount","default","setState","C","hasError","componentDidCatch","errorInfo","children","Fragment","src","ErrorWarning","alt","num","colors","module","exports","navigator","msSaveOrOpenBlob","cacheBust","parameters","skipCacheBust","baseURL","authToken","apisauce","Authorization","timeout","addRequestTransform","showDebugRequestTransform","addResponseTransform","isDebugInfoOn","writeToDebug","getData","buildParams","getPdfData","responseType","withCredentials","postData","post","putData","getDataDownload","deleteData","method","MarketHoursTradeType","Normal","Extended","All","getRealtimeByTier","requestQuotes","XidsArray","MarketHoursType","realTimeOverride","responseHandler","XidsString","result","marketHoursTradeType","requestLegacyQuotes","deliveryConfigDefaults","noDelivery","coverCode","delivery","destinationId","intraDaySuspend","isOn","isOnDeliveryHold","isOnVacation","isSuspended","isUndeliverable","suspensions","typeId","buildUpdateMarketAlert","d","buildStockAlert","buildAnalystReportAlert","subscribed","requestAlertsProfile","includeSuspendInfo","requestPutDestination","requestAlertsDestinations","chunk","tempXids","requestAlertsSubscriptions","offset","requestAlertByCategory","receiveDeleteDestination","requestDeleteDestination","receivePutDestination","receivePostProfile","profileObj","receiveDeleteAlerts","requestDeleteAlerts","itemIds","receiveUpdateAlert","requestUpdateAlert","receiveUpdateAnalystResearchAlert","requestUpdateAnalystResearchAlert","requestSetAnalystResearchAlert","receiveAddAlerts","requestAddAlerts","Debug","responseData","eval","e","firstLine","split","parsedData","Error","request","withTranslate","translate","errorString","aria-hidden","frenchLocale","delimiters","thousands","decimal","abbreviations","trillion","ordinal","number","MarkitFormat","extend","numeral","locales","getElementsByTagName","unformat","formattedInput","isValidNumber","input","isNaN","isValidString","isValidDateString","moment","isValidMsDate","string","errorValue","NoData","priceVariablePrecision","decimals","decimalString","priceWithSignVariablePrecision","numberVariablePrecision","numberWithSignVariablePrecision","percentWithSignVariablePrecision","percentVariablePrecision","priceNoSign","precision","showSign","priceWithSign","percentMultiplied","percent","percentModifier","percentWithSign","percentNoSign","numberWithSign","numberInput","numberNoSign","numberupTo5Decimal","numberX","priceVariableMagnitude","showMagnitude","numberVariableMagnitude","numberMagnitude","dateTimeLong","time","monthDayYearShort","outputTimezone","monthDayLongYear","monthDayShort","monthDayYear","isMSDate","monthDayYearUtc","monthDay2DigitYearTime","monthDayYearLong","monthDayYearTime","monthDayYearTimeNoZone","monthDayYearShortTimeNoZone","monthDayYearShortTimeUTCtoET","inputTimezone","monthDayYearShortTime","timeWithTimezone","yearMonthDayTimeNoZone","getColorClass","floor","upDown","creditQualityConverter","credit","creditText","removeUtcTimezoneFromProperty","object","propertyName","dateFormat","propValue","set","utc","removeUtcTimezoneFromPropertyOnCollection","collection","yesNo","showNegAsParentheses","timeFormat","marketsCentreOverview","group","navItems","navOrder","marketsAtAGlance","marketsNews","marketsTechnicalAnalysisNews","hideFromNav","stockCentreCustomizeScreeners","stockCentreOverview","stocksUpgradesAndDowngrades","stocksSnapshot","subComponentPath","stocksNews","stocksCharts","stocksReports","stocksFundamentals","stocksEarnings","stocksFinancials","stocksOptions","checkOptions","stocksTechnicalAnalysis","stocksAnalysts","checkAnalysts","quotelistsWatchlists","matchPaths","quotelistsWatchlistTabs","quotelistsWatchlistsEdit","quotelistsWatchlistsCreate","quotelistsWatchlistsCreateWithXids","quotelistsQuotelists","quotelistsQuotelistsTabs","notImplemented","etfCentreOverview","etfCentreOverviewTabs","etfCentreScreener","etfCentreScreenerTabs","savedscreens","quickscreener","featuredscreens","customscreener","etfCentreCompare","etfCentreCommentary","etfCentreSnapshot","etfCentrePerformance","etfCentrePortfolio","etfCentreCharts","etfCentreReports","etfCentreOptions","etfCentreTechnicalAnalysis","fundCentreSnapShot","checkLipperLeaders","checkIndividualSecurityView","fundCentreCharts","fundCentreHoldingPerformance","fundCentrePortfolio","fundCentreLipperLeaders","fundCentreOptions","fundCentreOverview","fundCentrePerformance","fundCentrePerformanceTabs","totalnetassets","lipperleaders","fundCentreScreeners","fundCentreCustomizeScreeners","fundCentreEtfs","wgeOnly","alertsOverview","alertsMarkets","alertsMarketsEdit","alertsStocks","alertsIndividualStock","alertsWatchlist","alertsTechnicalAnalysis","alertsAnalystReports","alertsPreferences","analystReportsOverview","analystReportsEquities","analystReportsEconomics","analystReportsCustomSearch","analystReportsSavedSearches","navComponentPath","pages","getDisplayNameByLocation","checkAllPages","pagesToCheck","webpackAsyncContext","req","__webpack_require__","Promise","resolve","then","ids","t","watchlistTabs","quoteDetail","getPathByTab","requestWatchlistNames","includeCounts","successCallback","requestWatchlistQuotes","xidsString","optionXids","useTier","isRecentQuotes","sortDir","receiveUpdateTransaction","requestUpdateTransaction","transactionId","holdingId","Number","receiveAddHoldings","requestAddHoldings","requestAddToRecentQuotes","receiveDeleteHoldings","requestDeleteHoldings","holdingIds","requestCreateNewWatchlist","receiveRenameWatchlist","requestRenameWatchlist","oldName","receiveDeleteWatchlist","requestDeleteWatchlist","apiRequestTypes","apiReg","types","verb","fileName","encodeURI","documentName","Blob","contentType","blobData","File","Buffer","objectUrl","URL","createObjectURL","getUrlParameterValueByName","caseSensitive","cleanedName","regex","RegExp","exec","decodeURIComponent","getNewsFromQueryString","getPrescreenName","getScrollTo","getScreenName","getView","requestQuotelistFundBasics","requestQuotelistQuotes","requestXidsByWsodCompany","companyid","requestXidsByLegacySymbol","API_CIBC_REQUEST_XIDS_BY_LEGACYSYMBOL"],"mappings":"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mBAC/BigD,SAAUA,IAAMziD,GAAMhpF,gBAcjBuwI,GAA8B,CACnCplD,IAAK,8BACLC,MAAO,gCACP4hD,WAAY,CAAC,wCACZ,iCACDx2G,KAAM,gBACNm2D,cAAe,+BACf6jD,iBAAkB,kCAClBhlD,UAAW,CAAC,kBAAmB,mBAC/Bc,SAAS,EACTm/C,SAAUA,IAAMziD,GAAMhpF,gBAejBywI,GAAQ,CACblF,wBACAI,mBACA18G,eACA28G,cACAK,8BACA9yF,gBACA4yF,gCACAG,iBACAE,aACAC,eACAC,gBACAC,qBACAC,iBACAC,mBACAC,gBACAE,0BACAC,iBACAb,sBAEAkB,2BACAC,6BACAC,qCACAH,0BACAK,2BACAP,uBACAM,uBACAG,oBACAC,wBACAE,wBACAD,oBAEAM,mBACAC,sBACAC,oBACAC,uBACAC,qBACAC,kBACAC,mBACAC,mBACAC,6BACAC,qBACAG,mBACAC,+BACAC,sBACAC,0BACAC,oBACAG,4BACAD,wBACAM,kBACAF,sBACAC,+BACAN,qBACAS,kBACAC,iBACAE,gBACAC,yBACAC,mBACAH,qBACAI,2BACAC,wBACAC,qBACAC,0BACAC,0BACAC,2BACAC,8BACAC,+BACAhD,iBACAjkD,eAGKoiD,GAAW,CAChBziD,cAAe,CACdsiD,EACAI,EACA18G,EACA28G,EACAC,GAEDzyF,YAAa,CACZ4yF,EACAC,EACA9yF,EACA4yF,GAED3zH,UAAW,CACVq1H,EACAD,EAEAG,EACAD,EACAM,EACAC,EArjBuB,CACxB9iD,IAAK,mBACLqgD,MAAO,YACPpgD,MAAO,+BACP4hD,WAAY,CACX,8BACA,uCACA,0CACA,wCACA,qCACA,sCACA,sCACA,iDAEDx2G,KAAM,aACNg6G,iBAAkB,8BAClBhkD,QAAQ,EACRF,SAAS,EACTK,cAAe,uBACfnB,UAAW,CAAC,kBAAmB,cAC/BigD,SAAUA,IAAMziD,GAAM5wE,YAoiBtBwhC,OAAQ,CACPsyF,EACAE,EACAC,EACAQ,EACAP,EACAC,EACAC,EACAC,EACAC,EACAE,IAII5jD,GAAQ,CACbC,cAAe,CACd0iD,EACA18G,EACA28G,EACAC,EACAN,GAEDnyF,YAAa,CACZ6yF,EACA9yF,EAEA4yF,GAEDnyF,OAAQ,CACPsyF,EACAE,EACAC,EACAQ,EACAP,EACAC,EACAC,EACAC,EACAC,EACAE,EACAZ,GAED9iD,WAAY,CACXgkD,EACAC,EACAC,EA9vB8B,CAC/BjiD,IAAK,0BACLqgD,MAAO,aACPM,aAAa,EACb1gD,MAAO,gDACP50D,KAAM,cACN81D,SAAS,EACTK,cAAe,iCACfnB,UAAW,CAAC,kBAAmB,iBAAkB,eACjDigD,SAAUA,IAAMziD,GAAME,YAuvBrB+jD,EACAK,EACAP,EACAM,GAEDj1H,UAAW,CACVq1H,EACAD,EAEAG,EACAD,EACAM,EACAC,GAED9kD,2BAA4B,CAC3B+kD,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,GAEDplD,4BAA6B,CAC5BqlD,EACAG,EACAC,EACAC,EACAC,EACAC,GAEDlwH,WAAY,CACXmwH,EACAE,EACAD,EACAM,GACAF,EACAC,GAEDlmD,OAAQ,CACPqmD,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,IAEDlwI,eAAgB,CACfmwI,GACAC,GACAC,GACAC,GAvOqC,CACtCnlD,IAAK,iCACL2gD,aAAa,EACb1gD,MAAO,uCACP50D,KAAM,mBACNm2D,cAAe,8BACfL,SAAS,EACTd,UAAW,CAAC,kBAAmB,mBAC/BigD,SAAUA,IAAMziD,GAAMhpF,gBAiOrBuwI,GAjNsC,CACvCplD,IAAK,kCACL2gD,aAAa,EACb1gD,MAAO,wCACP50D,KAAM,oBACNm2D,cAAe,+BACf6jD,iBAAkB,kCAClBlkD,SAAS,EACTd,UAAW,CAAC,kBAAmB,mBAC/BigD,SAAUA,IAAMziD,GAAMhpF,iBA2MtBupF,aAAc,CACbgkD,GAEDjkD,YAAa,CACZA,IAwBFw2C,EAAOC,QAAU,CAChB0Q,SACAznD,SACA0nD,yBARgC9nD,GAfX+nD,EAACC,EAAchoD,KACpC,IAAIpyD,EAAO,KACX,MAAM09D,EAAOzG,OAAOyG,KAAK08C,GAEzB,IAAK,IAAIj2C,EAAQ,EAAGA,EAAQzG,EAAK7D,OAAQsK,GAAS,EAAG,CACpD,MAAMp5D,EAAOqvG,EAAa18C,EAAKyG,IAC/B,GAAIp5D,EAAK6pD,QAAUxC,EAAU,CAC5BpyD,EAAO+K,EAAK/K,KACZ,OAIF,OAAOA,GAIAm6G,CAAcF,GAAO7nD,GAQ5B8iD,c,oBC9lCD,IAAI5uC,EAAM,CACT,0BAA2B,CAC1B,IACA,EACA,EACA,EACA,EACA,GACA,IAED,6BAA8B,CAC7B,IACA,EACA,EACA,EACA,EACA,GACA,IAED,mBAAoB,CACnB,IACA,EACA,EACA,GACA,EACA,GACA,KAED,sBAAuB,CACtB,IACA,EACA,EACA,GACA,EACA,GACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,oBAAqB,CACpB,IACA,EACA,EACA,EACA,EACA,GACA,IAED,uBAAwB,CACvB,IACA,EACA,EACA,EACA,EACA,GACA,IAED,yBAA0B,CACzB,KACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,EACA,EACA,EACA,GACA,KAED,0BAA2B,CAC1B,IACA,EACA,EACA,EACA,EACA,GACA,KAED,kBAAmB,CAClB,IACA,EACA,EACA,EACA,GACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,EACA,EACA,GACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,EACA,IAED,sCAAuC,CACtC,IACA,EACA,EACA,IAED,qBAAsB,CACrB,IACA,EACA,EACA,GACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,EACA,GACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,sCAAuC,CACtC,KACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,EACA,KAED,0DAA2D,CAC1D,IACA,EACA,EACA,EACA,EACA,GACA,KAED,6DAA8D,CAC7D,IACA,EACA,EACA,EACA,EACA,GACA,KAED,+DAAgE,CAC/D,KACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,EACA,GACA,GACA,KAED,+CAAgD,CAC/C,IACA,EACA,EACA,GACA,GACA,KAED,iDAAkD,CACjD,KACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,KAED,iDAAkD,CACjD,KACA,EACA,KAED,yCAA0C,CACzC,IACA,EACA,EACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,EACA,EACA,KAED,8CAA+C,CAC9C,KACA,EACA,KAED,wCAAyC,CACxC,IACA,EACA,EACA,EACA,EACA,KAED,2CAA4C,CAC3C,IACA,EACA,EACA,EACA,EACA,KAED,6CAA8C,CAC7C,KACA,EACA,KAED,8CAA+C,CAC9C,IACA,EACA,EACA,KAED,iDAAkD,CACjD,IACA,EACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,KAED,iDAAkD,CACjD,KACA,EACA,KAED,gDAAiD,CAChD,IACA,EACA,EACA,EACA,GACA,KAED,mDAAoD,CACnD,IACA,EACA,EACA,EACA,GACA,KAED,qDAAsD,CACrD,KACA,EACA,KAED,0CAA2C,CAC1C,IACA,EACA,EACA,EACA,GACA,GACA,KAED,6CAA8C,CAC7C,IACA,EACA,EACA,EACA,GACA,GACA,KAED,+CAAgD,CAC/C,KACA,EACA,KAED,gDAAiD,CAChD,IACA,EACA,EACA,EACA,GACA,GACA,KAED,mDAAoD,CACnD,IACA,EACA,EACA,EACA,GACA,GACA,KAED,yDAA0D,CACzD,IACA,EACA,KAED,4DAA6D,CAC5D,IACA,EACA,KAED,6DAA8D,CAC7D,IACA,EACA,KAED,gEAAiE,CAChE,IACA,EACA,KAED,mDAAoD,CACnD,IACA,EACA,KAED,sDAAuD,CACtD,IACA,EACA,KAED,iDAAkD,CACjD,IACA,EACA,KAED,oDAAqD,CACpD,IACA,EACA,KAED,kDAAmD,CAClD,IACA,EACA,EACA,EACA,KAED,qDAAsD,CACrD,IACA,EACA,EACA,EACA,KAED,qDAAsD,CACrD,IACA,EACA,EACA,EACA,KAED,wDAAyD,CACxD,IACA,EACA,EACA,EACA,KAED,kDAAmD,CAClD,IACA,EACA,KAED,qDAAsD,CACrD,IACA,EACA,KAED,wDAAyD,CACxD,IACA,EACA,KAED,2DAA4D,CAC3D,IACA,EACA,KAED,8CAA+C,CAC9C,IACA,EACA,KAED,iDAAkD,CACjD,IACA,EACA,KAED,gEAAiE,CAChE,IACA,EACA,KAED,mEAAoE,CACnE,IACA,EACA,KAED,sDAAuD,CACtD,IACA,EACA,KAED,yDAA0D,CACzD,IACA,EACA,KAED,uDAAwD,CACvD,IACA,EACA,KAED,0DAA2D,CAC1D,IACA,EACA,KAED,wDAAyD,CACxD,IACA,EACA,KAED,2DAA4D,CAC3D,IACA,EACA,KAED,0DAA2D,CAC1D,KACA,EACA,KAED,yDAA0D,CACzD,IACA,EACA,KAED,4DAA6D,CAC5D,IACA,EACA,KAED,0DAA2D,CAC1D,IACA,EACA,KAED,6DAA8D,CAC7D,IACA,EACA,KAED,iDAAkD,CACjD,IACA,EACA,EACA,GACA,KAED,oDAAqD,CACpD,IACA,EACA,EACA,GACA,KAED,sDAAuD,CACtD,KACA,EACA,KAED,uCAAwC,CACvC,KACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,mCAAoC,CACnC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,qCAAsC,CACrC,KACA,EACA,KAED,6CAA8C,CAC7C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,gDAAiD,CAChD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,yCAA0C,CACzC,IACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,KAED,iDAAkD,CACjD,KACA,EACA,KAED,gDAAiD,CAChD,IACA,EACA,KAED,mDAAoD,CACnD,IACA,EACA,KAED,0CAA2C,CAC1C,IACA,EACA,KAED,6CAA8C,CAC7C,IACA,EACA,KAED,+CAAgD,CAC/C,KACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,EACA,EACA,IACA,GACA,KAED,+CAAgD,CAC/C,IACA,EACA,EACA,EACA,IACA,GACA,KAED,iDAAkD,CACjD,KACA,EACA,KAED,iDAAkD,CACjD,IACA,EACA,EACA,EACA,GACA,KAED,oDAAqD,CACpD,IACA,EACA,EACA,EACA,GACA,KAED,sDAAuD,CACtD,KACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,0CAA2C,CAC1C,IACA,EACA,KAED,4CAA6C,CAC5C,KACA,EACA,KAED,kDAAmD,CAClD,IACA,EACA,EACA,EACA,KAED,qDAAsD,CACrD,IACA,EACA,EACA,EACA,KAED,yCAA0C,CACzC,IACA,EACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,EACA,KAED,8CAA+C,CAC9C,KACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,EACA,IACA,KAED,gCAAiC,CAChC,IACA,EACA,EACA,IACA,KAED,kCAAmC,CAClC,KACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,EACA,IACA,GACA,KAED,+BAAgC,CAC/B,IACA,EACA,EACA,IACA,GACA,KAED,iCAAkC,CACjC,KACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,EACA,IACA,GACA,KAED,+BAAgC,CAC/B,IACA,EACA,EACA,IACA,GACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,0CAA2C,CAC1C,IACA,EACA,KAED,4CAA6C,CAC5C,KACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,GACA,KAED,kDAAmD,CAClD,IACA,EACA,GACA,KAED,iCAAkC,CACjC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,oCAAqC,CACpC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,iDAAkD,CACjD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,oDAAqD,CACpD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,sDAAuD,CACtD,KACA,EACA,KAED,iDAAkD,CACjD,IACA,EACA,EACA,EACA,EACA,EACA,KAED,oDAAqD,CACpD,IACA,EACA,EACA,EACA,EACA,EACA,KAED,sDAAuD,CACtD,KACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,kCAAmC,CAClC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,qCAAsC,CACrC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,qBAAsB,CACrB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,yBAA0B,CACzB,IACA,EACA,EACA,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,EACA,IACA,EACA,KAED,8BAA+B,CAC9B,KACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,EACA,EACA,EACA,EACA,IAED,yBAA0B,CACzB,IACA,EACA,EACA,EACA,EACA,EACA,IAED,2BAA4B,CAC3B,KACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,EACA,EACA,EACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,EACA,EACA,EACA,EACA,IAED,6BAA8B,CAC7B,KACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,EACA,EACA,EACA,EACA,KAED,sCAAuC,CACtC,IACA,EACA,EACA,EACA,EACA,EACA,KAED,wCAAyC,CACxC,KACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,mCAAoC,CACnC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,qCAAsC,CACrC,KACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,EACA,EACA,EACA,IACA,IAED,uCAAwC,CACvC,IACA,EACA,EACA,EACA,EACA,IACA,IAED,6BAA8B,CAC7B,IACA,EACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,EACA,KAED,kCAAmC,CAClC,KACA,EACA,KAED,yBAA0B,CACzB,IACA,EACA,EACA,EACA,EACA,EACA,IAED,4BAA6B,CAC5B,IACA,EACA,EACA,EACA,EACA,EACA,IAED,sBAAuB,CACtB,IACA,EACA,EACA,EACA,EACA,GACA,KAED,yBAA0B,CACzB,IACA,EACA,EACA,EACA,EACA,GACA,KAED,0BAA2B,CAC1B,IACA,EACA,EACA,EACA,GACA,KAED,6BAA8B,CAC7B,IACA,EACA,EACA,EACA,GACA,KAED,wBAAyB,CACxB,IACA,EACA,EACA,EACA,GACA,GACA,KAED,2BAA4B,CAC3B,IACA,EACA,EACA,EACA,GACA,GACA,KAED,6BAA8B,CAC7B,KACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,EACA,GACA,GACA,KAED,yBAA0B,CACzB,IACA,EACA,EACA,GACA,GACA,KAED,2BAA4B,CAC3B,KACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,EACA,EACA,EACA,EACA,IAED,0BAA2B,CAC1B,IACA,EACA,EACA,EACA,EACA,EACA,IAED,gCAAiC,CAChC,IACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,KAED,8BAA+B,CAC9B,KACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,EACA,EACA,KAED,0CAA2C,CAC1C,IACA,EACA,EACA,EACA,KAED,4CAA6C,CAC5C,KACA,EACA,KAED,qCAAsC,CACrC,IACA,EACA,EACA,KAED,wCAAyC,CACxC,IACA,EACA,EACA,KAED,8CAA+C,CAC9C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,iDAAkD,CACjD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,mDAAoD,CACnD,KACA,EACA,KAED,sDAAuD,CACtD,IACA,EACA,EACA,KAED,yDAA0D,CACzD,IACA,EACA,EACA,KAED,2CAA4C,CAC3C,IACA,EACA,EACA,KAED,8CAA+C,CAC9C,IACA,EACA,EACA,KAED,iDAAkD,CACjD,IACA,EACA,EACA,KAED,oDAAqD,CACpD,IACA,EACA,EACA,KAED,0CAA2C,CAC1C,IACA,EACA,EACA,KAED,6CAA8C,CAC7C,IACA,EACA,EACA,KAED,wCAAyC,CACxC,IACA,EACA,EACA,KAED,2CAA4C,CAC3C,IACA,EACA,EACA,KAED,8CAA+C,CAC9C,IACA,EACA,EACA,KAED,iDAAkD,CACjD,IACA,EACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,EACA,KAED,sCAAuC,CACtC,IACA,EACA,EACA,KAED,iDAAkD,CACjD,IACA,EACA,EACA,EACA,KAED,oDAAqD,CACpD,IACA,EACA,EACA,EACA,KAED,sDAAuD,CACtD,KACA,EACA,KAED,0CAA2C,CAC1C,IACA,EACA,EACA,KAED,6CAA8C,CAC7C,IACA,EACA,EACA,KAED,+CAAgD,CAC/C,KACA,EACA,KAED,uDAAwD,CACvD,IACA,EACA,KAED,0DAA2D,CAC1D,IACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,kDAAmD,CAClD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,oDAAqD,CACpD,KACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,EACA,EACA,KAED,kDAAmD,CAClD,IACA,EACA,EACA,EACA,KAED,oDAAqD,CACpD,KACA,EACA,KAED,8CAA+C,CAC9C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,iDAAkD,CACjD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,mDAAoD,CACnD,KACA,EACA,KAED,mDAAoD,CACnD,IACA,EACA,EACA,IACA,KAED,sDAAuD,CACtD,IACA,EACA,EACA,IACA,KAED,wDAAyD,CACxD,KACA,EACA,KAED,0CAA2C,CAC1C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,6CAA8C,CAC7C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,+CAAgD,CAC/C,KACA,EACA,KAED,0CAA2C,CAC1C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,6CAA8C,CAC7C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,+CAAgD,CAC/C,KACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,+CAAgD,CAC/C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,iDAAkD,CACjD,KACA,EACA,KAED,6CAA8C,CAC7C,IACA,EACA,KAED,gDAAiD,CAChD,IACA,EACA,KAED,8CAA+C,CAC9C,IACA,EACA,KAED,iDAAkD,CACjD,IACA,EACA,KAED,mDAAoD,CACnD,KACA,EACA,KAED,oDAAqD,CACpD,IACA,EACA,EACA,EACA,IAED,uDAAwD,CACvD,IACA,EACA,EACA,EACA,IAED,yDAA0D,CACzD,KACA,EACA,KAED,oDAAqD,CACpD,IACA,EACA,EACA,EACA,KAED,uDAAwD,CACvD,IACA,EACA,EACA,EACA,KAED,yDAA0D,CACzD,KACA,EACA,KAED,iDAAkD,CACjD,IACA,EACA,KAED,oDAAqD,CACpD,IACA,EACA,KAED,sDAAuD,CACtD,KACA,EACA,KAED,wDAAyD,CACxD,IACA,EACA,EACA,EACA,KAED,2DAA4D,CAC3D,IACA,EACA,EACA,EACA,KAED,6DAA8D,CAC7D,KACA,EACA,KAED,uDAAwD,CACvD,IACA,EACA,EACA,EACA,KAED,0DAA2D,CAC1D,IACA,EACA,EACA,EACA,KAED,4DAA6D,CAC5D,KACA,EACA,KAED,6CAA8C,CAC7C,IACA,EACA,EACA,EACA,KAED,gDAAiD,CAChD,IACA,EACA,EACA,EACA,KAED,kDAAmD,CAClD,KACA,EACA,KAED,gDAAiD,CAChD,IACA,EACA,GACA,KAED,mDAAoD,CACnD,IACA,EACA,GACA,KAED,qDAAsD,CACrD,KACA,EACA,KAED,kDAAmD,CAClD,IACA,EACA,EACA,EACA,KAED,qDAAsD,CACrD,IACA,EACA,EACA,EACA,KAED,uDAAwD,CACvD,KACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,GACA,KAED,+CAAgD,CAC/C,IACA,EACA,GACA,KAED,iDAAkD,CACjD,KACA,EACA,KAED,kDAAmD,CAClD,IACA,EACA,GACA,IAED,qDAAsD,CACrD,IACA,EACA,GACA,IAED,uDAAwD,CACvD,KACA,EACA,KAED,6CAA8C,CAC7C,IACA,EACA,EACA,GACA,IAED,gDAAiD,CAChD,IACA,EACA,EACA,GACA,IAED,sCAAuC,CACtC,IACA,EACA,EACA,GACA,KAED,yCAA0C,CACzC,IACA,EACA,EACA,GACA,KAED,uDAAwD,CACvD,IACA,EACA,KAED,0DAA2D,CAC1D,IACA,EACA,KAED,4DAA6D,CAC5D,KACA,EACA,KAED,2CAA4C,CAC3C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,8CAA+C,CAC9C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,gDAAiD,CAChD,KACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,EACA,KAED,iDAAkD,CACjD,KACA,EACA,KAED,8CAA+C,CAC9C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,iDAAkD,CACjD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,mDAAoD,CACnD,KACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,kDAAmD,CAClD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,6CAA8C,CAC7C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,gDAAiD,CAChD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,+CAAgD,CAC/C,IACA,EACA,EACA,EACA,EACA,EACA,KAED,kDAAmD,CAClD,IACA,EACA,EACA,EACA,EACA,EACA,KAED,8CAA+C,CAC9C,IACA,EACA,KAED,iDAAkD,CACjD,IACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,+CAAgD,CAC/C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,iDAAkD,CACjD,KACA,EACA,KAED,gDAAiD,CAChD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,mDAAoD,CACnD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,oDAAqD,CACpD,KACA,EACA,KAED,6DAA8D,CAC7D,IACA,EACA,KAED,gEAAiE,CAChE,IACA,EACA,KAED,gDAAiD,CAChD,IACA,EACA,KAED,mDAAoD,CACnD,IACA,EACA,KAED,qDAAsD,CACrD,KACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,+CAAgD,CAC/C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,iDAAkD,CACjD,KACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,KAED,iDAAkD,CACjD,KACA,EACA,KAED,kDAAmD,CAClD,IACA,EACA,KAED,qDAAsD,CACrD,IACA,EACA,KAED,uDAAwD,CACvD,KACA,EACA,KAED,yCAA0C,CACzC,IACA,EACA,EACA,EACA,GACA,KAED,4CAA6C,CAC5C,IACA,EACA,EACA,EACA,GACA,KAED,8CAA+C,CAC9C,KACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,KAED,kDAAmD,CAClD,IACA,EACA,KAED,oDAAqD,CACpD,KACA,EACA,KAED,oDAAqD,CACpD,IACA,EACA,EACA,EACA,KAED,uDAAwD,CACvD,IACA,EACA,EACA,EACA,KAED,yDAA0D,CACzD,KACA,EACA,KAED,yDAA0D,CACzD,IACA,EACA,KAED,4DAA6D,CAC5D,IACA,EACA,KAED,2CAA4C,CAC3C,IACA,EACA,EACA,EACA,EACA,IACA,KAED,8CAA+C,CAC9C,IACA,EACA,EACA,EACA,EACA,IACA,KAED,gDAAiD,CAChD,KACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,EACA,KAED,yBAA0B,CACzB,IACA,EACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,oCAAqC,CACpC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,4CAA6C,CAC5C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,+CAAgD,CAC/C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,iDAAkD,CACjD,KACA,EACA,KAED,qCAAsC,CACrC,IACA,EACA,EACA,KAED,wCAAyC,CACxC,IACA,EACA,EACA,KAED,0CAA2C,CAC1C,KACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,EACA,EACA,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,EACA,EACA,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,oCAAqC,CACpC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,sCAAuC,CACtC,KACA,EACA,KAED,kCAAmC,CAClC,IACA,EACA,EACA,EACA,IACA,EACA,KAED,qCAAsC,CACrC,IACA,EACA,EACA,EACA,IACA,EACA,KAED,uCAAwC,CACvC,KACA,EACA,KAED,qCAAsC,CACrC,IACA,EACA,EACA,EACA,IACA,EACA,KAED,wCAAyC,CACxC,IACA,EACA,EACA,EACA,IACA,EACA,KAED,0CAA2C,CAC1C,KACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,sCAAuC,CACtC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,wCAAyC,CACxC,KACA,EACA,KAED,kCAAmC,CAClC,IACA,EACA,EACA,GACA,KAED,qCAAsC,CACrC,IACA,EACA,EACA,GACA,KAED,6BAA8B,CAC7B,IACA,EACA,EACA,EACA,EACA,GACA,KAED,gCAAiC,CAChC,IACA,EACA,EACA,EACA,EACA,GACA,KAED,uBAAwB,CACvB,IACA,EACA,EACA,EACA,EACA,GACA,KAED,0BAA2B,CAC1B,IACA,EACA,EACA,EACA,EACA,GACA,KAED,yBAA0B,CACzB,IACA,EACA,GACA,EACA,GACA,KAED,4BAA6B,CAC5B,IACA,EACA,GACA,EACA,GACA,KAED,8DAA+D,CAC9D,IACA,EACA,EACA,EACA,EACA,EACA,IAED,iEAAkE,CACjE,IACA,EACA,EACA,EACA,EACA,EACA,IAED,kCAAmC,CAClC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,qCAAsC,CACrC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,uCAAwC,CACvC,KACA,EACA,KAED,wCAAyC,CACxC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,2CAA4C,CAC3C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,kDAAmD,CAClD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,qDAAsD,CACrD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,iDAAkD,CACjD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,oDAAqD,CACpD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,0CAA2C,CAC1C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,6CAA8C,CAC7C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,+CAAgD,CAC/C,KACA,EACA,KAED,wDAAyD,CACxD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,2DAA4D,CAC3D,IACA,EACA,EACA,EACA,EACA,EACA,IAED,mCAAoC,CACnC,IACA,EACA,KAED,sCAAuC,CACtC,IACA,EACA,KAED,wCAAyC,CACxC,IACA,EACA,EACA,EACA,EACA,KAED,2CAA4C,CAC3C,IACA,EACA,EACA,EACA,EACA,KAED,qCAAsC,CACrC,IACA,EACA,EACA,EACA,EACA,EACA,KAED,wCAAyC,CACxC,IACA,EACA,EACA,EACA,EACA,EACA,KAED,0CAA2C,CAC1C,KACA,EACA,KAED,4DAA6D,CAC5D,IACA,EACA,EACA,EACA,EACA,EACA,IAED,+DAAgE,CAC/D,IACA,EACA,EACA,EACA,EACA,EACA,IAED,4CAA6C,CAC5C,IACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,KAED,iDAAkD,CACjD,KACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,KAED,oDAAqD,CACpD,IACA,EACA,KAED,uDAAwD,CACvD,IACA,EACA,KAED,oDAAqD,CACpD,IACA,EACA,KAED,uDAAwD,CACvD,IACA,EACA,KAED,kDAAmD,CAClD,IACA,EACA,KAED,qDAAsD,CACrD,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,EACA,EACA,EACA,GACA,KAED,2BAA4B,CAC3B,IACA,EACA,EACA,EACA,EACA,GACA,KAED,gDAAiD,CAChD,IACA,EACA,EACA,KAED,mDAAoD,CACnD,IACA,EACA,EACA,KAED,qDAAsD,CACrD,KACA,EACA,KAED,uDAAwD,CACvD,IACA,EACA,KAED,0DAA2D,CAC1D,IACA,EACA,KAED,4DAA6D,CAC5D,KACA,EACA,KAED,wDAAyD,CACxD,IACA,EACA,KAED,2DAA4D,CAC3D,IACA,EACA,KAED,6DAA8D,CAC7D,KACA,EACA,KAED,0DAA2D,CAC1D,IACA,EACA,EACA,EACA,GACA,KAED,6DAA8D,CAC7D,IACA,EACA,EACA,EACA,GACA,KAED,+DAAgE,CAC/D,KACA,EACA,KAED,0CAA2C,CAC1C,IACA,EACA,KAED,6CAA8C,CAC7C,IACA,EACA,KAED,6CAA8C,CAC7C,IACA,EACA,EACA,KAED,gDAAiD,CAChD,IACA,EACA,EACA,KAED,kDAAmD,CAClD,KACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,EACA,KAED,iDAAkD,CACjD,KACA,EACA,KAED,8CAA+C,CAC9C,IACA,EACA,KAED,iDAAkD,CACjD,IACA,EACA,KAED,iDAAkD,CACjD,IACA,EACA,EACA,KAED,oDAAqD,CACpD,IACA,EACA,EACA,KAED,sDAAuD,CACtD,KACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,EACA,KAED,kDAAmD,CAClD,IACA,EACA,EACA,KAED,oDAAqD,CACpD,KACA,EACA,KAED,kDAAmD,CAClD,IACA,EACA,EACA,KAED,qDAAsD,CACrD,IACA,EACA,EACA,KAED,iDAAkD,CACjD,IACA,EACA,GACA,GACA,KAED,oDAAqD,CACpD,IACA,EACA,GACA,GACA,KAED,sDAAuD,CACtD,KACA,EACA,KAED,oDAAqD,CACpD,IACA,EACA,KAED,uDAAwD,CACvD,IACA,EACA,KAED,yDAA0D,CACzD,KACA,EACA,KAED,8CAA+C,CAC9C,IACA,EACA,KAED,iDAAkD,CACjD,IACA,EACA,KAED,mDAAoD,CACnD,KACA,EACA,KAED,iDAAkD,CACjD,IACA,EACA,KAED,oDAAqD,CACpD,IACA,EACA,KAED,sDAAuD,CACtD,KACA,EACA,KAED,oDAAqD,CACpD,IACA,EACA,KAED,uDAAwD,CACvD,IACA,EACA,KAED,yDAA0D,CACzD,KACA,EACA,KAED,gDAAiD,CAChD,IACA,EACA,EACA,EACA,KAED,mDAAoD,CACnD,IACA,EACA,EACA,EACA,KAED,uDAAwD,CACvD,IACA,EACA,GACA,KAED,0DAA2D,CAC1D,IACA,EACA,GACA,KAED,4DAA6D,CAC5D,KACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,EACA,EACA,EACA,IACA,IAED,kCAAmC,CAClC,IACA,EACA,EACA,EACA,EACA,IACA,IAED,0CAA2C,CAC1C,IACA,EACA,EACA,KAED,6CAA8C,CAC7C,IACA,EACA,EACA,KAED,+BAAgC,CAC/B,KACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,EACA,IACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,EACA,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,EACA,EACA,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,EACA,EACA,IACA,EACA,KAED,mCAAoC,CACnC,KACA,EACA,KAED,kCAAmC,CAClC,IACA,EACA,EACA,EACA,IACA,EACA,KAED,qCAAsC,CACrC,IACA,EACA,EACA,EACA,IACA,EACA,KAED,0DAA2D,CAC1D,IACA,EACA,EACA,EACA,GACA,KAED,6DAA8D,CAC7D,IACA,EACA,EACA,EACA,GACA,KAED,+DAAgE,CAC/D,KACA,EACA,KAED,yDAA0D,CACzD,IACA,EACA,EACA,EACA,GACA,KAED,4DAA6D,CAC5D,IACA,EACA,EACA,EACA,GACA,KAED,gEAAiE,CAChE,IACA,EACA,KAED,mEAAoE,CACnE,IACA,EACA,KAED,oDAAqD,CACpD,IACA,EACA,KAED,uDAAwD,CACvD,IACA,EACA,KAED,yDAA0D,CACzD,KACA,EACA,KAED,gEAAiE,CAChE,IACA,EACA,KAED,mEAAoE,CACnE,IACA,EACA,KAED,qEAAsE,CACrE,KACA,EACA,KAED,kEAAmE,CAClE,IACA,EACA,KAED,qEAAsE,CACrE,IACA,EACA,KAED,uEAAwE,CACvE,KACA,EACA,KAED,2DAA4D,CAC3D,IACA,EACA,KAED,8DAA+D,CAC9D,IACA,EACA,KAED,gEAAiE,CAChE,KACA,EACA,KAED,sEAAuE,CACtE,IACA,EACA,KAED,yEAA0E,CACzE,IACA,EACA,KAED,2EAA4E,CAC3E,KACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,KAED,iDAAkD,CACjD,KACA,EACA,KAED,gDAAiD,CAChD,IACA,EACA,KAED,mDAAoD,CACnD,IACA,EACA,KAED,qDAAsD,CACrD,KACA,EACA,KAED,mDAAoD,CACnD,IACA,EACA,KAED,sDAAuD,CACtD,IACA,EACA,KAED,wDAAyD,CACxD,KACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,EACA,EACA,IACA,KAED,sCAAuC,CACtC,IACA,EACA,EACA,EACA,IACA,KAED,wCAAyC,CACxC,KACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,EACA,KAED,0CAA2C,CAC1C,IACA,EACA,EACA,KAED,2CAA4C,CAC3C,IACA,EACA,EACA,EACA,KAED,8CAA+C,CAC9C,IACA,EACA,EACA,EACA,KAED,6CAA8C,CAC7C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,gDAAiD,CAChD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,kDAAmD,CAClD,KACA,EACA,KAED,0DAA2D,CAC1D,IACA,EACA,KAED,6DAA8D,CAC7D,IACA,EACA,KAED,yCAA0C,CACzC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,4CAA6C,CAC5C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,8CAA+C,CAC9C,KACA,EACA,KAED,iDAAkD,CACjD,IACA,EACA,EACA,EACA,EACA,GACA,KAED,oDAAqD,CACpD,IACA,EACA,EACA,EACA,EACA,GACA,KAED,uDAAwD,CACvD,KACA,EACA,KAED,kDAAmD,CAClD,IACA,EACA,EACA,EACA,GACA,KAED,qDAAsD,CACrD,IACA,EACA,EACA,EACA,GACA,KAED,mDAAoD,CACnD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,sDAAuD,CACtD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,gEAAiE,CAChE,IACA,EACA,KAED,mEAAoE,CACnE,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,0CAA2C,CAC1C,IACA,EACA,KAED,4CAA6C,CAC5C,KACA,EACA,KAED,2CAA4C,CAC3C,IACA,EACA,EACA,EACA,KAED,8CAA+C,CAC9C,IACA,EACA,EACA,EACA,KAED,yEAA0E,CACzE,IACA,EACA,EACA,EACA,KAED,4EAA6E,CAC5E,IACA,EACA,EACA,EACA,KAED,gFAAiF,CAChF,IACA,EACA,KAED,mFAAoF,CACnF,IACA,EACA,KAED,4EAA6E,CAC5E,IACA,EACA,KAED,+EAAgF,CAC/E,IACA,EACA,KAED,qFAAsF,CACrF,IACA,EACA,EACA,EACA,KAED,wFAAyF,CACxF,IACA,EACA,EACA,EACA,KAED,8CAA+C,CAC9C,IACA,EACA,EACA,EACA,KAED,iDAAkD,CACjD,IACA,EACA,EACA,EACA,KAED,mDAAoD,CACnD,KACA,EACA,KAED,4EAA6E,CAC5E,IACA,EACA,EACA,EACA,KAED,+EAAgF,CAC/E,IACA,EACA,EACA,EACA,KAED,mFAAoF,CACnF,IACA,EACA,EACA,EACA,KAED,sFAAuF,CACtF,IACA,EACA,EACA,EACA,KAED,+EAAgF,CAC/E,IACA,EACA,KAED,kFAAmF,CAClF,IACA,EACA,KAED,wFAAyF,CACxF,IACA,EACA,EACA,EACA,KAED,2FAA4F,CAC3F,IACA,EACA,EACA,EACA,KAED,6CAA8C,CAC7C,IACA,EACA,EACA,EACA,KAED,gDAAiD,CAChD,IACA,EACA,EACA,EACA,KAED,kDAAmD,CAClD,KACA,EACA,KAED,kFAAmF,CAClF,IACA,EACA,EACA,EACA,KAED,qFAAsF,CACrF,IACA,EACA,EACA,EACA,KAED,8EAA+E,CAC9E,IACA,EACA,KAED,iFAAkF,CACjF,IACA,EACA,KAED,8FAA+F,CAC9F,IACA,EACA,EACA,EACA,KAED,iGAAkG,CACjG,IACA,EACA,EACA,EACA,KAED,2CAA4C,CAC3C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,8CAA+C,CAC9C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,gDAAiD,CAChD,KACA,EACA,KAED,qEAAsE,CACrE,IACA,EACA,EACA,EACA,EACA,EACA,KAED,wEAAyE,CACxE,IACA,EACA,EACA,EACA,EACA,EACA,KAED,6EAA8E,CAC7E,IACA,EACA,KAED,gFAAiF,CAChF,IACA,EACA,KAED,6CAA8C,CAC7C,IACA,EACA,EACA,EACA,GACA,KAED,gDAAiD,CAChD,IACA,EACA,EACA,EACA,GACA,KAED,kDAAmD,CAClD,KACA,EACA,KAED,4EAA6E,CAC5E,IACA,EACA,EACA,EACA,GACA,KAED,+EAAgF,CAC/E,IACA,EACA,EACA,EACA,GACA,KAED,mFAAoF,CACnF,IACA,EACA,EACA,EACA,KAED,sFAAuF,CACtF,IACA,EACA,EACA,EACA,KAED,+EAAgF,CAC/E,IACA,EACA,EACA,EACA,KAED,kFAAmF,CAClF,IACA,EACA,EACA,EACA,KAED,wFAAyF,CACxF,IACA,EACA,EACA,EACA,KAED,2FAA4F,CAC3F,IACA,EACA,EACA,EACA,KAED,yBAA0B,CACzB,IACA,EACA,EACA,EACA,EACA,EACA,IAED,4BAA6B,CAC5B,IACA,EACA,EACA,EACA,EACA,EACA,IAED,8BAA+B,CAC9B,KACA,EACA,KAED,yBAA0B,CACzB,IACA,EACA,EACA,EACA,EACA,EACA,IAED,4BAA6B,CAC5B,IACA,EACA,EACA,EACA,EACA,EACA,IAED,8BAA+B,CAC9B,KACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,IAED,iCAAkC,CACjC,IACA,EACA,IAED,mCAAoC,CACnC,KACA,EACA,KAED,yCAA0C,CACzC,IACA,EACA,EACA,EACA,GACA,KAED,4CAA6C,CAC5C,IACA,EACA,EACA,EACA,GACA,KAED,8CAA+C,CAC9C,KACA,EACA,KAED,6CAA8C,CAC7C,IACA,EACA,EACA,EACA,GACA,KAED,gDAAiD,CAChD,IACA,EACA,EACA,EACA,GACA,KAED,8CAA+C,CAC9C,IACA,EACA,KAED,iDAAkD,CACjD,IACA,EACA,KAED,2CAA4C,CAC3C,IACA,EACA,KAED,8CAA+C,CAC9C,IACA,EACA,KAED,gDAAiD,CAChD,KACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,EACA,KAED,sCAAuC,CACtC,KACA,EACA,KAED,4DAA6D,CAC5D,IACA,EACA,EACA,KAED,+DAAgE,CAC/D,IACA,EACA,EACA,KAED,kEAAmE,CAClE,KACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,EACA,KAED,kDAAmD,CAClD,IACA,EACA,EACA,KAED,iDAAkD,CACjD,IACA,EACA,KAED,oDAAqD,CACpD,IACA,EACA,KAED,sDAAuD,CACtD,KACA,EACA,KAED,uCAAwC,CACvC,IACA,GAED,0CAA2C,CAC1C,IACA,GAED,4CAA6C,CAC5C,IACA,GAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,qCAAsC,CACrC,IACA,EACA,EACA,KAED,wCAAyC,CACxC,IACA,EACA,EACA,KAED,0CAA2C,CAC1C,KACA,EACA,KAED,kCAAmC,CAClC,IACA,EACA,KAED,qCAAsC,CACrC,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,sCAAuC,CACtC,KACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,KAED,yBAA0B,CACzB,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,gCAAiC,CAChC,KACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,EACA,GACA,KAED,8BAA+B,CAC9B,IACA,EACA,EACA,GACA,KAED,gCAAiC,CAChC,KACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,EACA,EACA,EACA,GACA,KAED,sCAAuC,CACtC,IACA,EACA,EACA,EACA,EACA,GACA,KAED,wCAAyC,CACxC,KACA,EACA,KAED,sCAAuC,CACtC,IACA,EACA,EACA,EACA,EACA,GACA,KAED,yCAA0C,CACzC,IACA,EACA,EACA,EACA,EACA,GACA,KAED,wCAAyC,CACxC,IACA,EACA,EACA,EACA,EACA,GACA,KAED,2CAA4C,CAC3C,IACA,EACA,EACA,EACA,EACA,GACA,KAED,wCAAyC,CACxC,IACA,EACA,KAED,2CAA4C,CAC3C,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,EACA,GACA,KAED,uCAAwC,CACvC,IACA,EACA,EACA,GACA,KAED,yCAA0C,CACzC,IACA,EACA,EACA,EACA,EACA,GACA,KAED,4CAA6C,CAC5C,IACA,EACA,EACA,EACA,EACA,GACA,KAED,qCAAsC,CACrC,IACA,EACA,EACA,KAED,wCAAyC,CACxC,IACA,EACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,EACA,KAED,sCAAuC,CACtC,IACA,EACA,EACA,KAED,wCAAyC,CACxC,KACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,KAED,sCAAuC,CACtC,IACA,EACA,KAED,wCAAyC,CACxC,KACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,sCAAuC,CACtC,KACA,EACA,KAED,sCAAuC,CACtC,IACA,EACA,EACA,KAED,yCAA0C,CACzC,IACA,EACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,EACA,EACA,EACA,EACA,IAED,gCAAiC,CAChC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,kCAAmC,CAClC,KACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,EACA,KAED,qCAAsC,CACrC,IACA,EACA,KAED,wCAAyC,CACxC,IACA,EACA,KAED,0CAA2C,CAC1C,KACA,EACA,KAED,qCAAsC,CACrC,IACA,EACA,EACA,EACA,KAED,wCAAyC,CACxC,IACA,EACA,EACA,EACA,KAED,0CAA2C,CAC1C,KACA,EACA,KAED,sCAAuC,CACtC,KACA,EACA,KAED,sCAAuC,CACtC,IACA,EACA,EACA,EACA,EACA,EACA,KAED,yCAA0C,CACzC,IACA,EACA,EACA,EACA,EACA,EACA,KAED,2CAA4C,CAC3C,KACA,EACA,KAED,qCAAsC,CACrC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,wCAAyC,CACxC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,yCAA0C,CACzC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,4CAA6C,CAC5C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,8CAA+C,CAC9C,KACA,EACA,KAED,wCAAyC,CACxC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,2CAA4C,CAC3C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,kDAAmD,CAClD,IACA,EACA,EACA,EACA,EACA,EACA,KAED,qDAAsD,CACrD,IACA,EACA,EACA,EACA,EACA,EACA,KAED,yCAA0C,CACzC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,4CAA6C,CAC5C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,8CAA+C,CAC9C,KACA,EACA,KAED,8CAA+C,CAC9C,IACA,EACA,KAED,iDAAkD,CACjD,IACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,EACA,KAED,kDAAmD,CAClD,IACA,EACA,EACA,KAED,yCAA0C,CACzC,IACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,KAED,oDAAqD,CACpD,IACA,EACA,KAED,uDAAwD,CACvD,IACA,EACA,KAED,8CAA+C,CAC9C,IACA,EACA,KAED,iDAAkD,CACjD,IACA,EACA,KAED,qDAAsD,CACrD,IACA,EACA,KAED,wDAAyD,CACxD,IACA,EACA,KAED,0DAA2D,CAC1D,KACA,EACA,KAED,yDAA0D,CACzD,IACA,EACA,KAED,4DAA6D,CAC5D,IACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,EACA,KAED,kDAAmD,CAClD,IACA,EACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,KAED,yDAA0D,CACzD,IACA,EACA,KAED,4DAA6D,CAC5D,IACA,EACA,KAED,8DAA+D,CAC9D,KACA,EACA,KAED,8DAA+D,CAC9D,IACA,EACA,KAED,iEAAkE,CACjE,IACA,EACA,KAED,mDAAoD,CACnD,IACA,EACA,EACA,KAED,sDAAuD,CACtD,IACA,EACA,EACA,KAED,gDAAiD,CAChD,IACA,EACA,KAED,mDAAoD,CACnD,IACA,EACA,KAED,mDAAoD,CACnD,IACA,EACA,KAED,sDAAuD,CACtD,IACA,EACA,KAED,wDAAyD,CACxD,IACA,EACA,KAED,2DAA4D,CAC3D,IACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,KAED,kDAAmD,CAClD,IACA,EACA,KAED,wDAAyD,CACxD,IACA,EACA,KAED,2DAA4D,CAC3D,IACA,EACA,KAED,6DAA8D,CAC7D,KACA,EACA,KAED,8CAA+C,CAC9C,IACA,EACA,KAED,iDAAkD,CACjD,IACA,EACA,KAED,0CAA2C,CAC1C,IACA,EACA,EACA,KAED,6CAA8C,CAC7C,IACA,EACA,EACA,KAED,wDAAyD,CACxD,IACA,EACA,KAED,2DAA4D,CAC3D,IACA,EACA,KAED,8CAA+C,CAC9C,IACA,EACA,KAED,iDAAkD,CACjD,IACA,EACA,KAED,6CAA8C,CAC7C,IACA,EACA,KAED,gDAAiD,CAChD,IACA,EACA,KAED,8CAA+C,CAC9C,IACA,EACA,EACA,EACA,KAED,iDAAkD,CACjD,IACA,EACA,EACA,EACA,KAED,qDAAsD,CACrD,IACA,EACA,KAED,wDAAyD,CACxD,IACA,EACA,KAED,0DAA2D,CAC1D,KACA,EACA,KAED,oDAAqD,CACpD,IACA,EACA,KAED,uDAAwD,CACvD,IACA,EACA,KAED,6CAA8C,CAC7C,IACA,EACA,EACA,KAED,gDAAiD,CAChD,IACA,EACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,EACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,EACA,EACA,KAED,iDAAkD,CACjD,KACA,EACA,KAED,sCAAuC,CACtC,IACA,EACA,KAED,yCAA0C,CACzC,IACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,KAED,iDAAkD,CACjD,KACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,KAED,kDAAmD,CAClD,IACA,EACA,KAED,wCAAyC,CACxC,IACA,EACA,EACA,KAED,2CAA4C,CAC3C,IACA,EACA,EACA,KAED,2CAA4C,CAC3C,IACA,EACA,EACA,KAED,8CAA+C,CAC9C,IACA,EACA,EACA,KAED,yCAA0C,CACzC,IACA,EACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,EACA,KAED,wCAAyC,CACxC,IACA,EACA,EACA,KAED,2CAA4C,CAC3C,IACA,EACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,KAED,0CAA2C,CAC1C,IACA,EACA,KAED,6CAA8C,CAC7C,IACA,EACA,KAED,yCAA0C,CACzC,IACA,EACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,EACA,KAED,0CAA2C,CAC1C,IACA,EACA,EACA,KAED,6CAA8C,CAC7C,IACA,EACA,EACA,KAED,0CAA2C,CAC1C,IACA,EACA,KAED,6CAA8C,CAC7C,IACA,EACA,KAED,+CAAgD,CAC/C,KACA,EACA,KAED,kDAAmD,CAClD,IACA,EACA,EACA,EACA,KAED,qDAAsD,CACrD,IACA,EACA,EACA,EACA,KAED,kDAAmD,CAClD,IACA,EACA,EACA,EACA,KAED,qDAAsD,CACrD,IACA,EACA,EACA,EACA,KAED,wDAAyD,CACxD,IACA,EACA,EACA,KAED,2DAA4D,CAC3D,IACA,EACA,EACA,KAED,6DAA8D,CAC7D,KACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,0CAA2C,CAC1C,IACA,EACA,KAED,4CAA6C,CAC5C,KACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,0CAA2C,CAC1C,IACA,EACA,KAED,4CAA6C,CAC5C,KACA,EACA,KAED,iEAAkE,CACjE,IACA,EACA,EACA,EACA,EACA,EACA,IAED,oEAAqE,CACpE,IACA,EACA,EACA,EACA,EACA,EACA,IAED,sEAAuE,CACtE,KACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,KAED,kDAAmD,CAClD,IACA,EACA,KAED,oDAAqD,CACpD,KACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,kCAAmC,CAClC,IACA,EACA,KAED,oCAAqC,CACpC,KACA,EACA,KAED,kCAAmC,CAClC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,qCAAsC,CACrC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,oCAAqC,CACpC,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,sCAAuC,CACtC,IACA,EACA,EACA,KAED,yCAA0C,CACzC,IACA,EACA,EACA,KAED,2CAA4C,CAC3C,KACA,EACA,KAED,0CAA2C,CAC1C,IACA,EACA,KAED,6CAA8C,CAC7C,IACA,EACA,KAED,+CAAgD,CAC/C,KACA,EACA,KAED,yBAA0B,CACzB,IACA,EACA,EACA,EACA,EACA,EACA,IAED,4BAA6B,CAC5B,IACA,EACA,EACA,EACA,EACA,EACA,IAED,sCAAuC,CACtC,IACA,EACA,EACA,KAED,yCAA0C,CACzC,IACA,EACA,EACA,KAED,2CAA4C,CAC3C,KACA,EACA,KAED,mDAAoD,CACnD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,sDAAuD,CACtD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,kDAAmD,CAClD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,qDAAsD,CACrD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,uDAAwD,CACvD,KACA,EACA,KAED,sCAAuC,CACtC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,yCAA0C,CACzC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,yCAA0C,CACzC,IACA,EACA,EACA,EACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,EACA,EACA,EACA,KAED,sCAAuC,CACtC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,yCAA0C,CACzC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,2CAA4C,CAC3C,KACA,EACA,KAED,6CAA8C,CAC7C,IACA,EACA,EACA,EACA,EACA,EACA,IAED,gDAAiD,CAChD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,kDAAmD,CAClD,KACA,EACA,KAED,kDAAmD,CAClD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,qDAAsD,CACrD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,iDAAkD,CACjD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,oDAAqD,CACpD,IACA,EACA,EACA,EACA,EACA,EACA,IAED,sDAAuD,CACtD,KACA,EACA,KAED,iCAAkC,CACjC,KACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,EACA,EACA,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,EACA,EACA,IACA,EACA,KAED,wCAAyC,CACxC,IACA,EACA,EACA,EACA,EACA,IACA,KAED,2CAA4C,CAC3C,IACA,EACA,EACA,EACA,EACA,IACA,KAED,+BAAgC,CAC/B,IACA,EACA,EACA,EACA,EACA,EACA,IAED,kCAAmC,CAClC,IACA,EACA,EACA,EACA,EACA,EACA,IAED,yCAA0C,CACzC,IACA,EACA,EACA,IACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,EACA,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,mCAAoC,CACnC,KACA,EACA,KAED,oBAAqB,CACpB,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,EACA,KAED,uBAAwB,CACvB,KACA,EACA,KAED,oBAAqB,CACpB,IACA,EACA,EACA,EACA,EACA,GACA,KAED,uBAAwB,CACvB,IACA,EACA,EACA,EACA,EACA,GACA,KAED,sBAAuB,CACtB,IACA,EACA,EACA,EACA,EACA,GACA,KAED,yBAA0B,CACzB,IACA,EACA,EACA,EACA,EACA,GACA,KAED,wBAAyB,CACxB,IACA,EACA,EACA,GACA,KAED,2BAA4B,CAC3B,IACA,EACA,EACA,GACA,KAED,6BAA8B,CAC7B,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,EACA,EACA,GACA,KAED,mBAAoB,CACnB,IACA,EACA,EACA,EACA,GACA,KAED,mBAAoB,CACnB,IACA,EACA,EACA,EACA,EACA,GACA,KAED,sBAAuB,CACtB,IACA,EACA,EACA,EACA,EACA,GACA,KAED,mBAAoB,CACnB,IACA,EACA,IACA,EACA,GACA,KAED,sBAAuB,CACtB,IACA,EACA,IACA,EACA,GACA,KAED,oBAAqB,CACpB,IACA,EACA,EACA,IACA,EACA,GACA,KAED,uBAAwB,CACvB,IACA,EACA,EACA,IACA,EACA,GACA,KAED,yBAA0B,CACzB,KACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,EACA,EACA,EACA,EACA,IAED,qBAAsB,CACrB,IACA,EACA,EACA,EACA,EACA,EACA,IAED,uBAAwB,CACvB,KACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,KAED,iDAAkD,CACjD,KACA,EACA,KAED,+CAAgD,CAC/C,KACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,EACA,EACA,GACA,KAED,kDAAmD,CAClD,IACA,EACA,EACA,EACA,GACA,KAED,oDAAqD,CACpD,IACA,EACA,KAED,uDAAwD,CACvD,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,gDAAiD,CAChD,IACA,EACA,KAED,mDAAoD,CACnD,IACA,EACA,KAED,4CAA6C,CAC5C,IACA,EACA,KAED,+CAAgD,CAC/C,IACA,EACA,KAED,yCAA0C,CACzC,IACA,EACA,EACA,EACA,GACA,KAED,4CAA6C,CAC5C,IACA,EACA,EACA,EACA,GACA,KAED,8CAA+C,CAC9C,KACA,EACA,KAED,mDAAoD,CACnD,IACA,EACA,KAED,sDAAuD,CACtD,IACA,EACA,KAED,mDAAoD,CACnD,IACA,EACA,KAED,sDAAuD,CACtD,IACA,EACA,KAED,yCAA0C,CACzC,IACA,EACA,GACA,KAED,4CAA6C,CAC5C,IACA,EACA,GACA,KAED,iDAAkD,CACjD,IACA,EACA,KAED,oDAAqD,CACpD,IACA,EACA,KAED,kDAAmD,CAClD,IACA,EACA,GACA,KAED,qDAAsD,CACrD,IACA,EACA,GACA,KAED,4DAA6D,CAC5D,IACA,EACA,KAED,+DAAgE,CAC/D,IACA,EACA,KAED,iEAAkE,CACjE,KACA,EACA,KAED,mDAAoD,CACnD,IACA,EACA,GACA,KAED,sDAAuD,CACtD,IACA,EACA,GACA,KAED,2CAA4C,CAC3C,IACA,EACA,GACA,KAED,8CAA+C,CAC9C,IACA,EACA,GACA,KAED,8CAA+C,CAC9C,IACA,EACA,GACA,KAED,iDAAkD,CACjD,IACA,EACA,GACA,KAED,wCAAyC,CACxC,IACA,EACA,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","file":"static/js/main.54821f71.chunk.js","sourcesContent":["import { createTypes } from 'reduxsauce';\n\nexport default createTypes(`\n\tKILL_ACTIVE_SAGA_WORKERS\n\n\tAPI_CIBC_RECEIVE_USER_INFO\n\tAPI_CIBC_RECEIVE_USER_INFO_FAIL\n\tAPI_CIBC_REQUEST_USER_INFO\n\tAPI_CIBC_SINGLE_REQUEST_USER_INFO\n\tAPI_CIBC_HANDLE_USER_INFO\n\n\tAPI_REQUEST_INDEX_QUOTES\n\tAPI_RECIEVE_INDEX_QUOTES\n\n\tAPI_REQUEST_MARKET_NEWS\n\tAPI_RECEIVE_MARKET_NEWS\n\tAPI_REQUEST_ETF_NEWS\n\tAPI_RECEIVE_ETF_NEWS\n\tAPI_HANDLE_NEWS_LOADER\n\tAPI_REQUEST_COMMODITIES_QUOTES\n\tAPI_RECEIVE_COMMODITIES_QUOTES\n\n\tAPI_REQUEST_NEWS_LINK\n\tAPI_REQUEST_NEWS_ARTICLE\n\tAPI_RECEIVE_NEWS_ARTICLE\n\n\tAPI_HANDLE_INDEX_LOADER\n\tAPI_HANDLE_NEWS_LOADER\n\n\tAPI_REQUEST_QUOTE\n\tAPI_RECEIVE_QUOTE\n\tAPI_HANDLE_QUOTE_LOADER\n\n\tAPI_CIBC_REQUEST_PRICECHART\n\tAPI_CIBC_SINGLE_REQUEST_PRICECHART\n\tAPI_CIBC_RECEIVE_PRICECHART\n\tAPI_CIBC_RECEIVE_MULTIPLE_PRICECHART\n\tAPI_CIBC_HANDLE_PRICECHART_LOADER\n\n\tAPI_REQUEST_MARKETRANKINGS\n\tAPI_RECEIVE_MARKETRANKINGS\n\tAPI_HANDLE_MARKETRANKINGS_LOADER\n\n\tAPI_REQUEST_SYMBOL_SEARCH\n\tAPI_RECEIVE_SYMBOL_SEARCH\n\tAPI_HANDLE_SYMBOL_SEARCH_LOADER\n\tAPI_HANDLE_COMMODITIES_LOADER\n\tAPI_SINGLE_REQUEST_SYMBOL_SEARCH\n\n\tAPI_RECEIVE_MARKET_RANKINGS\n\tAPI_REQUEST_MARKET_RANKINGS\n\tAPI_HANDLE_MARKET_RANKINGS_LOADER\n\n\tAPI_RECEIVE_XREF_BY_VENUE_XIDS\n\tAPI_HANDLE_XREF_BY_VENUE_XIDS_LOADER\n\tAPI_CIBC_REQUEST_XIDS_BY_LEGACYSYMBOL\n\tAPI_REQUEST_XREF_BY_VENUE_XIDS\n\tAPI_REQUEST_SYMBOL_IN_CONTEXT\n\tAPI_RECEIVE_SYMBOL_IN_CONTEXT\n\tAPI_REQUEST_EXCHANGES\n\tSET_SYMBOL_IN_CONTEXT\n\tAPI_CIBC_REQUEST_UNDERLAYING_BY_XIDS\n\tAPI_CIBC_RECEIVE_UNDERLAYING_BY_XIDS\n\tSET_SYMBOL_BY_XID\n\n\tAPI_CIBC_REQUEST_XIDS_BY_COMPANYID\n\tAPI_CIBC_RECEIVE_XIDS_BY_COMPANYID\n\tAPI_CIBC_HANDLE_XIDS_BY_COMPANYID_LOADER\n\n\tAPI_CIBC_REQUEST_CURRENCYCHART\n\tAPI_CIBC_RECEIVE_CURRENCYCHART\n\tAPI_CIBC_HANDLE_CURRENCYCHART_LOADER\n\n\tAPI_CIBC_RECEIVE_TECHNICAL_ANALYSIS\n\tAPI_CIBC_REQUEST_TECHNICAL_ANALYSIS\n\tAPI_CIBC_HANDLE_TECHNICAL_ANALYSIS_LOADER\n\n\tAPI_CIBC_REQUEST_WATCHLIST_NAMES\n\tAPI_CIBC_RECEIVE_WATCHLIST_NAMES\n\tAPI_CIBC_RECEIVE_WATCHLIST\n\tAPI_CIBC_REQUEST_WATCHLIST\n\tAPI_REQUEST_WATCHLIST_QUOTE\n\tAPI_RECEIVE_WATCHLIST_QUOTE\n\tSORT_WATCHLIST\n\tSORT_WATCHLIST_SETINDICATORS\n\tAPI_CIBC_REQUEST_WATCHLIST_UPDATE_TRANSACTION\n\tAPI_CIBC_RECEIVE_WATCHLIST_UPDATE_TRANSACTION\n\tAPI_CIBC_REQUEST_WATCHLIST_CREATE_WATCHLIST\n\tAPI_CIBC_RECEIVE_WATCHLIST_CREATE_WATCHLIST\n\tAPI_CIBC_REQUEST_WATCHLIST_ADD_HOLDINGS\n\tAPI_CIBC_RECEIVE_WATCHLIST_ADD_HOLDINGS\n\tAPI_CIBC_RECEIVE_WATCHLIST_DELETE_HOLDINGS\n\tAPI_CIBC_REQUEST_WATCHLIST_DELETE_HOLDINGS\n\tAPI_CIBC_RECEIVE_WATCHLIST_RENAME\n\tAPI_CIBC_SET_WATCHLIST_RENAME_ERROR\n\tAPI_CIBC_REQUEST_WATCHLIST_RENAME\n\tAPI_CIBC_RECEIVE_WATCHLIST_DELETE\n\tAPI_CIBC_REQUEST_WATCHLIST_DELETE\n\tAPI_CIBC_REQUEST_ADD_TO_RECENT_QUOTES\n\tAPI_CIBC_RECEIVE_ADD_TO_RECENT_QUOTES\n\tSET_ACTIVE_WATCHLIST_ID\n\tAPI_HANDLE_WATCHLIST_LOADER\n\tAPI_HANDLE_TIPRANKS_LOADER\n\n\tAPI_CIBC_REQUEST_GLOBAL_EXPOSURE_CHART\n\tAPI_CIBC_RECEIVE_GLOBAL_EXPOSURE_CHART\n\tAPI_CIBC_HANDLE_GLOBAL_EXPOSURE_CHART_LOADER\n\n\tADD_TO_QUOTELIST\n\tREMOVE_FROM_QUOTELIST\n\tSORT_QUOTELIST\n\tSORT_QUOTELIST_SETINDICATORS\n\tAPI_HANDLE_QUOTELIST_LOADER\n\tAPI_RECEIVE_QUOTELIST_QUOTE\n\tAPI_REQUEST_QUOTELIST_QUOTE\n\tAPI_RECEIVE_QUOTELIST_FUND_BASICS\n\tAPI_REQUEST_QUOTELIST_FUND_BASICS\n\n\tAPI_REQUEST_NEWS_INSIGHTS\n\tAPI_RECEIVE_NEWS_INSIGHTS\n\tAPI_REQUEST_PDF\n\tAPI_RECEIVE_PDF\n\n\tAPI_CIBC_REQUEST_COMMODITIESCHART\n\tAPI_CIBC_HANDLE_COMMODITIESCHART_LOADER\n\tAPI_CIBC_RECEIVE_COMMODITIESCHART\n\n\tAPI_CIBC_REQUEST_TOP_HOLDINGS\n\tAPI_CIBC_RECEIVE_TOP_HOLDINGS\n\tAPI_CLEAR_TOP_HOLDINGS\n\n\tAPI_RECEIVE_MORNINGSTAR_ANNUAL_FEES\n\tAPI_REQUEST_MORNINGSTAR_ANNUAL_FEES\n\n\tAPI_REQUEST_KEYRATES_QUOTE\n\tAPI_RECEIVE_KEYRATES_QUOTE\n\tAPI_HANDLE_KEYRATES_LOADER\n\n\tAPI_REQUEST_US_KEYRATES_QUOTE\n\tAPI_RECEIVE_US_KEYRATES_QUOTE\n\tAPI_HANDLE_US_KEYRATES_LOADER\n\n\tAPI_RECEIVE_OPTION_CHAIN\n\tAPI_HANDLE_OPTION_LOADER\n\tAPI_REQUEST_OPTION_CHAIN\n\tAPI_REQUEST_OPTION_CHAIN_WITH_QUOTES\n\tAPI_RECEIVE_OPTION_EXPIRATION_DATES\n\tAPI_REQUEST_OPTION_EXPIRATION_DATES\n\tAPI_RECEIVE_OPTION_CHAIN_BY_STRIKE\n\tAPI_CIBC_REQUEST_STRATEGY_CHART\n\tAPI_CIBC_RECEIVE_STRATEGY_CHART\n\n\tADD_OPTION_TO_QUOTE_LIST\n\tREMOVE_OPTIONS_FROM_QUOTE_LIST\n\tCLEAR_OPTIONS_QUOTELIST\n\tSET_OPTION_CHAIN_STRIKE_COUNT\n\n\tAPI_REQUEST_MORNINGSTAR_RATINGS\n\tAPI_HANDLE_MORNINGSTAR_RATINGS_LOADER\n\tAPI_RECEIVE_MORNINGSTAR_RATINGS\n\tAPI_REQUEST_MORNINGSTAR_PREMIUM_DISCOUNT_DAILY\n\tAPI_RECEIVE_MORNINGSTAR_PREMIUM_DISCOUNT_DAILY\n\tAPI_RECEIVE_MORNINGSTAR_SHARE_CLASS\n\tAPI_REQUEST_MORNINGSTAR_SHARE_CLASS\n\tAPI_RECEIVE_MORNINGSTAR_PORTFOLIO_STATISTICS\n\tAPI_REQUEST_MORNINGSTAR_PORTFOLIO_STATISTICS\n\tAPI_RECEIVE_MORNINGSTAR_MANAGED_FUNDS_STRATEGY\n\tAPI_REQUEST_MORNINGSTAR_MANAGED_FUNDS_STRATEGY\n\tAPI_RECEIVE_MORNINGSTAR_MANAGED_FUNDS_BENCHMARK\n\tAPI_REQUEST_MORNINGSTAR_MANAGED_FUNDS_BENCHMARK\n\tAPI_REQUEST_MORNINGSTAR_MANAGED_FUNDS_BENCHMARK_CATEGORY\n\tAPI_RECEIVE_MORNINGSTAR_MANAGED_FUNDS_BENCHMARK_CATEGORY\n\tAPI_REQUEST_MORNINGSTAR_MANAGED_FUNDS_PORTFOLIO_STATS\n\tAPI_RECEIVE_MORNINGSTAR_MANAGED_FUNDS_PORTFOLIO_STATS\n\tAPI_REQUEST_MORNINGSTAR_MANAGED_FUNDS_ATTRIBUTES\n\tAPI_RECEIVE_MORNINGSTAR_MANAGED_FUNDS_ATTRIBUTES\n\tAPI_REQUEST_MORNINGSTAR_GROWTH_10K\n\tAPI_RECEIVE_MORNINGSTAR_GROWTH_10K\n\tAPI_RECEIVE_MORNINGSTAR_RISK_MEASURES\n\tAPI_REQUEST_MORNINGSTAR_RISK_MEASURES\n\tAPI_RECEIVE_MORNINGSTAR_PEERS\n\tAPI_REQUEST_MORNINGSTAR_PEERS\n\tAPI_RECEIVE_MORNINGSTAR_ANNUAL_PERFORMANCE\n\tAPI_REQUEST_MORNINGSTAR_ANNUAL_PERFORMANCE\n\tAPI_RECEIVE_MORNINGSTAR_PERFORMANCE\n\tAPI_REQUEST_MORNINGSTAR_PERFORMANCE\n\tAPI_REQUEST_MORNINGSTAR_ASSET_ALLOCATION\n\tAPI_RECEIVE_MORNINGSTAR_ASSET_ALLOCATION\n\tAPI_RECEIVE_MORNINGSTAR_SECTOR_ALLOCATION\n\tAPI_REQUEST_MORNINGSTAR_SECTOR_ALLOCATION\n\tAPI_RECEIVE_MORNINGSTAR_TOP_HOLDINGS\n\tAPI_REQUEST_MORNINGSTAR_TOP_HOLDINGS\n\tAPI_REQUEST_MORNINGSTAR_COMPANY_INFORMATION\n\tAPI_RECEIVE_MORNINGSTAR_COMPANY_INFORMATION\n\tAPI_CIBC_REQUEST_MORNINGSTAR_FUND_DETAILS\n\tAPI_CIBC_RECEIVE_MORNINGSTAR_FUND_DETAILS\n\tAPI_CIBC_REQUEST_MORNINGSTAR_TOP_HOLDINGS\n\tAPI_REQUEST_MORNINGSTAR_ANNUAL_RETURN_DATA\n\tAPI_RECIEVE_MORNINGSTAR_ANNUAL_RETURN_DATA\n\tAPI_REQUEST_MORNINGSTAR_PROSPECTUS_FEES\n\tAPI_RECEIVE_MORNINGSTAR_PROSPECTUS_FEES\n\n\tAPI_CIBC_RECEIVE_TRAILING_RETURNS_CHART\n\tAPI_CIBC_REQUEST_TRAILING_RETURNS_CHART\n\tAPI_CIBC_HANDLE_TRAILING_RETURNS_CHART_LOADER\n\tAPI_CIBC_RECEIVE_PREMIUM_DISCOUNT_CHART\n\tAPI_CIBC_HANDLE_PREMIUM_DISCOUNT_CHART_LOADER\n\tAPI_CIBC_REQUEST_PREMIUM_DISCOUNT_CHART\n\tAPI_CIBC_REQUEST_GROWTH_10K_CHART\n\tAPI_CIBC_RECEIVE_GROWTH_10K_CHART\n\tAPI_CIBC_HANDLE_GROWTH_10K_CHART_LOADER\n\tAPI_CIBC_REQUEST_ANNUAL_PERFORMANCE_CHART\n\tAPI_CIBC_RECEIVE_ANNUAL_PERFORMANCE_CHART\n\tAPI_CIBC_HANDLE_ANNUAL_PERFORMANCE_CHART_LOADER\n\n\n\tAPI_REQUEST_RESEARCH_PDF\n\tAPI_REQUEST_RESEARCH_HISTORY_DOCUMENT\n\tAPI_REQUEST_RESEARCH_HISTORY_LINK\n\tAPI_REQUEST_RESEARCH_HISTORY\n\tAPI_HANDLE_RESEARCH_HISTORY_LOADER\n\tAPI_RECEIVE_RESEARCH_HISTORY\n\tAPI_REQUEST_RESEARCH_HISTORY_META_DATA\n\tAPI_RECEIVE_RESEARCH_HISTORY_META_DATA\n\n\tAPI_RECEIVE_CORPORATE_DIVIDENDS\n\tAPI_HANDLE_CORPORATE_DIVIDENDS_LOADER\n\tAPI_SINGLE_REQUEST_CORPORATE_DIVIDENDS\n\n\tAPI_CIBC_RECEIVE_DIVIDENDS_PER_SHARE_CHART\n\tAPI_CIBC_HANDLE_DIVIDENDS_PER_SHARE_CHART_LOADER\n\tAPI_CIBC_REQUEST_DIVIDENDS_PER_SHARE_CHART\n\n\tAPI_REQUEST_CURRENTRATIOS\n\tAPI_RECEIVE_CURRENTRATIOS\n\tAPI_CLEAR_CURRENTRATIOS\n\tAPI_HANDLE_CURRENTRATIOS_LOADER\n\n\tAPI_REQUEST_CURRENTRATIOS_PERCENTILE\n\tAPI_RECEIVE_CURRENTRATIOS_PERCENTILE\n\tAPI_CIBC_HANDLE_CURRENTRATIOS_PERCENTILE_LOADER\n\n\tAPI_CIBC_REQUEST_STOCK_EARNINGS\n\tAPI_CIBC_RECEIVE_STOCK_EARNINGS\n\tAPI_CIBC_HANDLE_STOCK_EARNINGS_LOADER\n\tAPI_CIBC_RECEIVE_STOCK_EARNINGS_ANNOUNCEMENTS\n\tAPI_CIBC_REQUEST_STOCK_EARNINGS_ANNOUNCEMENTS\n\n\tAPI_REQUEST_EQUITY_CLASSIFICATION\n\tAPI_RECEIVE_EQUITY_CLASSIFICATION\n\n\tAPI_REQUEST_REUTERS_EQUITIES_INFO\n\tAPI_CLEAR_REUTERS_EQUITIES_INFO\n\tAPI_RECEIVE_REUTERS_EQUITIES_INFO\n\tAPI_REQUEST_OFFICER_INFO\n\tAPI_RECEIVE_OFFICER_INFO\n\tAPI_HANDLE_REUTERS_EQUITIES_LOADER\n\n\tAPI_CIBC_REQUEST_STOCK_EARNINGS_CHART\n\tAPI_CIBC_RECEIVE_STOCK_EARNINGS_CHART\n\tAPI_CIBC_HANDLE_STOCK_EARNINGS_CHART_LOADER\n\n\tAPI_CIBC_REQUEST_FINANCIALS\n\tAPI_CIBC_RECEIVE_FINANCIALS\n\tAPI_HANDLE_FINANCIALS_LOADER\n\n\tAPI_CIBC_HANDLE_FUND_DATA_LOADER\n\tAPI_CIBC_RECEIVE_FUND_SNAPSHOT_DATA\n\tAPI_CIBC_RECEIVE_FUND_SNAPSHOT_DATA_FAIL\n\tAPI_CIBC_REQUEST_FUND_SNAPSHOT_DATA\n\tCLEAR_FUND_SNAPSHOT_DATA\n\tAPI_CIBC_RECEIVE_FUND_PERFORMANCE_DATA\n\tAPI_CIBC_RECEIVE_FUND_PERFORMANCE_DATA_FAIL\n\tAPI_CIBC_REQUEST_FUND_PERFORMANCE_DATA\n\tCLEAR_FUND_PERFORMANCE_DATA\n\tAPI_CIBC_RECEIVE_FUND_PORTFOLIO_DATA\n\tAPI_CIBC_RECEIVE_FUND_PORTFOLIO_DATA_FAIL\n\tAPI_CIBC_REQUEST_FUND_PORTFOLIO_DATA\n\tCLEAR_FUND_PORTFOLIO_DATA\n\tAPI_CIBC_RECEIVE_FUND_LIPPER_LEADER_DATA\n\tAPI_CIBC_RECEIVE_FUND_LIPPER_LEADER_DATA_FAIL\n\tAPI_CIBC_REQUEST_FUND_LIPPER_LEADER_DATA\n\tCLEAR_FUND_LIPPER_LEADER_DATA\n\n\tAPI_CIBC_REQUEST_FUND_INDEX_OVERVIEW_FUND\n\tAPI_CIBC_RECEIVE_FUND_INDEX_OVERVIEW_FUND\n\tAPI_CIBC_REQUEST_FUND_INDEX_OVERVIEW_INDEX\n\tAPI_CIBC_RECEIVE_FUND_INDEX_OVERVIEW_INDEX\n\tAPI_CIBC_HANDLE_FUND_INDEX_LOADER\n\n\tAPI_REQUEST_FUND_BASIC_LIPPER\n\tAPI_RECEIVE_FUND_BASIC_LIPPER\n\tAPI_REQUEST_FUND_PERFORMANCE_LIPPER\n\tCLEAR_FUND_PERFORMANCE_LIPPER\n\tAPI_RECEIVE_FUND_PERFORMANCE_LIPPER\n\tAPI_HANDLE_LIPPER_LOADER\n\n\tAPI_REQUEST_FUND_YIELD_LIPPER\n\tAPI_RECEIVE_FUND_YIELD_LIPPER\n\n\tAPI_REQUEST_FUND_LIPPER_LEADERS\n\tAPI_RECEIVE_FUND_LIPPER_LEADERS\n\tCLEAR_FUND_LIPPER_LEADERS\n\n\tAPI_REQUEST_FUND_LIPPER_ASSET_ALLOCATIONS\n\tAPI_RECEIVE_FUND_LIPPER_ASSET_ALLOCATIONS\n\n\tAPI_ADD_SYMBOLS_TO_COMPARE_LIST\n\tAPI_REQUEST_COMPARE_LIST_QUOTE\n\tAPI_RECEIVE_COMPARE_LIST_QUOTE\n\tAPI_REQUEST_COMPARE_MORNINGSTAR_PROSPECTUS\n\tAPI_RECEIVE_COMPARE_MORNINGSTAR_PROSPECTUS\n\tAPI_REQUEST_COMPARE_CORPORATE_DIVIDEND\n\tAPI_RECEIVE_COMPARE_CORPORATE_DIVIDEND\n\tAPI_REQUEST_COMPARE_MORNINGSTAR_RATINGS\n\tAPI_RECEIVE_COMPARE_MORNINGSTAR_RATINGS\n\tAPI_REQUEST_COMPARE_MORNINGSTAR_BENCHMARKS\n\tAPI_RECEIVE_COMPARE_MORNINGSTAR_BENCHMARKS\n\tAPI_REQUEST_COMPARE_MORNINGSTAR_BENCHMARK_CATEGORY\n\tAPI_RECEIVE_COMPARE_MORNINGSTAR_BENCHMARK_CATEGORY\n\tAPI_REQUEST_COMPARE_ATTRIBUTES\n\tAPI_RECEIVE_COMPARE_ATTRIBUTES\n\tAPI_REQUEST_COMPARE_SHARECLASS_DATA\n\tAPI_RECEIVE_COMPARE_SHARECLASS_DATA\n\tAPI_CIBC_REQUEST_COMPARE_FUND_DETAILS\n\tAPI_CIBC_RECEIVE_COMPARE_FUND_DETAILS\n\tAPI_REQUEST_COMPARE_FUND_STRATEGY\n\tAPI_RECEIVE_COMPARE_FUND_STRATEGY\n\tAPI_REQUEST_COMPARE_PORTFOLIO_STATS\n\tAPI_RECEIVE_COMPARE_PORTFOLIO_STATS\n\tAPI_REQUEST_COMPARE_PERFORMANCE\n\tAPI_RECEIVE_COMPARE_PERFORMANCE\n\tAPI_REQUEST_COMPARE_ANNUAL_PERFORMANCE\n\tAPI_RECEIVE_COMPARE_ANNUAL_PERFORMANCE\n\tAPI_REQUEST_COMPARE_RISK_MEASURES\n\tAPI_RECEIVE_COMPARE_RISK_MEASURES\n\tAPI_REQUEST_SIMILAR_ETFS\n\tAPI_RECEIVE_SIMILAR_ETFS\n\tAPI_REQUEST_COMPARE_PREMIUM_DISCOUNT\n\tAPI_RECEIVE_COMPARE_PREMIUM_DISCOUNT\n\tAPI_REQUEST_COMPARE_DIVIDEND_INFORMATION\n\tAPI_RECEIVE_COMPARE_DIVIDEND_INFORMATION\n\tAPI_REQUEST_COMPARE_ASSET_ALLOCATION\n\tAPI_RECEIVE_COMPARE_ASSET_ALLOCATION\n\tAPI_CIBC_REQUEST_COMPARE_TOP_HOLDINGS\n\tAPI_CIBC_RECEIVE_COMPARE_TOP_HOLDINGS\n\tAPI_HANDLE_COMPARELIST_LOADER\n\tAPI_REQUEST_COMPARE_GEOGRAPHIC_ALLOCATION\n\tAPI_RECEIVE_COMPARE_GEOGRAPHIC_ALLOCATION\n\tAPI_REQUEST_COMPARE_SECTOR_ALLOCATION\n\tAPI_RECEIVE_COMPARE_SECTOR_ALLOCATION\n\tDELETE_SYMBOL_FROM_COMPARE_LIST\n\n\tAPI_HANDLE_ALERTS_LOADER\n\tAPI_RECEIVE_ALERTS_PROFILE\n\tAPI_REQUEST_ALERTS_PROFILE\n\tAPI_RECEIVE_ALERTS_PROFILE_DESTINATIONS\n\tAPI_REQUEST_ALERTS_PROFILE_DESTINATIONS\n\tAPI_RECEIVE_ALERTS_SUBSCRIPTIONS\n\tAPI_REQUEST_ALERTS_SUBSCRIPTIONS\n\tAPI_RECEIVE_ALERTS_DELETE_DESTINATION\n\tAPI_REQUEST_ALERTS_DELETE_DESTINATION\n\tAPI_REQUEST_ALERTS_PUT_DESTINATION\n\tAPI_RECEIVE_ALERTS_PUT_DESTINATION\n\tAPI_RECEIVE_ALERTS_POST_PROFILE\n\tAPI_REQUEST_ALERTS_POST_PROFILE\n\tAPI_CIBC_REQUEST_SCREENER_COLUMNS_DISTINCT_LIST\n\tAPI_CIBC_RECEIVE_SCREENER_COLUMN_DISTINCT_LIST\n\tSET_SAVED_SCREEN_COUNT\n\tAPI_HANDLE_SCREENER_UTILS_LOADER\n\tAPI_CIBC_HANDLE_TODAYS_TOP_SECTORS_LOADER\n\tAPI_CIBC_REQUEST_TODAYS_TOP_SECTORS\n\tAPI_CIBC_RECEIVE_TODAYS_TOP_SECTORS\n\tAPI_RECEIVE_ALERTS_DELETE\n\tAPI_REQUEST_ALERTS_DELETE\n\tAPI_RECEIVE_ALERT_UPDATE\n\tAPI_REQUEST_ALERT_UPDATE\n\tAPI_CIBC_REQUEST_ALERT_UPDATE\n\tAPI_RECEIVE_ALERTS_ADD\n\tAPI_REQUEST_ALERTS_ADD\n\n\tAPI_CIBC_RECEIVE_LEGACY_QUOTE\n\tAPI_CIBC_REQUEST_LEGACY_QUOTE\n\n\tAPI_CIBC_HANDLE_UPGRADES_DOWNGRADES_LOADER\n\tAPI_CIBC_REQUEST_UPGRADES_DOWNGRADES\n\tAPI_CIBC_RECEIVE_UPGRADES_DOWNGRADES\n\n\tAPI_CIBC_REQUEST_FUND_PROSPECTUS_DATA\n\tAPI_CIBC_RECEIVE_FUND_PROSPECTUS_DATA\n\n\tRESET_COMPARE_LIST\n\n\tSET_CUSTOM_SEARCH_INPUTS\n\tAPI_FAILURE\n\tAPI_REQUEST\n\n\tAPI_REQUEST_RESEARCH_FILE_SIZE\n\tAPI_RECEIVE_RESEARCH_FILE_SIZE\n\tADD_SELECTED_OPTION\n\n\tAPI_CIBC_REQUEST_BUZZNEWS\n\tAPI_CIBC_RECEIVE_BUZZNEWS\n\tAPI_CIBC_HANDLE_BUZZNEWS_LOADER\n\n\tAPI_REQUEST_MARKETS_OVERVIEW_CHART\n\tAPI_RECEIVE_MARKETS_OVERVIEW_CHART\n\tAPI_HANDLE_MARKETS_OVERVIEW_CHART_LOADER\n`);\n","/* global document, localStorage */\nimport { getTokenFromQueryString } from '../Utils/pathUtils';\n\nconst retrieve = localAccessToken => {\n\t// token from querystring > token from meta > token from local storage > local access token\n\tconst accessTokenFromQueryString = getTokenFromQueryString();\n\tif (accessTokenFromQueryString) {\n\t\treturn accessTokenFromQueryString;\n\t}\n\n\tconst accessTokenMeta = document.querySelector(\"meta[name='access_token']\");\n\tconst accessTokenFromMeta = accessTokenMeta ? accessTokenMeta.getAttribute('value') : null;\n\tif (accessTokenFromMeta) {\n\t\treturn accessTokenFromMeta;\n\t}\n\n\tconst accessTokenFromLocalStorage = localStorage.getItem('access_token');\n\tif (accessTokenFromLocalStorage) {\n\t\treturn accessTokenFromLocalStorage;\n\t}\n\n\treturn localAccessToken || '';\n};\n\nconst getPreviousToken = () => {\n\treturn localStorage.getItem('access_token');\n};\n\nexport default {\n\tretrieve,\n\tgetPreviousToken\n};\n","import Types from './Types';\n\nconst receiveUserInfo = response => {\n\treturn ({\n\t\ttype: Types.API_CIBC_RECEIVE_USER_INFO,\n\t\tresponse\n\t});\n};\n\nconst receiveUserInfoFail = response => {\n\treturn ({\n\t\ttype: Types.API_CIBC_RECEIVE_USER_INFO_FAIL,\n\t\tresponse\n\t});\n};\n\nconst handleLoader = fetchName => {\n\treturn ({\n\t\ttype: Types.API_CIBC_HANDLE_USER_INFO,\n\t\tfetchName\n\t});\n};\n\nconst requestUserInfo = () => {\n\tconst result = {\n\t\ttype: Types.API_CIBC_SINGLE_REQUEST_USER_INFO,\n\t\tendPoint: 'user',\n\t\tajaxType: 'GET',\n\t\tonSuccess: receiveUserInfo,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingUserInfo'\n\t};\n\n\treturn result;\n};\n\nexport {\n\trequestUserInfo,\n\treceiveUserInfoFail,\n\treceiveUserInfo\n};\n","export const translations = {\n\ten: {\n\t\tlocale: 'English',\n\t\tmessages: {\n\t\t\t'': '',\n\t\t\t'1d': '1d',\n\t\t\t'1dHidden': '1 day',\n\t\t\t'1week': '1 week',\n\t\t\t'1m': '1m',\n\t\t\t'1month': '1 month',\n\t\t\t'1monthPct': '1 month %',\n\t\t\t'1monthReturn': '1 month return',\n\t\t\t'1monthReturnDescription': 'The total return of an ETF, including change in price and any re-invested distributions over a one-month period.',\n\t\t\t'1star': '1 Star',\n\t\t\t'2days': '2 days',\n\t\t\t'2months': '2 months',\n\t\t\t'2stars': '2 Stars',\n\t\t\t'3stars': '3 Stars',\n\t\t\t'4stars': '4 Stars',\n\t\t\t'5d': '5d',\n\t\t\t'5days': '5 days',\n\t\t\t'5dHidden': '5 day',\n\t\t\t'5stars': '5 Stars',\n\t\t\t'3m': '3m',\n\t\t\t'3month': '3 month',\n\t\t\t'3monthPct': '3 month %',\n\t\t\t'3monthReturn': '3 month return',\n\t\t\t'3monthReturnDescription': 'The total return of an ETF, including change in price and any re-invested distributions over a three-month period.',\n\t\t\t'3months': '3 months',\n\t\t\t'3mHidden': '3 months',\n\t\t\t'3w': '3w',\n\t\t\t'3wHidden': '3 weeks',\n\t\t\t'1y': '1y',\n\t\t\t'1yHidden': '1 year',\n\t\t\t'1yPct': '1 year %',\n\t\t\t'3yPct': '3 year %',\n\t\t\t'5y': '5y',\n\t\t\t'5yHidden': '5 years',\n\t\t\t'6m': '6m',\n\t\t\t'6month': '6 month',\n\t\t\t'6monthReturn': '6 month return',\n\t\t\t'6monthReturnDescription': 'The total return of an ETF, including change in price and any re-invested distributions over a six-month period.',\n\t\t\t'6months': '6 months',\n\t\t\t'3monthPremiumDiscount': '3 month premium/discount data',\n\t\t\t'1year': '1 Year',\n\t\t\t'1yearReturn': '1 year return',\n\t\t\t'1yearReturnDescription': 'The average total annualized return of an ETF, including change in price and any re-invested distributions over a one-year period.',\n\t\t\t'1yearLower': '1 year',\n\t\t\t'3year': '3 year',\n\t\t\t'3yearRating': '3 year rating',\n\t\t\t'3yearRatingDescription': 'Morningstar\\'s rating based on the ETF\\'s risk-adjusted return over a three-year period.',\n\t\t\t'3yearReturn': '3 year return',\n\t\t\t'3yearReturnDescription': 'The average total annualized return of an ETF, including change in price and any re-invested distributions over a three-year period.',\n\t\t\t'3yearReturnRatingDescription': 'The ETF\\'s return rating over a three-year period.',\n\t\t\t'3yearRisk': '3 year risk',\n\t\t\t'3yearRiskDescription': 'The ETF\\'s risk rating over a three-year period.',\n\t\t\t'3yearLower': '3 year',\n\t\t\t'3years': '3 years',\n\t\t\t'5year': '5 year',\n\t\t\t'5yearRating': '5 year rating',\n\t\t\t'5yearRatingDescription': 'Morningstar\\'s rating based on the ETF\\'s risk-adjusted return over a five-year period.',\n\t\t\t'5yearReturn': '5 year return',\n\t\t\t'5yearReturnDescription': 'The average total annualized return of an ETF, including change in price and any re-invested distributions over a five-year period.',\n\t\t\t'5yearReturnRatingDescription': 'The ETF\\'s return rating over a five-year period.',\n\t\t\t'5yearRisk': '5 year risk',\n\t\t\t'5yearRiskDescription': 'The ETF\\'s risk rating over a five-year period.',\n\t\t\t'5yearLower': '5 year',\n\t\t\t'5years': '5 years',\n\t\t\t'10year': '10 year',\n\t\t\t'10yearRating': '10 year rating',\n\t\t\t'10yearRatingDescription': 'Morningstar\\'s rating based on the ETF\\'s risk-adjusted return over a ten-year period.',\n\t\t\t'10yearReturn': '10 year return',\n\t\t\t'10yearReturnDescription': 'The average total annualized return of an ETF, including change in price and any re-invested distributions over a ten-year period.',\n\t\t\t'10yearReturnRatingDescription': 'The ETF\\'s return rating over a ten-year period.',\n\t\t\t'10yearRisk': '10 year risk',\n\t\t\t'10yearRiskDescription': 'The ETF\\'s risk rating over a ten-year period.',\n\t\t\t'10yearLower': '10 year',\n\t\t\t'10years': '10 years',\n\t\t\t'52WeekRange': '52 Week range',\n\t\t\t'52WeekRangeLowerCase': '52 week range',\n\t\t\t'52WeekRangeSr': '52 week range',\n\t\t\t'52WH': '52 W H',\n\t\t\t'52WL': '52 W L',\n\t\t\t'7days': '7 days',\n\t\t\t'14days': '14 days',\n\t\t\t'30days': '30 days',\n\t\t\t'60days': '60 days',\n\t\t\t'90days': '90 days',\n\t\t\t'1WeekReturn': '1 week return',\n\t\t\t'1MonthReturn': '1 month return ',\n\t\t\t'3MonthReturn': '3 month return',\n\t\t\t'6MonthReturn': '6 month return',\n\t\t\t'1YearReturn': '1 year return',\n\t\t\t'3YearReturnAnn': '3 year return (annualized) ',\n\t\t\t'3YearsReturn': '3 years return',\n\t\t\t'5YearReturnAnn': '5 year return (annualized)',\n\t\t\t'5YearsReturn': '5 years return',\n\t\t\t'10YearReturnAnn': '10 year return (annualized) ',\n\n\t\t\t'--': '--',\n\t\t\t__RECENT__: 'Recent quotes',\n\t\t\t'5StarEquityETFs': '5-Star Equity ETFs',\n\t\t\t'5StarEquityETFs_desc': 'ETFs with a 5-star rating from Morningstar that invest in Canadian, U.S. and international equity holdings.',\n\t\t\tabove: 'above',\n\t\t\taboveAverage: 'Above average',\n\t\t\tabove52WeekHigh: 'Above 52 week high',\n\t\t\tabove52WeekHighDescription: 'ETFs that reached a new 52 week high.',\n\t\t\taccountingChange: 'Accounting Change',\n\t\t\taccountsPayable: 'Accounts Payable',\n\t\t\taccountsReceivable: 'Accounts Receivable',\n\t\t\taccptOutstanding: 'Acceptances Outstanding',\n\t\t\taccruedExpenses: 'Accrued Expenses',\n\t\t\taccruedInvestIncome: 'Accrued Investment Income',\n\t\t\taccumGoodwillAmort: 'Accum. Goodwill Amort.',\n\t\t\taccumIntangibleAmort: 'Accum. Intangible Amort.',\n\t\t\taccumulatedDepletion: 'Accumulated Depletion',\n\t\t\taccumulatedDepreciation: 'Accumulated Depreciation',\n\t\t\tadditionalPaidInCap: 'Additional Paid-In Capital',\n\t\t\tacqBusiness: 'Acquisition of Business',\n\t\t\tactionCantBeUndone: 'This action can\\'t be undone',\n\t\t\tadd: 'Add',\n\t\t\taddCriteria: 'Add criteria',\n\t\t\taddCriteriaSRDirections: 'To navigate to criteria categories, use the tab key. To navigate into each category, use the right arrow key. Use the up and down arrow keys to navigate within the criteria list.',\n\t\t\tadditionalPerShare: 'Additional per share data',\n\t\t\taddNewAlert: 'Add New Alert (Enter Symbol)',\n\t\t\taddOption: 'Add Option',\n\t\t\taddOptionSymbol: 'Add {symbol} to quote lists',\n\t\t\taddOptionSymbolAndGoTo: 'Add {symbol} and go to quote lists',\n\t\t\taddress: 'Address',\n\t\t\taddSelectedToWatchList: 'Add Selected to Watch List',\n\t\t\taddToWatchListAndCloseDialogue: 'Add to watch list and close dialogue',\n\t\t\taddSymbolsUsingTheSearchAbove: 'Add symbols using the search above.',\n\t\t\taddSymbolsUsingTheSearchAboveOrSelectOpton: 'Add symbols using the search above or select an option below.',\n\t\t\taddToQuoteList: 'Add to quote list',\n\t\t\taddToWatchList: 'Add to watch list',\n\t\t\taddToWatchlistSr: 'Add selected to watch list in a new dialogue',\n\t\t\taddToWatchlistSymbolSr: 'Add {symbol} to watch list',\n\t\t\tAdvanced: 'Advanced',\n\t\t\tadvancedChart: 'Advanced chart',\n\t\t\tadvancedChartSr: '{symbol} advanced chart in a new dialogue',\n\t\t\tadvancedChartSrOnly: '{symbol} advanced chart in a new dialogue',\n\t\t\tadvertExpense: 'Advertising Expense',\n\t\t\t'aerospace&defense': 'Aerospace & Defense',\n\t\t\tage: 'Age',\n\t\t\talertType: 'Alert type',\n\t\t\talertTypeSet: 'Alert type set',\n\t\t\talertsAgreement: 'Alerts Agreement',\n\t\t\talertsAgreementHidden: 'Alerts agreement pdf in a new browser tab',\n\t\t\talertsPref: 'Alerts preferences',\n\t\t\talertsPrefDisclaimer1: 'If you subscribe to alerts by providing your email address and clicking on the save button below, you are agreeing to the terms of our alerts agreement and are bound by its terms and conditions.',\n\t\t\talertsPrefDisclaimer2: 'Due to text message size limitations, you may receive multiple text messages for each alert. Standard text messaging fees may apply based on your agreement with your provider.',\n\t\t\talertsPrefEmailNote: 'Email changes for Technical Alerts can only be made in Email address 1.',\n\t\t\talertsPrefMsg0: 'You can receive alerts by email and SMS text message.',\n\t\t\talertsPrefMsg1: 'To set up an email alert, you must provide at least one email address. You can select to receive emails as either HTML or text messages.',\n\t\t\talertsPrefMsg2: 'By providing your email address and clicking on the Save button below, you are agreeing to the Alerts agreement and are bound by its terms and conditions. Refer to the link at the bottom of the page to read this agreement.',\n\t\t\talertsPrefMsg3: 'If you’d like to receive text message alerts, please provide a mobile phone number in addition to an email address.',\n\t\t\talertsPrefMsg4: 'You can also use the ‘vacation stop’ option to stop receiving alerts for a specified period of time.',\n\t\t\talertsPrefMsg5: 'To save your preferences, select the Save button at the bottom of the page.',\n\t\t\tamortAcqCosts: 'Amortiz of Acquist Costs',\n\t\t\tamortDeferPolicyAcqCosts: 'Amort Defer Policy Acq Csts',\n\t\t\tamortIntangibles: 'Amortization of Intangibles',\n\t\t\tamortization: 'Amortization',\n\t\t\tamortOAcqCosts: 'Amortization of Acq Costs',\n\t\t\tamortOfAcqCosts: 'Amortization of Acq Costs',\n\t\t\tamortOfIntangibles: 'Amortization of Intangibles',\n\t\t\tamortPolicyAcquisitionCost: 'Amort. Of Policy Acquisition Costs',\n\t\t\tall: 'All',\n\t\t\tallcanada: 'All',\n\t\t\tallMarketDisclaimer: 'Trade prices and quotes are not sourced from all markets.',\n\t\t\tallunitedstates: 'All',\n\t\t\tallocation: 'Allocation',\n\t\t\tallowFundsDurConst: 'Allow Funds Used Dur Const',\n\t\t\tallSectors: 'All sectors',\n\t\t\tallFundType: 'All fund types',\n\t\t\tallFundPromoters: 'All fund promoters',\n\t\t\tallKeywords: 'All keywords',\n\t\t\talpha: 'Alpha',\n\t\t\talphaYear: 'Alpha ({year} year)',\n\t\t\tanalystConsensus: 'Analyst consensus',\n\t\t\tanalystConsensusTooltip: 'Analyst consensus is based on sell-side analysts’ ratings issued within the past 3 months.',\n\t\t\tMSDPrimaryIndexAlphaY1Ptile: 'Alpha (1 year)',\n\t\t\tMSDPrimaryIndexAlphaY3Ptile: 'Alpha (3 year)',\n\t\t\tMSDPrimaryIndexAlphaY5Ptile: 'Alpha (5 year)',\n\t\t\tMSDPrimaryIndexAlphaY10Ptile: 'Alpha (10 year)',\n\t\t\tMSDPrimaryIndexAlphaY1: 'Alpha (1 year)',\n\t\t\tMSDPrimaryIndexAlphaY3: 'Alpha (3 year)',\n\t\t\tMSDPrimaryIndexAlphaY5: 'Alpha (5 year)',\n\t\t\tMSDPrimaryIndexAlphaY10: 'Alpha (10 year)',\n\t\t\talphaDescription: 'One-, three-, five- or ten-year alpha represents the excess return of an ETF relative to the risk adjusted return of its benchmark over a specified period. Alpha may be used as a measure to represent the value that a portfolio manager adds.',\n\t\t\talphaVsCategory: 'Alpha vs. {category}',\n\t\t\talphaVsCategoryTooltip: 'Alpha represents an ETF’s excess return relative to its benchmark’s risk-adjusted return over a stated period of time. Alpha can be used to measure value added by a portfolio manager.',\n\t\t\talreadyInWatchList: 'The symbol is already in this list.',\n\t\t\talreadyInWatchList2: '{symbols} are already in your watch list',\n\t\t\talternative: 'Alternative',\n\t\t\talternativeenergy: 'Alternative Energy',\n\t\t\tanalysts: 'Analysts',\n\t\t\tanalystRating: 'Analyst Ratings',\n\t\t\tanalystReportsPreview: 'The Analyst Report custom search section isn’t quite done, but will be soon. We’ll have a new and improved format, where you’ll find all your saved custom search information.',\n\t\t\tanalystEstimate: 'Analyst estimates',\n\t\t\tanalystReports: 'Analyst Reports',\n\t\t\tanalystReportAlerts: 'The Analyst Reports alerts section isn’t quite done, but will be soon. When it’s ready, we’ll have a new and improved format where you’ll find all your saved alerts information.
Note: Existing alerts will be on hold until our new format is up and running.',\n\t\t\tanalystReportsDisclaimer1: 'The investment research information provided to you through this Web site is general only, it is not intended as specific investment advice and you should not rely on it as such.',\n\t\t\tanalystReportsDisclaimer2: 'Research reports from entities other than CIBC World Markets Inc. are not prepared subject to Canadian disclosure requirements.',\n\t\t\tanalystReportsDisclaimer3: 'Written or electronic Research Reports prepared by the CIBC World Markets and CIBC Wood Gundy divisions of CIBC World Markets Inc. will be made available for external distribution contemporaneously to all customers who are entitled to receive these Reports. Material that is not security specific, such as Economics & Strategy or Bond Index material, is generally made available to the public at large. Most material that is industry and/or security specific, such as Fixed Income Research, Equity Research, and Technical & Quantitative Analysis is considered to be proprietary and is only made available to institutional clients, to CIBC World Markets retail brokers for distribution to their clients, and to clients of CIBC affiliates who have been given access to such reports online. The most recent Report will be posted on this website and will be available for access by all customers who are entitled to receive the Reports. These Materials are intended for Canadian residents only.',\n\t\t\tannualEps: 'Annual EPS',\n\t\t\tannouncementDate: 'Announcement Date',\n\t\t\tannualizedReturnsTooltip: 'How {symbol} has performed over multiple periods',\n\t\t\tanalystOpinions: 'Analyst Opinions',\n\t\t\tannual: 'Annual',\n\t\t\tannualOption: 'Annual',\n\t\t\tsemiannual: 'Semi-annual',\n\t\t\tannualIncomeStatementItem: 'Annual income statement item',\n\t\t\tannualBalanceSheetItem: 'Annual balance sheet item',\n\t\t\tannualCashFlowItem: 'Annual cash flow item',\n\t\t\tannualDividend: 'Annual dividend',\n\t\t\tannualIncomeStatement: '',\n\t\t\tannualPerformance: 'Annual performance',\n\t\t\tannualPerformanceChartDataFollows: 'Annual performance chart data follows',\n\t\t\tannualPerformanceData: 'Annual Performance Data',\n\t\t\tannualized: 'annualized',\n\t\t\tannualizedReturns: 'Annualized returns',\n\t\t\tannualizedPerformance: 'Annualized performance',\n\t\t\tanyKeywords: 'Any keywords',\n\t\t\tapply: 'Apply',\n\t\t\tapplySrOnly: 'Apply search filters',\n\t\t\tarticleByDate: '{article} article by date',\n\t\t\tascending: 'Ascending',\n\t\t\task: 'Ask',\n\t\t\taskLots: 'Ask/Lots',\n\t\t\taskLotsCapitalization: 'Ask/lots',\n\t\t\taskLotsCapitalization2: 'Ask/Lots',\n\t\t\taskSharesCapitalization: 'Ask/shares',\n\t\t\taskSharesCapitalization2: 'Ask/Shares',\n\t\t\taskLotsSrOnly: 'ask lots',\n\t\t\tasOf: 'As of',\n\t\t\tdailyMarketAsOf: 'Daily Markets as of',\n\t\t\tasOfMarketClose: 'As of market close on',\n\t\t\tasOfPreviousClose: 'As of Previous Close',\n\t\t\tasOfPreviousClose2: 'As of previous close',\n\t\t\tasOfPreviousMonthEnd: 'Data as of previous month end',\n\t\t\tassets: 'Assets',\n\t\t\tassetClasses: 'Asset classes',\n\t\t\tassetClass: 'Asset class',\n\t\t\tassetAllocation: 'Asset allocation',\n\t\t\tassetAllocationInfo: ' Asset allocation information as of last closure provided by Morningstar.',\n\t\t\t'automobiles&parts': 'Automobiles & Parts',\n\t\t\tavailableWatchlists: 'Available Watchlists',\n\t\t\taverage: 'Average',\n\t\t\taverageCost: 'Average Cost',\n\t\t\taverageVolume10Day: 'Average volume (10 day)',\n\t\t\taverageVolume10DayDescription: 'The average number of shares traded over the past 10 trading days.',\n\t\t\tbalanced: 'Balanced',\n\t\t\tbalanceSheet: 'Balance sheet',\n\t\t\tbanks: 'Banks',\n\t\t\tBasic: 'Basic',\n\t\t\tbasicRanges: 'Basic ranges: ',\n\t\t\tbasicRangesSR: 'Select the basic ranges radio button to choose values, or the specific range radio button to enter a value or values.',\n\t\t\tbasicmaterials: 'Basic materials',\n\t\t\tMSDStockSectorBasicMaterials: 'Sector Basic materials',\n\t\t\tbasicNormalEPS: 'Basic Normalized EPS',\n\t\t\tbasicPrimarEPSExclExtraItems: 'Basic/Primary EPS Excl. Extra. Items',\n\t\t\tbasicPrimarEPSInclExtraItems: 'Basic/Primary EPS Incl. Extra. Items',\n\t\t\tbasicPrimarWeightAvShares: 'Basic/Primary Weighted Average Shares',\n\t\t\tbelow: 'below',\n\t\t\tbelowAverage: 'Below average',\n\t\t\tbelowB: 'Below B',\n\t\t\tbelow52WeekLow: 'Below 52 week low',\n\t\t\tbelow52WeekLowDescription: 'ETFs that reached a new 52 week low.',\n\t\t\tbearishMovingAverageCrossover: 'Bearish Moving Average Crossover',\n\t\t\tbearishMovingAverageCrossover_desc: 'A bearish Moving Average Crossover occurs when a faster moving average (15-Day SMA) crosses below the slower moving average (50-Day SMA).',\n\t\t\tbearishRSI: 'Bearish RSI',\n\t\t\tbearishRSI_desc: 'A bearish Relative Strength Index (RSI) signal occurs when RSI (14-Day) crosses below 70.',\n\t\t\tbearishStochastics: 'Bearish Stochastics',\n\t\t\tbearishStochastics_desc: 'A bearish signal is given by the Slow Stochastics when the K% line (14-Day) crosses below the D% line (3-Day).',\n\t\t\tbeta: 'Beta',\n\t\t\tbetaYear: 'Beta ({year} year)',\n\t\t\tMSDPrimaryIndexBetaY1Ptile: 'Beta (1 year)',\n\t\t\tMSDPrimaryIndexBetaY3Ptile: 'Beta (3 year)',\n\t\t\tMSDPrimaryIndexBetaY5Ptile: 'Beta (5 year)',\n\t\t\tMSDPrimaryIndexBetaY10Ptile: 'Beta (10 year)',\n\t\t\tMSDPrimaryIndexBetaY1: 'Beta (1 year)',\n\t\t\tMSDPrimaryIndexBetaY3: 'Beta (3 year)',\n\t\t\tMSDPrimaryIndexBetaY5: 'Beta (5 year)',\n\t\t\tMSDPrimaryIndexBetaY10: 'Beta (10 year)',\n\t\t\tbeta1Year: 'Beta (1 year)',\n\t\t\tbetaDescription: 'One-, three-, five- or ten-year beta represents the tendency of an ETF\\'s returns to respond to swings in its benchmark over a specified period. A beta of 1 indicates that the ETF may experience the same return as its benchmark while a beta of 1.5 indicates that the ETF may experience returns of 1.5 times its benchmark.',\n\t\t\tbetaVsCategory: 'Beta vs. {category}',\n\t\t\tbetaVsCategoryTooltip: 'Beta represents an ETF return’s tendency to respond to swings in its benchmark of a stated period of time. A beta of 1 indicates the ETF may experience the same return as its benchmark while a beta of 1.5 indicates the ETF may experience returns of 1.5 times its benchmark.',\n\t\t\tbeverages: 'Beverages',\n\t\t\tbid: 'Bid',\n\t\t\tbids: 'Bids',\n\t\t\tbidLots: 'Bids/Lots',\n\t\t\tbidLotsCapitalization: 'Bids/lots',\n\t\t\tbidLotsCapitalization2: 'Bid/Lots',\n\t\t\tbidSharesCapitalization: 'Bids/shares',\n\t\t\tbidSharesCapitalization2: 'Bid/Shares',\n\t\t\tbidLotsSrOnly: 'bid lots',\n\t\t\tbillion: 'billion',\n\t\t\tbookRatio: 'Book Ratio',\n\t\t\tbookValue: 'Book value',\n\t\t\tbonds: 'Bonds',\n\t\t\tboth: 'Both',\n\t\t\tbottomNMovers: 'Bottom {count} Movers',\n\t\t\tbottomPriceMovers: 'Bottom $ movers',\n\t\t\tbottomPerformers: 'Bottom performers',\n\t\t\tbottomPctMovers: 'Bottom % movers',\n\t\t\tbottomMovers: 'Bottom movers',\n\t\t\tbuildings: 'Buildings',\n\t\t\tbullishMovingAverageCrossover: 'Bullish Moving Average Crossover',\n\t\t\tbullishMovingAverageCrossover_desc: 'A bullish Moving Average Crossover occurs when a faster moving average (15-Day Simple Moving Average (SMA)) crosses above the slower moving average (50-Day SMA).',\n\t\t\tbullishRSI: 'Bullish RSI',\n\t\t\tbullishRSI_desc: 'A bullish Relative Strength Index (RSI) signal occurs when RSI (14-Day) crosses above 30.',\n\t\t\tbullishStochastics: 'Bullish Stochastics',\n\t\t\tbullishStochastics_desc: 'A bullish signal is given by the Slow Stochastics when the K% line (14-Day) crosses above the D% line (3-Day).',\n\t\t\tbuttonView: 'Button view',\n\t\t\tbreakevn: 'Break Even',\n\t\t\tbyChain: 'By Chain',\n\t\t\tbyCustom: 'By Custom',\n\t\t\tbyExpiry: 'By Expiry',\n\t\t\tbyStrike: 'By Strike',\n\t\t\tcalls: 'Calls',\n\t\t\tcall: 'Call',\n\t\t\tcallPut: 'Call/Put',\n\t\t\tcalendarYearReturns: 'Calendar year returns',\n\t\t\tcanadaGrowthAtReasonablePrice: 'Canada - growth at a reasonable price',\n\t\t\tcanadaGrowthAtReasonablePrice_desc: 'Canadian stocks with reasonable price growth',\n\t\t\tcanadaLowPEStocks: 'Canada - low PE stocks',\n\t\t\tcanadaValueStocks: 'Canada - value stocks',\n\t\t\tcanadianEquityETFs: 'Canadian Equity ETFs',\n\t\t\tcanadianEquityETFs_desc: 'ETFs that invest in Canadian equity holdings.',\n\t\t\tcanadianDollars: 'Canadian dollars',\n\t\t\tcanadianEquity: 'Canadian equity',\n\t\t\tcanadianNews: 'Canadian news',\n\t\t\tcanadianPrime: 'Canadian Prime',\n\t\t\tcanadianResearchReview: 'Canadian research review',\n\t\t\tcanadianResearchReviewDescription: 'An annual review on the Canadian stock universe covered by CIBC World Market analysts, including top picks, as well as Economic commentary.',\n\t\t\tcancel: 'Cancel',\n\t\t\tcancelSr: 'Cancel and close dialogue',\n\t\t\tcancelWatchlist: 'Cancel and go to watch lists',\n\t\t\tcapEx: 'Capital Expenditures',\n\t\t\tcapitalgoods: 'Capital Goods',\n\t\t\tcapitalLeastObligations: 'Capital Lease Obligations',\n\t\t\tcapitalPreservation: 'Capital preservation',\n\t\t\tcapLabel: 'Cap',\n\t\t\tcashFlowStandAlone: 'Cash flow',\n\t\t\tcash: 'Cash',\n\t\t\tcashDividsPaidCommon: 'Cash Divids Paid - Common',\n\t\t\tcashDividsPaidPreferred: 'Cash Divs Paid - Preferred ',\n\t\t\tcashInterestPdSuppl: 'Cash Interest Pd, Suppl',\n\t\t\tcashPayments: 'Cash Payments',\n\t\t\tcashReceipts: 'Cash Receipts',\n\t\t\tcashTaxesPdSuppl: 'Cash Taxes Pd, Supplemental',\n\t\t\tcashDueBanks: 'Cash & Due from Banks',\n\t\t\tcashEquivalents: 'Cash & Equivalents',\n\t\t\tcashShortTermInv: 'Cash and Short Term Inv',\n\t\t\tcategoryAverage: 'Category average',\n\t\t\tcategory: 'Category',\n\t\t\tcategoryRankTooltip: 'The category rank represents the ETF’s placement in a ranking of its peers, with 1 being the highest percentile and 100 the lowest.

For example, an ETF of Category rank/total 15/10 means it ranks in the category’s top 15%, and the category consists of 10 ETFs.',\n\t\t\tcategoryRank: 'Category rank/total',\n\t\t\tchange: 'Change',\n\t\t\tchangeContextChangement: 'Change',\n\t\t\tchangeContextVariation: 'Change',\n\t\t\tchangeDollars: 'Change $',\n\t\t\tchangeOf: 'A change of',\n\t\t\tchangePercent: 'Change %',\n\t\t\tchangesWorkingCapital: 'Changes in Working Capital',\n\t\t\tchangeToETFDetails: 'Change to {symbol} details',\n\t\t\tchargesMayNotBeApplicable: 'Charges may not be applicable to all Load types',\n\t\t\tchart: 'Chart',\n\t\t\tcharts: 'Charts',\n\t\t\tchartUnavailable: 'No Chart Available',\n\t\t\tcheckYourNotifications: 'Check your notifications, downloads or browser to open the file',\n\t\t\tchemicals: 'Chemicals',\n\t\t\tcibcFunds: 'CIBC funds',\n\t\t\tcibcWorldMarkets: 'CIBC World Markets',\n\t\t\tcibcWorldMarketsLower: 'CIBC world markets',\n\t\t\tclearList: 'Clear List',\n\t\t\tcloseMenu: 'Close menu',\n\t\t\tclose: 'Close',\n\t\t\tcloseWindow: 'Close window',\n\t\t\tcloseDialogueSrOnly: 'Close dialogue',\n\t\t\tcloseCopy: 'Close',\n\t\t\tCommentary: 'Commentary',\n\t\t\tcommercialPaper: 'Commercial Paper',\n\t\t\tcommonStockQCMS: 'Common Stock',\n\t\t\tcommonStockSCMS: 'Common Stock',\n\t\t\tcommishFeeSecurityAct: 'Commish & Fees/Secur Act',\n\t\t\tcommodities: 'Commodities',\n\t\t\tcommoditiesInUsDollars: 'Commodities in US dollars',\n\t\t\tcommodity: 'Commodity',\n\t\t\tcommonStockNet: 'Common Stock, Net',\n\t\t\tcommunicationservices: 'Communication services',\n\t\t\tMSDStockSectorCommunicationServices: 'Sector Communication services',\n\t\t\tcompany: 'Company',\n\t\t\tCompare: 'Compare',\n\t\t\tcomparedToIndustry: '(compared to industry)',\n\t\t\tcompareLimitReached: 'Please do not select more than {count} ETFs.',\n\t\t\tcompanyOverview: 'Company overview',\n\t\t\tcompareToSymbol: 'Compare to {symbol}',\n\t\t\tcomingSoon: 'Coming soon',\n\t\t\t'construction&materials': 'Construction & Materials',\n\t\t\tconstructionProgress: 'Construction in Progress',\n\t\t\tconsumercyclical: 'Consumer cyclical',\n\t\t\tMSDStockSectorConsumerCyclical: 'Sector Consumer cyclical',\n\t\t\tconsumercyclicals: 'Consumer Cyclicals',\n\t\t\tconsumerdefensive: 'Consumer defensive',\n\t\t\tMSDStockSectorConsumerDefensive: 'Sector Consumer defensive',\n\t\t\tconsumerDiscretionary: 'Consumer Discretionary',\n\t\t\tconsumergoods: 'Consumer goods',\n\t\t\t'consumernon-cyclicals': 'Consumer/non-cyclicals',\n\t\t\t'consumernon-cyclical': 'Consumer Non-Cyclical',\n\t\t\tconsumerservices: 'Consumer services',\n\t\t\tconsumerStaples: 'Consumer staples',\n\t\t\tconglomerates: 'Conglomerates',\n\t\t\tconsensusEstimate: 'Consensus estimates',\n\t\t\tcontactInfo: 'Contact information',\n\t\t\tcost: 'Cost',\n\t\t\tconvertible: 'Convertible',\n\t\t\tconvPrefStkNonRdmbl: 'Conv. Pref. Stk-Non Rdmbl.',\n\t\t\tcostOfRev: 'Cost of Revenue',\n\t\t\tcostRevenueTotal: 'Cost of Revenue, Total',\n\t\t\tcountry: 'Country',\n\t\t\tcountryDescription: 'The country in which the ETF trades.',\n\t\t\tcreateNew: 'Create New',\n\t\t\tcreateNewScreen: 'Create a new screen',\n\t\t\tcreateNewWatchlist: 'Create watch list',\n\t\t\tcreditCardFee: 'Credit Card Fees',\n\t\t\tcreditQuality: 'Credit quality',\n\t\t\tcreditDuration: 'Credit duration',\n\t\t\tcreditordebit: 'Credit or Debt',\n\t\t\tcreditQualityRating: 'Credit quality rating',\n\t\t\tcreditQualityRatingDescription: 'The credit quality rating is used to evaluate the default risk of fixed income investments.',\n\t\t\tcreditYears: '{years} years',\n\t\t\tcrosses: 'Crosses',\n\t\t\tcfra: 'CFRA',\n\t\t\t'cyf/nfy': 'CFY/NFY',\n\t\t\t'C-AM': 'Call',\n\t\t\tcurrentlyAddedSymbols: 'Currently added symbols',\n\t\t\tcurrentRatio: 'Current ratio',\n\t\t\tcumTransAdjst: 'Cum. Trans. Adjustment',\n\t\t\tcurrentFundCurrency: 'Current fund currency',\n\t\t\tcurrPortLTDebtCapLs: 'Curr. Port. LT Dbt/Cap Ls.',\n\t\t\tcustomerAcceptances: 'Customer Acceptances',\n\t\t\tcustomerAdvances: 'Customer Advances',\n\t\t\tcustomizeScreener: 'Customize screener',\n\t\t\tcustomizeScreenerResults: 'Customize screener results',\n\t\t\tcustomPeriodRange: 'Custom period range',\n\t\t\tcustomizeScreeners: 'Customize Screeners',\n\t\t\tcustomScreener: 'Custom screener',\n\t\t\tcustomSearch: 'Custom search',\n\t\t\tcumulativePerformance: 'Cumulative performance',\n\t\t\tdata: 'Data',\n\t\t\tdataRetrieved: 'Data retrieved',\n\t\t\tdate: 'Date',\n\t\t\tdateCreated: 'Date created',\n\t\t\tday: 'Day',\n\t\t\tdayD: '- day %D',\n\t\t\tdailyChart: 'Daily chart',\n\t\t\tdayKCrosses: '-day %K crosses ',\n\t\t\tdays: 'days',\n\t\t\tdayRange: 'Day range',\n\t\t\tdealerTradingAcctProfit: 'Dealer Trading Acct Profit',\n\t\t\tdealerTradingAcctLoss: 'Dealer Trading Account Loss',\n\t\t\tdeferredTaxes: 'Deferred Taxes',\n\t\t\tdefinitions: 'Definitions',\n\t\t\tdefinitionsSrOnly: 'Definitions in a new dialogue',\n\t\t\tdelete: 'Delete',\n\t\t\tdeleteSelected: 'Delete selected',\n\t\t\tdeletePurchaseDetails: 'Delete Purchase Details',\n\t\t\tdeleteSelectedSrOnly: 'Delete selected from list',\n\t\t\tdeleteWatchlist: 'Delete watch list',\n\t\t\tdeleteWatchlistSr: 'Delete list in a new dialogue',\n\t\t\tdeleteWatchlistHeader: 'Delete watch list',\n\t\t\tdelta: 'Delta',\n\t\t\tdepletion: 'Depletion',\n\t\t\tdeposits: 'Deposits',\n\t\t\tdepreciation: 'Depreciation',\n\t\t\tdepreciationAmortization: 'Depreciation/Amortization',\n\t\t\tdepreciationDepletion: 'Depreciation/Depletion',\n\t\t\tdepreciationExpense: 'Depreciation Expense',\n\t\t\tdepreciationSupp: 'Depreciation, Supplemental',\n\t\t\tdepreciationSuppl: 'Depreciation, Supplemental',\n\t\t\tdescending: 'Descending',\n\t\t\tdescription: 'Description',\n\t\t\tdetail: 'Detail',\n\t\t\tdetails: 'Details',\n\t\t\tdetailList: 'Detail list ',\n\t\t\tdetailedList: 'Detailed list ',\n\t\t\tdetailValue: 'Detail value',\n\t\t\tdilutedEPSExclExtraItems: 'Diluted EPS Excl. Extra. Items',\n\t\t\tdilutedEPSInclExtraItems: 'Diluted EPS Incl. Extra. Items',\n\t\t\tdilutedNormalEPS: 'Diluted Normalized EPS',\n\t\t\tdilutedWeightedAveShares: 'Diluted Weighted Average Shares',\n\t\t\tdilutionAdj: 'Dilution Adjustment',\n\t\t\tdisclosures: 'Disclosures',\n\t\t\tdiscontinuedOps: 'Discontinued Operations',\n\t\t\tdisplay: 'Display',\n\t\t\tdisplayBy: 'Display by',\n\t\t\tdisplayCurrency: 'Display currency',\n\t\t\tdistribution: 'Distribution',\n\t\t\tdistributionChart: 'Distribution chart',\n\t\t\tdistributionChartUnavailable: 'Distribution information is unavailable for this ETF.',\n\t\t\tnoDistributionInformationMF: 'There is no distribution data for this fund.',\n\t\t\tdistributionDetail: 'Distribution detail',\n\t\t\tdistributionFrequency: 'Distribution frequency',\n\t\t\tdistributionFrequencyDescription: 'The frequency at which an ETF pays out a distribution. Distributions can be paid monthly, quarterly, semi-annually or annually.',\n\t\t\tdistributionInformation: 'Distribution information',\n\t\t\tdistributionInformationAmounts: 'Distribution information amounts',\n\t\t\tdistributionsPerYear: 'Distributions per year',\n\t\t\tdistributionYield: 'Distribution yield',\n\t\t\tdistributionYieldDescription: 'Distribution yield is defined as the annual distribution declared by an ETF divided by its price.',\n\t\t\tdistributionsPerShare: 'Distributions per share',\n\t\t\tdistributionLabel: 'Distribution',\n\t\t\tdividend: 'Dividend',\n\t\t\tdividendInfo: 'Dividend information',\n\t\t\tdividendYield: 'Dividend Yield',\n\t\t\tdividendGrowthLabel: 'Dividend growth 5 year',\n\t\t\tdividendGrowthLabel2: 'Div growth 5 year',\n\t\t\tdomesticbond: 'Domestic bonds',\n\t\t\tdown: 'Down',\n\t\t\tdpsCommonStockPrimaryIssue: 'DPS - Common Stock Primary Issue',\n\t\t\tdjiaChartHidden: 'DJIA chart',\n\t\t\tduplicateWatchlistNameError: 'Watch List name already in use',\n\t\t\tdefIncTaxLTAsst: 'Def. Inc. Tax - LT Asset',\n\t\t\tdefPolicyAcqCosts: 'Def. Policy Acq. Costs',\n\t\t\tdeferredCharges: 'Deferred Charges',\n\t\t\tdeferredGasCost: 'Deferred Gas Cost',\n\t\t\tdeferredIncomeTax: 'Deferred Income Tax',\n\t\t\tdeferredIncomeTaxLBDT: 'Deferred Income Tax',\n\t\t\tdeferredIncomeTaxLDTC: 'Deferred Income Tax',\n\t\t\tdeferredIncomeTaxSBDT: 'Deferred Income Tax',\n\t\t\tdeferrentInvTaxCredit: 'Deferred Inv. Tax Credit',\n\t\t\tdiscontOpsCurrentAsst: 'Discont. Ops.-Curr. Assets',\n\t\t\tdiscontOpsLiabili: 'Discont. Ops. - Lblts',\n\t\t\tdiscontinuedOperations: 'Discontinued Operations',\n\t\t\tdisctOpsLTAsst: 'Disct. Ops. - LT Asset',\n\t\t\tdividendsPayable: 'Dividends Payable',\n\t\t\tdomicile: 'Domicile',\n\t\t\tdoNotSend: 'Do not send',\n\t\t\tduringThePriorTradingSession: 'during the prior trading session.',\n\t\t\tearnings: 'Earnings',\n\t\t\tearningsPerShare: 'Earnings per share',\n\t\t\teconomicInsights: 'Economic insights',\n\t\t\teconomicInsightsDescription: 'Browse our updated forecasts of Canadian and U.S. financial markets and our outlook on the North American economy.',\n\t\t\teconomics: 'Economics',\n\t\t\tedit: 'Edit',\n\t\t\teditSearch: 'Edit search',\n\t\t\teditWatchlistSrOnly: 'Edit selected watch list',\n\t\t\teditScreenerName: 'Edit screener name',\n\t\t\teditPurchaseDetails: 'Edit Purchase Details',\n\t\t\teducationDisclaimer: 'The analyst commentary, educational content and other investment research information provided to you through this website is general only, it is not intended as specific investment advice and you should not rely on it as such. Research reports from entities other than CIBC World Markets Inc. are not prepared subject to Canadian disclosure requirements.',\n\t\t\teffectiveTaxRate: 'Effective tax rate',\n\t\t\tearningsValue: 'Earnings Value',\n\t\t\teffectSpecialItemOnIncomeTax: 'Effect of Special Items on Income Taxes',\n\t\t\telectricity: 'Electricity',\n\t\t\t'electronic&electricalequipment': 'Electronic & Electrical Equipment',\n\t\t\telectricOps: 'Electric Operations',\n\t\t\temailAddress: 'Email address',\n\t\t\tenergy: 'Energy',\n\t\t\tMSDStockSectorEnergy: 'Sector Energy',\n\t\t\tenterName: 'Enter Name',\n\t\t\tenterNumberToMax: 'Enter a number to a maximum of 6 digits',\n\t\t\tenterNameForWatchlist: 'Please enter a name for this watch list.',\n\t\t\tenterSpecificValues: 'Enter specific values',\n\t\t\tequalToNLessThanM: '= to {min} to < {max}',\n\t\t\tequityInAffiliates: 'Equity In Affiliates',\n\t\t\tequityNetEarnLoss: 'Equity in Net Earnings/Loss',\n\t\t\tequityStylebox: 'Equity stylebox',\n\t\t\tequityStyleboxDescription: 'The equity stylebox is a proprietary Morningstar measure that provides a graphical representation of an ETF\\'s investment style. The stylebox is a nine-square grid that classifies equities by capitalization along the vertical axis and by investment style characteristics across the horizontal axis.',\n\t\t\terrorDuringDownload: 'Error during download',\n\t\t\tetfs: 'ETFs',\n\t\t\tetfMenu: 'ETF menu',\n\t\t\tetfPortfolioDisclaimer: 'ETF Portfolio Disclaimer',\n\t\t\tetfHoldingSearch: 'ETF holdings search',\n\t\t\tfeaturedScreens: 'Featured screens',\n\t\t\tfeaturedScreens2: 'Featured screens',\n\t\t\tfundClassesDisclaimer: 'A mutual fund may be available in multiple classes. The differences in fees and expenses between classes mean that each class has a different net asset value per unit, and therefore performance may differ between classes.',\n\t\t\tfundClassification: 'Fund classification',\n\t\t\tfundPromoter: 'Fund promoter',\n\t\t\tfundCommissionsDisclaimer: 'Commissions, trailing commissions, management fees and expenses all may be associated with mutual fund investments. Please read the simplified prospectus before investing. The indicated rates of return are the historical annual compounded total returns for the units, including changes in unit value and reinvestment of all distributions, but do not take into account sales, redemption, distribution or optional charges or income taxes payable by any unitholder that would have reduced returns. For money market funds, the performance data provided assumes reinvestment of distributions only but does not take into account sales, redemption, distribution or optional charges or income taxes payable by any unitholder that would have reduced returns. Mutual fund securities are not covered by the Canada Deposit Insurance Corporation or by any other government deposit insurer, nor are they guaranteed. There can be no assurance that a money market fund will be able to maintain its net asset value per unit at a constant amount or that the full amount of your investment will be returned to you. The values of many mutual funds change frequently. Past performance may not be repeated.',\n\t\t\tema15day: '15-day EMA',\n\t\t\tema50day: '50-day EMA',\n\t\t\tema100day: '100-day EMA',\n\t\t\tema200day: '200-day EMA',\n\t\t\tendDay: 'End day',\n\t\t\tendMonth: 'End month',\n\t\t\tendYear: 'End year',\n\t\t\tenterPurchaseDetails: 'Enter Purchase Details',\n\t\t\tenterPurchaseDetailsSr: 'Enter {symbol} purchase details in a new dialogue',\n\t\t\testimates: 'Estimates',\n\t\t\testimatesDisclaimer: 'CFY = Current Fiscal Year, NFY = Next Fiscal Year',\n\t\t\testimatesStockScreener: 'Estimates',\n\t\t\teditWatchlist: 'Edit Watch List',\n\t\t\tetfsCaption: '{count} ETFs',\n\t\t\tetfCentre: 'ETF Centre',\n\t\t\tetfsAtGlance: 'ETFs at a glance',\n\t\t\tetfsOverviewTodaysMoversTooltip: 'Leveraged ETFs use financial derivatives and debt to amplify the returns of an underlying index on a daily basis. These ETFs should be traded with caution and are intended for advanced traders with an in-depth understanding of the associated risks.',\n\t\t\tequities: 'Equities',\n\t\t\tequity: 'Equity',\n\t\t\tequityFund: 'Equity',\n\t\t\tequityinvestmentinstruments: 'Equity Investment Instruments',\n\t\t\teps: 'EPS',\n\t\t\tepsGrowth: 'EPS Growth',\n\t\t\tepsGrowthCFY: 'EPS growth CFY',\n\t\t\tepsGrowthNFY: 'EPS growth NFY',\n\t\t\tESPODebtGuarantee: 'ESOP Debt Guarantee',\n\t\t\texactPhrase: 'Exact phrase',\n\t\t\texamplePhone: 'Example: 5555551212@domain.com',\n\t\t\texciseTaxPayment: 'Excise Taxes Payments',\n\t\t\texcisTaxReceipts: 'Excise Taxes Receipts',\n\t\t\texceededExpectations: 'Exceeded expectations',\n\t\t\texDivDate: 'Ex Div Date',\n\t\t\texDividendDate: 'Ex-dividend date',\n\t\t\texpirationDate: 'Expiration Date',\n\t\t\texpiration: 'Expiration',\n\t\t\texpired: 'Expired',\n\t\t\texpiry: 'Expiry',\n\t\t\texpiryLabel: 'expiry',\n\t\t\texplorationProduction: 'Exploration & Production',\n\t\t\textraItem: 'Extraordinary Item',\n\t\t\textraordinaryItemun: 'Extraordinary Item',\n\t\t\tfamily: 'Family',\n\t\t\tfax: 'Fax: ',\n\t\t\tfedFundResale: 'Fed. Fund/Resale',\n\t\t\tfedFundSoldSecSoldUnderRepurch: 'Fed Funds Sold/Secs Sold under Repurch Agrmnt',\n\t\t\tfedFundsREPO: 'Fed. Funds/REPOs',\n\t\t\tfeeCommishFromOp: 'Fees & Commish from Operat',\n\t\t\tfeeOtherCustServ: 'Fees for Other Cust Serv',\n\t\t\tFHLB: 'FHLB',\n\t\t\tfiftyTwoWeek: '52 Week',\n\t\t\tfinanceCashFlowItem: 'Financing Cash Flow Items',\n\t\t\tfinancials: 'Financials',\n\t\t\tfinancialsFor: 'Financials for {symbol}',\n\t\t\tfinancialsPeriod: 'Financials period',\n\t\t\tfinancialservices: 'Financial services',\n\t\t\tMSDStockSectorFinancialServices: 'Sector Financial services',\n\t\t\tfinancialStrength: 'Financial strength',\n\t\t\tfinancialsType: 'Financials type',\n\t\t\tfinishedAddingCriteria: 'Finished adding criteria',\n\t\t\tfinishedAddingCriteriaError: 'Select criteria to continue.',\n\t\t\tfilterBy: 'Filter by',\n\t\t\tfilterByClassification: 'Filter by classification',\n\t\t\tfilterByCountry: 'Filter by country',\n\t\t\tfilterByDate: 'Filter by date',\n\t\t\tfilterByEtfType: 'Filter by ETF type',\n\t\t\tfilterByFundFamily: 'Filter by fund family',\n\t\t\tfilterByFundPromoter: 'Filter by fund promoters',\n\t\t\tfilterByMovers: 'Filter by movers',\n\t\t\tfilterByPerformance: 'Filter by performance',\n\t\t\tfilterByPeriod: 'Filter by period',\n\t\t\tfilterByPublication: 'Filter by publication',\n\t\t\tfilterByScreenType: 'Filter by screen type',\n\t\t\tfilterBySector: 'Filter by sector',\n\t\t\tfilterByVolume: 'Filter by volume',\n\t\t\tfilterMoversBy: 'Filter movers by',\n\t\t\tfilterDataTypeBy: 'Filter data type by',\n\t\t\tfinancialsTableDisclaimer: 'In millions of {currency} (except for per share items)',\n\t\t\tfiveYearBond: '5 Year Bond',\n\t\t\tfiveYrAvgPreTaxMargin: '5 yr. avg. pre-tax margin',\n\t\t\tfiveYrAvgOperatingMargin: '5 yr. avg. operating margin',\n\t\t\tfiveYrNetProfitMargin: '5 yr. avg. net profit margin',\n\t\t\tfiveYrAvgNetProfitMarginGrowth: '5 yr. avg. net profit margin growth',\n\t\t\tfiveYrAvgEffectiveTaxRate: '5 yr. avg. effective tax rate',\n\t\t\tfiveYrYieldGrowthRate: '5 yr. yield growth rate',\n\t\t\tfiveYrYieldAvg: '5 yr. yield average',\n\t\t\tfixedincome: 'Fixed Income',\n\t\t\tfixedIncome: 'Fixed income',\n\t\t\tfixedIncomeStylebox: 'Fixed income stylebox',\n\t\t\tfixedIncomeStyleboxDescription: 'Morningstar\\'s proprietary measure for fixed income funds, based on interest rate sensitivity and credit quality. The stylebox is a nine-square grid that measures credit quality along the vertical axis and interest rate sensitivity along the horizontal axis.',\n\t\t\tfixedIncomeStyleboxCol1: 'L',\n\t\t\tfixedIncomeStyleboxCol2: 'M',\n\t\t\tfixedIncomeStyleboxCol3: 'E',\n\t\t\tfixedIncomeStyleboxRow1: 'H',\n\t\t\tfixedIncomeStyleboxRow2: 'M',\n\t\t\tfixedIncomeStyleboxRow3: 'L',\n\t\t\tfixedlinetelecommunications: 'Fixed Line Telecommunications',\n\t\t\tfloat: 'Float',\n\t\t\t'forestry&paper': 'Forestry & Paper',\n\t\t\t'food&drugretailers': 'Food & Drug Retailers',\n\t\t\tfoodproducers: 'Food Producers',\n\t\t\tforeclosedRealEstate: 'Foreclosed Real Estate',\n\t\t\tforeignbond: 'Foreign Bonds',\n\t\t\tforexAdjustment: 'Foreign Currency Adjustment',\n\t\t\tforexAdjustmentNonOp: 'Foreign Currency Adjustment',\n\t\t\tforexEffects: 'Foreign Exchange Effects',\n\t\t\tForexGains: 'Foreign Currency Gains',\n\t\t\tforexLoss: 'Foreign Currency Losses',\n\t\t\tformat: 'Format',\n\t\t\tfsiD: 'Deficient: Issuer Failed to Meet NASDAQ Continued Listing Requirements',\n\t\t\tfsiE: 'Delinquent: Issuer Missed Regulatory Filing Deadline',\n\t\t\tfsiG: 'Deficient and Bankrupt',\n\t\t\tfsiH: 'Deficient and Delinquent',\n\t\t\tfsiJ: 'Delinquent and Bankrupt',\n\t\t\tfsiK: 'Deficient, Delinquent, and Bankrupt',\n\t\t\tfsiN: 'Normal (Default)\" Issue is not currently deficient, delinquent, or bankrupt.',\n\t\t\tfsiQ: 'Bankrupt: Issuer Has Filed for Bankruptcy',\n\t\t\tfuelExpense: 'Fuel Expense',\n\t\t\tfuelPurchasedResale: 'Fuel Purchased for Resale',\n\t\t\tfundamentals: 'Fundamentals',\n\t\t\tfundamentalsStockScreener: 'Fundamentals',\n\t\t\tfundCategory: 'Fund category',\n\t\t\tfundCategoryDescription: 'Fund category is a detailed industry standard grouping of ETFs according to similar style, strategies, asset class or other criteria.',\n\t\t\tfundCentre: 'Fund Centre',\n\t\t\tfundCodes: 'Fund codes',\n\t\t\tfundDetails: '{symbol} details',\n\t\t\tfundDetail: 'Fund detail',\n\t\t\tfundFamily: 'Fund family',\n\t\t\tfundFamilyDescription: 'A group of ETFs offered under a fund company or sponsor.',\n\t\t\tfundName: 'Fund name',\n\t\t\tfundNameLower: 'Fund name',\n\t\t\tfundOverview: 'Fund Overview',\n\t\t\tfundObjective: 'Fund objective',\n\t\t\tfunds: 'Funds',\n\t\t\tfundsFromOpREIT: 'Funds From Operats - REIT',\n\t\t\tfundSnapshot: '{name} snapshot',\n\t\t\tfundStructure: 'Fund structure',\n\t\t\tfundStructureDescription: `An ETF can be classified as standard, leveraged or inverse.\n\t\t\t\\nLeveraged ETFs use financial derivatives to amplify the returns of an underlying index or basket of securities on a daily basis. These ETFs should be traded with caution and are intended for advanced traders with an in-depth understanding of the associated risks.\n\t\t\t\\nInverse ETFs are designed to benefit from price movements opposite to that of the underlying index or basket of securities.`,\n\t\t\tfundType: 'Type',\n\t\t\tfundTypeHeader: 'Fund type',\n\t\t\tfundValue: 'Fund value',\n\t\t\tfundMovement: 'Fund movement',\n\t\t\tfedFundsPurch: 'Fed Funds Purch.',\n\t\t\tFHLBAdvances: 'FHLB Advances',\n\t\t\tfhlbStock: 'FHLB Stock',\n\t\t\tfuelInvent: 'Fuel - Inventory',\n\t\t\tgetAnalystRatings: 'Get analyst ratings',\n\t\t\tglobalExposure: 'Global exposure',\n\t\t\tglobalExposureDisclaimer: 'Country breakdown is calculated using only the portfolio’s long stock and bond holdings, by country of domicile.',\n\t\t\tglobalExposureError: 'Global holdings are unavailable',\n\t\t\tglobalExposureErrorPortfolio: 'Global holdings are unavailable for this ETF',\n\t\t\tgreatestPremium: 'Greatest premium',\n\t\t\tgreatestDiscount: 'Greatest discount',\n\t\t\tgamma: 'Gamma',\n\t\t\tgain: 'Gain',\n\t\t\tgainSaleofAssets: 'Gain (Loss) on Sale of Assets',\n\t\t\tgainSr: 'gain',\n\t\t\tgainTotalSr: '{gain} gain',\n\t\t\t'gas,water&multiutilities': 'Gas, Water & Multiutilities',\n\t\t\tgasOps: 'Gas Operations',\n\t\t\tgeneralindustrials: 'General Industrials',\n\t\t\tgeneralretailers: 'General Retailers',\n\t\t\tgenPartnerDistro: 'Gen Partner\\'s Distributions',\n\t\t\tgetLatestCommentary: 'Get the latest ETF commentary from Morningstar analysts. Learn more about ETFs with Morningstar’s educational content. ',\n\t\t\tgold: 'Gold',\n\t\t\tgoldSr: 'Gold chart',\n\t\t\tgrossDividendCommStock: 'Gross Dividend - Common Stock',\n\t\t\tgrossPremWritten: 'Gross Premiums Written',\n\t\t\tgrossRev: 'Gross Revenue',\n\t\t\tgroupBy: 'Group By',\n\t\t\tgrowth5Year: 'Growth 5 Year',\n\t\t\tgrowth10K: 'Growth of $10,000',\n\t\t\tgrowth10KText1: '$10,000 invest on ',\n\t\t\tgrowth10KText2: ' would now be worth ',\n\t\t\tgrowthNfy: 'Growth NFY',\n\t\t\tgrossMargin: 'Gross margin',\n\t\t\tgasStorageInvent: 'Gas in Storage - Inventory',\n\t\t\tgeneralPartner: 'General Partner',\n\t\t\tgoodwillGross: 'Goodwill, Gross',\n\t\t\tgoodwillNet: 'Goodwill, Net',\n\t\t\theadlinesOnly: 'Headlines only',\n\t\t\theadlinesAndDocumentBody: 'Headlines & document body',\n\t\t\thealthCare: 'Health care',\n\t\t\thealthcare: 'Healthcare',\n\t\t\tMSDStockSectorHealthcare: 'Health care',\n\t\t\t'healthcareequipment&services': 'Health Care Equipment & Services',\n\t\t\thigh: 'High',\n\t\t\thighPriceContext: 'High',\n\t\t\thighLow: 'High/Low',\n\t\t\thighLowLabel: 'High/Low',\n\t\t\thide: 'Hide',\n\t\t\thideCallsSrOnly: 'Hide calls for {symbol}',\n\t\t\thidePutsSrOnly: 'Hide puts for {symbol}',\n\t\t\thideCriteriaMatches: 'Hide criteria matches',\n\t\t\tholdings: 'Holdings',\n\t\t\t'householdgoods&homeconstruction': 'Household Goods & Home Construction',\n\t\t\tetfHoldingsContent: 'Identify ETFs with top holdings exposure to the selected stocks',\n\t\t\tetfHoldingDisclaimer: 'Information is based on last disclosure by the Fund to Morningstar.',\n\t\t\tholdingsMentioned: 'Holdings mentioned',\n\t\t\thyphen: '-',\n\t\t\thighEstimate: 'High estimates',\n\t\t\timpAssetsHeldSale: 'Impair-Assets Held for Sale',\n\t\t\timpAssetsHeldUse: 'Impair-Assets Held for Use',\n\t\t\timpliedVolatility: 'Implied volitility',\n\t\t\tinactive: 'Inactive',\n\t\t\tinANewDialogue: '{name} in a new dialogue',\n\t\t\tinANewWindow: 'PDF in a new window',\n\t\t\tindustrialtransportation: 'Industrial Transportation',\n\t\t\tinception: 'Inception',\n\t\t\tinceptionDate: 'Inception date',\n\t\t\tincludeLeveraged: 'Include leveraged',\n\t\t\tinceptionDateDescription: 'The date on which an ETF first began to offer shares.',\n\t\t\tincomeAvailCommonExclExtraItems: 'Income Available to Common Excl. Extra. Items',\n\t\t\tincomeAvailCommonInclExtraItems: 'Income Available to Common Incl. Extra. Items',\n\t\t\tincomeHandling: 'Income handling',\n\t\t\tincTaxExImpactofSpItem: 'Inc Tax Ex Impact of Sp Items',\n\t\t\tindicationRatesNotActualRates: 'Indication rates, not actual rates',\n\t\t\tindustrialengineering: 'Industrial Engineering',\n\t\t\t'industrialmetals&mining': 'Industrial Metals & Mining',\n\t\t\tindustrials: 'Industrials',\n\t\t\tMSDStockSectorIndustrials: 'Sector Industrials',\n\t\t\tindustry: 'Industry',\n\t\t\tindustryDataNotAvailable: 'Industry data not available',\n\t\t\tinformationTechnology: 'Information technology',\n\t\t\tinitialCharge: 'Initial charge',\n\t\t\tinsights: 'Insights',\n\t\t\tinsurCommishFeePrem: 'Insur Commish Fees& Premium',\n\t\t\tint: 'Int',\n\t\t\tintangibleNet: 'Intangible, Net',\n\t\t\tinterAdjPrimaryEPS: 'Inter Adjust - Primary EPS',\n\t\t\tinterCapitalOp: 'Inter Capitalzd, Operating',\n\t\t\tinterCapNonOp: 'Inter Capital, Non-Operat',\n\t\t\tinterDivsInvestSecurs: 'Inter & Divs/ Invest Securs',\n\t\t\tinteresonDeposits: 'Interest on Deposits',\n\t\t\tinterest: 'Interest',\n\t\t\tinterestCapSuppl: 'Interest Capitalized, Suppl',\n\t\t\tinterestCoverage: 'Interest coverage',\n\t\t\tinterestExpenseSuppl: 'Interest Expense, Suppl',\n\t\t\tinterestFeeLoans: 'Interest & Fees on Loans',\n\t\t\tinterestIncomeBank: 'Interest Income, Bank',\n\t\t\tinterestIncomeNonBank: 'Interest Income, Non-Bank',\n\t\t\tinterestIncomeNetNonOp: 'Interest Income (Exp), Net Non-Operating',\n\t\t\tinterestIncomeNonOp: 'Interest Income, Non-Operating',\n\t\t\tinterestIncomeOp: 'Interest Income, Operating',\n\t\t\tinterestInvestIncomeNonOp: 'Interest/Investment Income, Non-Operating',\n\t\t\tinterestOnDeposits: 'Interest on Deposit',\n\t\t\tinterExpenseNetNonOp: 'Inter Expse,Net Non-Operat',\n\t\t\tinterExpenseNetOp: 'Inter Expense, Net Operatng',\n\t\t\tinterExpenseNonOp: 'Inter Expse, Non-Operating',\n\t\t\tinterExpenseOp: 'Inter Expense, Operating',\n\t\t\tinterInvestOp: 'Inter/Invest Inc, Operating',\n\t\t\tinternationalEquity: 'International equity',\n\t\t\tinternationalEquityAbbrv: 'Int\\'l equity',\n\t\t\tinternationalEquityETFs: 'International Equity ETFs',\n\t\t\tinternationalEquityETFs_desc: 'ETFs that invest in International equity holdings.',\n\t\t\tinterOnOtherBorrow: 'Inter on Other Borrowings',\n\t\t\tinTheMoney: 'In the money',\n\t\t\tindexName: 'Index name',\n\t\t\tindexMovement: 'Indices movement',\n\t\t\tindicatorInput: 'Indicator input',\n\t\t\tinvalidCharacterError: 'The information you have entered can\\'t be processed as it contains unacceptable symbols or words. Please re-enter your information.',\n\t\t\tinventories: 'Inventories',\n\t\t\tinverseEtf: 'Inverse ETF',\n\t\t\tinverseLeveragedETFs: 'Inverse/Leveraged ETFs',\n\t\t\tinverseLeveragedETFs_desc: 'ETFs that use financial derivatives to take an inverse position in the underlying index/security (Inverse ETFs) or to amplify the returns of an underlying index/security (Leveraged ETFs).',\n\t\t\tinverseDisclaimer: 'Inverse ETfs are designed to benefit from price movements opposite to that of the underlying index or basket of securities.',\n\t\t\tinvestIncomeOp: 'Invest Income, Operating',\n\t\t\tinvestIncomeNonOp: 'Investment Income, Non-Operating',\n\t\t\tinvestmentType: 'Investment type',\n\t\t\tinvestmentGoal: 'Investment Goal: ',\n\t\t\tinvestmentNet: 'Investment, Net',\n\t\t\tinvestmentValuation: 'Investment valuation',\n\t\t\tinvestmtSecurityLoss: 'Investmt Securities Losses',\n\t\t\tinvestSecGains: 'Invest Securities Gains',\n\t\t\tissRetirmntDebtNet: 'Iss (Retirmnt) of Debt, Net',\n\t\t\tissRetirmntStockNet: 'Iss (Retirmnt) of Stock,Net',\n\t\t\tincomeTaxPayable: 'Income Taxes Payable',\n\t\t\tinsruanceReserve: 'Insurance Reserves',\n\t\t\tinsuranceReceivables: 'Insurance Receivables',\n\t\t\tintangibleGross: 'Intangibles, Gross',\n\t\t\tinterestBearingDept: 'Interest Bearing Deposits',\n\t\t\tinterestEarnDeposits: 'Interest-Earning Deposits',\n\t\t\tinterestRateSensitivity: 'Interest rate sensitivity',\n\t\t\tinterestRcvbl: 'Interest Receivable',\n\t\t\tinventFinishedGoods: 'Invent. - Finished Goods',\n\t\t\tinventOther: 'Inventories - Other',\n\t\t\tinventRawMaterial: 'Invent. - Raw Materials',\n\t\t\tinventWIP: 'Invent. - Work In Progress',\n\t\t\tkeyCanadianRates: 'Key Canadian Rates',\n\t\t\tkeyUsRates: 'Key US Rates',\n\t\t\tkeyword: 'Keyword',\n\t\t\tkeywords: 'Keywords',\n\t\t\tkeywordResultsBy: 'Keyword results by',\n\t\t\tlaborRelatedExpense: 'Labor & Related Expenses',\n\t\t\tlastTrade: 'Last trade',\n\t\t\tlastTradeHeader: 'Last',\n\t\t\tlastChange: 'Last Change',\n\t\t\tlastUpdatedToday: 'Last updated today',\n\t\t\tlastUpdated: 'Last updated',\n\t\t\tlast: 'Last',\n\t\t\tlastLabel: 'Last',\n\t\t\tlastClose: 'Last close',\n\t\t\tlastBidLots: 'Last Bid / Lots',\n\t\t\tlastAskLots: 'Last Ask / Lots',\n\t\t\tlastPrice: 'Last price',\n\t\t\tlastWeek: 'Last week',\n\t\t\tlast2Weeks: 'Last 2 weeks',\n\t\t\tlast4Weeks: 'Last 4 weeks',\n\t\t\tlatestEconomicReports: 'Latest CIBC economics reports',\n\t\t\tlatestEquityReports: 'Latest equity reports',\n\t\t\tlatestEtfCommentary: 'Latest ETF commentary',\n\t\t\tlatestPdfReports: 'Latest PDF Reports',\n\t\t\tlatestDividend: 'Latest dividend',\n\t\t\tlatestPaymentDate: 'Latest payment date',\n\t\t\tlatestExDistributionDate: 'Latest ex-distribution date',\n\t\t\tlatestDistributionAmount: 'Latest distribution amount',\n\t\t\tlegalStructure: 'Legal structure',\n\t\t\tleisuregoods: 'Leisure Goods',\n\t\t\tless: 'Less',\n\t\t\tleveragedEtf: 'Leveraged ETF',\n\t\t\tleveragedDisclaimer: 'Leveraged ETFs use financial derivatives and debt to amplify the returns of an underlying index on a daily basis. These ETFS should be traded with caution and are intended for advanced traders with an in-depth understanding of the associated risks. For more information on Leveraged ETFS, please read Investing in Leveraged ETFs in the Resources tab. Note: not all ETF types include leveraged funds.',\n\t\t\tlifeinsurance: 'Life Insurance',\n\t\t\tlistBy: 'List by',\n\t\t\tlitigation: 'Litigation',\n\t\t\tlitigationExpense: 'Litigation Expense',\n\t\t\tload: 'Load',\n\t\t\tloadLabelFr: '',\n\t\t\tloanLossProvision: 'Loan Loss Provision',\n\t\t\tloanOriginationInvest: 'Loans Origination - Invest',\n\t\t\tloans: 'Loans',\n\t\t\tlongDurationHighQuality: 'Long Duration/High Quality',\n\t\t\tlongDurationMediumQuality: 'Long Duration/Medium Quality',\n\t\t\tlongDurationLowQuality: 'Long Duration/Low Quality',\n\t\t\tlongTermDebtIssued: 'Long Term Debt Issued',\n\t\t\tlongTermDebtNet: 'Long Term Debt, Net',\n\t\t\tlongTermDebtReduce: 'Long Term Debt Reduction',\n\t\t\tloss: 'Loss',\n\t\t\tlossBeniesAdjust: 'Losses, Benies & Adjusts',\n\t\t\tlossBeniesAdjustTotal: 'Losses, Benies & Adjmts, Total',\n\t\t\tlossSaleAsts: 'Loss(Gain)/Sale Asts (Oper)',\n\t\t\tlossSr: 'Perte de',\n\t\t\tlossTotalSr: '{loss} loss',\n\t\t\tlots: 'Lots',\n\t\t\tlowHigh: 'Low / high',\n\t\t\tlow: 'Low',\n\t\t\tlowPriceContext: 'Low',\n\t\t\tlowAndHigh: 'Low and high',\n\t\t\tlowEstimate: 'Low Estimates',\n\t\t\tlongStrategy: 'Long strategy',\n\t\t\tlongStrategyChart: 'Long Strategy Chart',\n\t\t\tlongPosition: 'Long Position %',\n\t\t\tlargeCapValue: 'Large Cap Value',\n\t\t\tlargeCapBlend: 'Large Cap Blend',\n\t\t\tlargeCapGrowth: 'Large Cap Growth',\n\t\t\tlongTermDebtEquity: 'Long term debt/equity',\n\t\t\tlipperLeaders: 'Lipper Leaders',\n\t\t\tlandImprovements: 'Land/Improvements',\n\t\t\tleases: 'Leases',\n\t\t\tlifoReserve: 'LIFO Reserve',\n\t\t\tlimitedPartner: 'Limited Partner',\n\t\t\tloanLossAllowances: 'Loan Loss Allowances',\n\t\t\tloansHeldSale: 'Loans Held for Sale',\n\t\t\tlongTermDebt: 'Long Term Debt',\n\t\t\tlongTermInvestment: 'Long Term Investments',\n\t\t\tLTInvntOther: 'LT Investments - Other',\n\t\t\tLTInvtAffiliateComp: 'LT Invt. - Affiliate Comp.',\n\t\t\tmachineryEquip: 'Machinery/Equipment',\n\t\t\tmaCrossover15_50: 'MA Crossover (15-day SMA/50-day SMA)',\n\t\t\tminPensionLiabiliAdj: 'Min. Pension Lblty Adj.',\n\t\t\tmidCapValue: 'Mid Cap Value',\n\t\t\tmidCapBlend: 'Mid Cap Blend',\n\t\t\tmidCapGrowth: 'Mid Cap Growth',\n\t\t\tmakeDefaultWatchlist: 'Set as my default list',\n\t\t\tmanagementEffectiveness: 'Management effectiveness',\n\t\t\tmanagerDeclared: 'Manager’s declared',\n\t\t\tmanager: 'Manager',\n\t\t\tmarket: 'Market',\n\t\t\tmarketCentreDisclaimer: 'Some information on our site (e.g., Quotes and Research) is provided by our vendors and is not available in French.',\n\t\t\tmarketValue: 'Market Value',\n\t\t\tmarketsOverview: 'Markets overview',\n\t\t\tmarketOverview: 'Market overview',\n\t\t\tmarketsOverviewBanner: 'Markets overview banner',\n\t\t\tmarkets: 'Markets',\n\t\t\t'Markets at a glance': 'Markets at a glance',\n\t\t\t'Market movers': 'Market movers',\n\t\t\tmarketLabel: 'Market',\n\t\t\tmarketClose: 'Market Close on',\n\t\t\tmarketCentre: 'Market Centre',\n\t\t\tmarketMovers: 'Market movers',\n\t\t\tmatches: 'Matches',\n\t\t\tmixedEquity: 'Mixed equity',\n\t\t\tmaterials: 'Materials',\n\t\t\tmoreReports: 'More reports',\n\t\t\tmarketCap: 'Market capitalization ',\n\t\t\tmarketCapShort: 'Market cap',\n\t\t\tmarketCapShort2: 'Market cap',\n\t\t\tmarketMoversHeading: '{type} for the {set}',\n\t\t\tmarketDataDelayedBy15: 'Market data delayed by at least 15 minutes',\n\t\t\tmarketDataIsRealTime: 'Market data is real-time, except for OTC securities',\n\t\t\tmarketsOverviewDelayedBy15: 'Delayed by at least 15 min',\n\t\t\tmaxHoldingsReached: 'This watch list has reached its symbol limit.',\n\t\t\tmaxQLHoldingsReached: 'This list has reached its symbol limit.',\n\t\t\tmedia: 'Media',\n\t\t\tMER: 'MER',\n\t\t\tMERDescription: 'A management expense ratio (MER) is the expense to operate an investment fund, which is expressed as a percentage of average annual fund assets.',\n\t\t\tmediumDurationHighQuality: 'Medium Duration/High Quality',\n\t\t\tmediumDurationMediumQuality: 'Medium Duration/Medium Quality',\n\t\t\tmediumDurationLowQuality: 'Medium Duration/Low Quality',\n\t\t\tmillion: 'million',\n\t\t\tminimumAdditionalInvestment: 'Minimum additional investment',\n\t\t\tminimumInitialInvestment: 'Minimum initial investment',\n\t\t\tminimumInvestmentsTooltip: 'CIBC minimum investments may be higher',\n\t\t\tmining: 'Mining',\n\t\t\tminorityInterest: 'Minority Interest',\n\t\t\tminPensionLiabAdj: 'Min Pension Liabil Adjust',\n\t\t\tminPensionLiabGain: 'Min Pension Liability Gain',\n\t\t\tminPensionLiabilLoss: 'Min Pension Liability Loss',\n\t\t\tmiscEarnAdjs: 'Misc Earnings Adjustment',\n\t\t\tmissedExpectations: 'Missed expectations',\n\t\t\tmobileNumber: 'Mobile number',\n\t\t\tmobiletelecommunications: 'Mobile Telecommunications',\n\t\t\tmonth: 'Month',\n\t\t\tmonthly: 'Monthly',\n\t\t\tmonthlyOption: 'Monthly',\n\t\t\tmonthlyFxOutlook: 'Monthly FX outlook',\n\t\t\tmonthlyFxOutlookDescription: 'A monthly publication that provides both short and long-term forecasts on some key currencies. Also listed are upcoming events that may impact foreign exchange rates.',\n\t\t\tmoreNews: 'More news',\n\t\t\tmoreMarketMovers: 'More market movers',\n\t\t\tmoversMarketFilter: 'Movers market filter',\n\t\t\tmore: 'More',\n\t\t\tmorningstarAnalyst: 'Morningstar Analyst',\n\t\t\tmorningstarEquityStylebox: 'Morningstar equity stylebox',\n\t\t\tmorningstarEquityStyleboxSr: 'Select Morningstar equity criteria from the accompanying style boxes.',\n\t\t\tmorningstarEquityStyleboxCol1: 'V',\n\t\t\tmorningstarEquityStyleboxCol2: 'B',\n\t\t\tmorningstarEquityStyleboxCol3: 'G',\n\t\t\tmorningstarEquityStyleboxRow1: 'L',\n\t\t\tmorningstarEquityStyleboxRow2: 'M',\n\t\t\tmorningstarEquityStyleboxRow3: 'S',\n\t\t\tmorningstarFixedIncomeStylebox: 'Morningstar fixed income stylebox',\n\t\t\tmorningstarFixedIncomeStyleboxSr: 'Select Morningstar fixed income criteria from the accompanying style boxes.',\n\t\t\tmorningstarOverallRisk: 'Morningstar overall risk',\n\t\t\tmorningstarOverallReturn: 'Morningstar overall return',\n\t\t\tmorningstar3YearRisk: 'Morningstar 3 year risk',\n\t\t\tmorningstar3YearReturn: 'Morningstar 3 year return',\n\t\t\tmorningstar3YearRating: 'Morningstar 3 year rating',\n\t\t\tmorningstar5YearRisk: 'Morningstar 5 year risk',\n\t\t\tmorningstar5YearReturn: 'Morningstar 5 year return',\n\t\t\tmorningstar5YearRating: 'Morningstar 5 year rating',\n\t\t\tmorningstar10YearRisk: 'Morningstar 10 year risk',\n\t\t\tmorningstar10YearReturn: 'Morningstar 10 year return',\n\t\t\tmorningstar10YearRating: 'Morningstar 10 year rating',\n\t\t\tmorningstarQuant: 'Morningstar Quant',\n\t\t\tmorningNewsCall: 'Canadian Morning News Call',\n\t\t\tmorningNewsCallWC: 'Canadian morning news call',\n\t\t\tusMorningNewsCall: 'US Morning News Call',\n\t\t\tusMorningNewsCallWC: 'US morning news call',\n\t\t\tinsightDescription: 'Stay on top of the latest news and insights from Reuters and CIBC Capital Markets.',\n\t\t\tmorningstarReturn: 'Morningstar return',\n\t\t\tmorningstarOverallRating: 'Morningstar overall rating',\n\t\t\tmorningstarReturnRating: 'Morningstar return rating',\n\t\t\tmorningstarRisk: 'Morningstar risk rating',\n\t\t\tmorningstarStylebox: 'Morningstar Style Box',\n\t\t\tmorningstarBenchmark: 'Morningstar primary benchmark',\n\t\t\tmorningstarStylbox: 'Morningstar stylebox',\n\t\t\tmorningstarRating: 'Morningstar rating',\n\t\t\tmorningstarRatingButtonSr: 'Expand for by-year range Morningstar ratings',\n\t\t\tmorningstarRatings: 'Morningstar ratings',\n\t\t\tmorningstarRiskRating: 'Morningstar risk',\n\t\t\tmorningstarReports: 'Morningstar reports',\n\t\t\tmorningstarAnalystCommentary: 'Morningstar analyst commentary',\n\t\t\tmorningstarAnalystReport: 'Morningstar analyst report',\n\t\t\tmorningstarTooltip: 'Morningstar’s proprietary rating system ranks ETFs according to their risk-adjusted performance. The overall rating is a weighted average of the ETFs three-, five- and ten-year rating. ETFs are rated on a star system. 5 stars is the highest ranking; 1 star is the lowest.',\n\t\t\tmorningstarStockTooltip: 'The Morningstar rating for stocks is calculated by comparing a stock\\'s current market price with Morningstar\\'s estimate of the stock\\'s fair value. The further the market price is below the fair value, the higher the star rating. Stocks trading at a large discount fair value estimate will receive higher (4 or 5) star ratings, and stocks trading at large premiums to their fair value estimates will receive lower (1 or 2) star ratings. ',\n\t\t\tmorningstarRiskTooltip: 'Morningstar\\'s assessment of variations in the ETF\\'s monthly returns in comparison to similar funds. Overall risk rating is a weighted average of the ETF\\'s three-, five- and ten-year risk rating.',\n\t\t\tmorningstarDisclaimerETF: 'Powered By Morningstar: © Morningstar Research Inc. All Rights Reserved. The information contained herein: (1) is proprietary to Morningstar and/or its content providers; (2) may not be copied or distributed; (3) is not warranted to be accurate, complete or timely. Neither Morningstar nor its content providers are responsible for any damages or losses arising from any use of this information. Past performance is no guarantee of future results.',\n\t\t\tmostActive: 'Most active',\n\t\t\tmostRecentQtr: 'Most recent quarter (MRQ)',\n\t\t\tmovingAverageCrossover: 'Moving average crossover',\n\t\t\tmovingAvgXOVer: 'Moving avg x-over',\n\t\t\tmovingAverageCrossoverDescription: `A bullish moving average crossover occurs when a faster moving average crosses above the slower moving average (i.e. 15-day simple moving average crosses above 50-day simple moving average).\n\t\t\t\\nA bearish moving average cross occurs when a faster moving average crosses below the slower moving average (i.e. 15-day simple moving average crosses below 50-day simple moving average).`,\n\t\t\tmrq: 'MRQ',\n\t\t\tmoneyMarket: 'Money market',\n\t\t\tmrq1YrAgo: 'MRQ vs. same 1 year ago',\n\t\t\tmunicipalBond: 'Municipal bond',\n\t\t\tmunicipalbond: 'Municipal bond',\n\t\t\tmutualFunds: 'Mutual Funds',\n\t\t\tmutualFundsLower: 'Mutual funds',\n\t\t\trefinitivLipperDisclaimerTitle: 'Refinitiv Lipper Leaders',\n\t\t\trefinitivLipperDisclaimerText: 'Ratings for Total Return reflect fund\\'s historical total return performance relative to peers. Ratings for Consistent Return reflect funds\\' historical risk-adjusted returns relative to peers. Lipper ratings for Preservation are relative, rather than absolute. Lipper Leader ratings Do not take into account the effects of sales charges. Ratings are based on an equal-weighted average of percentile ranks for each measure over 3-, 5-, and 10-year periods (if applicable).',\n\t\t\tRUTRBCIndustry: 'Industry',\n\t\t\truMktCapUS: 'Market cap ($ Mill)',\n\t\t\truPriceLast: 'Price ($)',\n\t\t\truPriceChange: 'Price change (%)',\n\t\t\tRUTRBCSector: 'Sector',\n\t\t\truVol10dAvg: 'Volume (mill)',\n\t\t\tmutualFundsLabel: 'Mutual Funds',\n\t\t\tmutualFundCaption: '{count} Mutual Funds',\n\t\t\tmyAlerts: 'My Alerts',\n\t\t\tmyWatchLists: 'My Watch Lists',\n\t\t\tmyWatchListsNewDialog: 'My watch lists in a new dialogue',\n\t\t\tmyQuoteLists: 'My Quote Lists',\n\t\t\tmyCriteria: 'My criteria',\n\t\t\tmySearches: 'My searches',\n\t\t\tmySearchesPlaceholder: 'The Analyst Report custom search section isn’t quite done, but will be soon. We’ll have a new and improved format, where you’ll find all your saved custom search information.',\n\t\t\tnStars: '{stars} stars',\n\t\t\tNA: 'Not applicable',\n\t\t\tname: 'Name',\n\t\t\tnasdaqChartHidden: 'NASDAQ chart',\n\t\t\tnav: 'NAV',\n\t\t\tNAVShare: 'NAV/Share',\n\t\t\tnearTheMoney: 'Near the money',\n\t\t\tnetAssetValue: 'Net asset value',\n\t\t\tnetCashBeginBalRsrvFutUse: 'NetCash-BeginBal/RsvdforFutUse',\n\t\t\tnetCashEndBalRsrvFutUse: 'NetCash-EndBal/RsrvforFutUse',\n\t\t\tnetChangeCash: 'Net Change in Cash',\n\t\t\tnetIncome: 'Net Income',\n\t\t\tnetIncomeAfterTax: 'Net Income After Taxes',\n\t\t\tnetIncomeBeforeExtraItems: 'Net Income Before Extra. Items',\n\t\t\tnetIncomeBeforeTax: 'Net Income Before Taxes',\n\t\t\tnetInterestInAfterLoanLoss: 'NetInterIn after Loan Loss Provision',\n\t\t\tnetInterestIncome: 'Net Interest Income',\n\t\t\tnetInvestmentIncome: 'Net Investment Income',\n\t\t\tnetPercentAllocation: 'Net percent allocation',\n\t\t\tnetPercentOfHoldings: 'Net percent of holdings',\n\t\t\tnetPremEarned: 'Net Premiums Earned',\n\t\t\tnetSales: 'Net Sales',\n\t\t\tnewWatchlist: 'New watch list',\n\t\t\tnew: 'New',\n\t\t\tnews: 'News',\n\t\t\tNews: 'News',\n\t\t\tnewAboutThisEtf: 'News about this ETF',\n\t\t\tnewsHeadlines: 'News headlines',\n\t\t\tnewsTeaserHeadline: 'Brief-{headline}',\n\t\t\tnewWatchlistName: 'Watch List {name}',\n\t\t\tnextArticles: 'Update preceding results with next page',\n\t\t\tno: 'No',\n\t\t\tnoData: 'No Data',\n\t\t\tnoDataAvailable: 'No data available',\n\t\t\tnoDistributionsInformation: 'Distribution information is unavailable for this ETF.',\n\t\t\tnoETFHoldingsNews: 'There are holdings news reports available for this ETF.',\n\t\t\tnoMutualFundsAreInThisQuotelist: 'No Mutual Funds are in this Quote List.',\n\t\t\tnonCashItems: 'Non-Cash Items',\n\t\t\tnonclassifiedequity: 'Non classified equity',\n\t\t\tnoNewsAvailable: 'No news available',\n\t\t\tnoneDeclared: 'None declared',\n\t\t\tnonequityinvestmentinstruments: 'Nonequity Investment Instruments',\n\t\t\tnonInterestExpenseBank: 'Non-Interest Expense, Bank',\n\t\t\tnonInterestIncomeBank: 'Non-Interest Income, Bank',\n\t\t\tnonlifeinsurance: 'Nonlife Insurance',\n\t\t\tnoOptionsAreInThisQuotelist: 'No options are in this Quote List.',\n\t\t\tnoRecentSymbols: 'No Recent Symbols',\n\t\t\tnoReportsAvailable: 'There are no reports available.',\n\t\t\tnoReportsAvailableForThisEtf: 'There is no Morningstar analyst report for this ETF.',\n\t\t\tnormalIIncAvailtoCommon: 'Normalized Inc Avail to Common',\n\t\t\tnormalIncomeAfterTax: 'Normalized Income After Tax',\n\t\t\tnormalizedIncomeBeforeTax: 'Normalized Income Before Taxes',\n\t\t\tnorthAmericanMarkets: 'North American markets',\n\t\t\tnoSavedScreens: 'You do not have any saved screens.',\n\t\t\tnoSymbolsInWatchlist: 'You have no symbols in {name}',\n\t\t\tnoSymbolsAreInThisQuotelist: 'No symbols are in this Quote List.',\n\t\t\tnoSecuritiesAreInThisQuoteList: 'No securities are in this Quote List.',\n\t\t\tnoSymbolsAreInThisWatchlist: 'No symbols are in this Watch List.',\n\t\t\tnoTopHoldings: 'No top holdings for this fund',\n\t\t\tnoTopSectors: 'No top sectors for this fund',\n\t\t\tnoWatchLists: 'No Watch Lists',\n\t\t\tnoWatchListsLong: 'It looks like you have no watchlists created yet.',\n\t\t\tnoWatchListsLongLink: 'Would you like to create a watchlist?',\n\t\t\tnumberOf: 'Number of',\n\t\t\tnumberOfShares: 'Number of Shares',\n\t\t\tnumberOfResults: 'Number of results',\n\t\t\tnumberOfUnits: 'Number of Units',\n\t\t\tnumberOfContracts: 'Number of Contracts',\n\t\t\tnumberOfDaysWithinNav: 'Number of days within +/- 0.5% of NAV',\n\t\t\tnumberOfDaysAtPremium: 'Number of days at premium',\n\t\t\tnumberOfDaysAtNav: 'Number of days at NAV',\n\t\t\tnumberOfDaysAtDiscount: 'Number of days at discount',\n\t\t\tnumberOfFundsInCategory: 'Number of funds in category',\n\t\t\tnumberOfHoldings: 'Number of holdings',\n\t\t\tnumOfAnalysts: 'Number of analysts',\n\t\t\tnatResources: 'Natural Resources',\n\t\t\tnetLoans: 'Net Loans',\n\t\t\tnonInterestBearingDept: 'Non-Interest Bearing Dep.',\n\t\t\tnoteRcvbleLongTerm: 'Note Rcvble - Long Term',\n\t\t\tnotesPayableSTDebt: 'Notes Payable/ST Debt',\n\t\t\tnotesRcvbleShortTerm: 'Notes Recvble - Short Term',\n\t\t\toff52WeekHigh: '{symbol} is {diff52Week} off its 52-week high of {high} on {highDate}',\n\t\t\toff52WeekHighSr: '{symbol} is {direction} {diff52Week} off its 52-week high of {high} on {highDate}',\n\t\t\tofficerNameTitle: 'Officer name/profile',\n\t\t\tok: 'OK',\n\t\t\tokSr: 'Okay to delete and close dialogue',\n\t\t\tokSr2: 'Okay and close dialogue',\n\t\t\tof: 'of',\n\t\t\toil: 'Oil',\n\t\t\t'oil&gasproducers': 'Oil & Gas Producers',\n\t\t\t'oilequipment,services&distribution': 'Oil Equipment, Services & Distribution',\n\t\t\toilSr: 'Oil Chart',\n\t\t\t'oil&gas': 'Oil & Gas',\n\t\t\tonAssets: 'on Assets',\n\t\t\toneMonth: 'One Month',\n\t\t\tonEquity: 'on Equity',\n\t\t\toneWeek: 'One Week',\n\t\t\toneYear: 'One Year',\n\t\t\toperatingMargin: 'Operating margin',\n\t\t\topen: 'Open',\n\t\t\topenAlert: 'Open {name} menu in a new dialogue',\n\t\t\topenMenu: 'Open menu',\n\t\t\topenSymbol: 'Open {symbol} menu in a new dialogue',\n\t\t\topenHelpContent: 'Open help content',\n\t\t\topenInt: 'Open int',\n\t\t\topenInterest: 'Open interest',\n\t\t\topenSymbolMenu: 'Open {symbol} menu in a new dialogue',\n\t\t\topIncome: 'Operating Income',\n\t\t\topsMaintenance: 'Operations & Maintenance',\n\t\t\toptions: 'Options',\n\t\t\toptionChain: 'Option chain',\n\t\t\toptionsExercised: 'Options Exercised',\n\t\t\toptionsNotFound: '{symbol} does not have options.',\n\t\t\toptionChainFor: 'Option chain for {symbol}',\n\t\t\topenPdf: 'Open PDF',\n\t\t\topenPdfInANewWindow: 'Open {title} PDF in a new window',\n\t\t\topenInANewWindow: 'Open {title} in a new window',\n\t\t\topenPdfSr: 'Open {name} PDF',\n\t\t\toptionsCaption: '{count} Options',\n\t\t\toptionDetails: 'Option details',\n\t\t\toptionDetailsSrOnly: '{symbol} details',\n\t\t\toutOfTheMoney: 'Out of the money',\n\t\t\tother: 'Other',\n\t\t\tMSDRegionOther: 'Region Other',\n\t\t\tothers: 'Others',\n\t\t\totherAssets: 'Other Assets',\n\t\t\totherExpense: 'Other Expense',\n\t\t\totherFinancingCashFlow: 'Other Financing Cash Flow',\n\t\t\totherInsuranceRev: 'Other Insurance Revenue',\n\t\t\totherInterestIncome: 'Other Interest Income',\n\t\t\totherInvestCashFlow: 'Other Investing Cash Flow',\n\t\t\totherInvestCashFlowTot: 'OtherInvestCashFlowItms,Tot',\n\t\t\totherNet: 'Other, Net',\n\t\t\totherNonbankIncome: 'Other Non-Bank Income',\n\t\t\totherNonCashItems: 'Other Non-Cash Items',\n\t\t\totherNonInsurRev: 'Other Non-Insur Revenue',\n\t\t\totherNonOpIncomeExpense: 'Other Non-Operating Income (Expenses)',\n\t\t\totherNonutilRev: 'Other Non-Utility Revenue',\n\t\t\totherOpExpense: 'Other Operating Expense',\n\t\t\totherOpExpenseTotal: 'Other Operat Expse, Total',\n\t\t\totherRev: 'Other Revenue',\n\t\t\totherRevenue: 'Other Revenue',\n\t\t\totherRevTotal: 'Other Revenue, Total',\n\t\t\totherUnusualExpense: 'Other Unusual Expense',\n\t\t\totherUnusualIncome: 'Other Unusual Income',\n\t\t\totherUtilRev: 'Other Utility Revenue',\n\t\t\totherAssetsTotal: 'Other Assets, Total',\n\t\t\totherBearingLiabili: 'Other Bearing Liabilities ',\n\t\t\totherBearingLiabiliTotal: 'Other Bearing Lblts, Total',\n\t\t\totherComprehensiveIncome: 'Other Comprehensive Income',\n\t\t\totherCurrLiabiliTotal: 'Other Curr. Lblts, Total',\n\t\t\totherCurrentAsst: 'Other Current Assets',\n\t\t\totherCurrentAsstTotal: 'Other Curr. Assets, Total',\n\t\t\totherCurrntLiabili: 'Other Current Liabilities',\n\t\t\totherDept: 'Other Deposits',\n\t\t\totherEarningAsst: 'Other Earning Assets',\n\t\t\totherEquity: 'Other Equity',\n\t\t\totherEquityTotal: 'Other Equity, Total',\n\t\t\totherErngAsstTotal: 'Other Erng. Assets, Total',\n\t\t\totherLTLiabilities: 'Other LT Liabilities',\n\t\t\totherLibailities: 'Other Liabilities',\n\t\t\totherLibailitiesTotal: 'Other Liabilities, Total',\n\t\t\totherLongTermAsst: 'Other Long Term Assets',\n\t\t\totherPayables: 'Other Payables',\n\t\t\totherPolicyholdFunds: 'Other Policyholders' Funds',\n\t\t\totherPropPlantEquip: 'Other Prop./Plant/Equip.',\n\t\t\totherRcvlble: 'Other Receivables',\n\t\t\totherRealEstateOwned: 'Other Real Estate Owned',\n\t\t\totherSTBorrow: 'Other ST Borrowings',\n\t\t\totherShortTrmInvest: 'Other Short Trm Invest.',\n\t\t\toverall: 'Overall',\n\t\t\tOverall: 'Overall',\n\t\t\toverallReturn: 'Overall return',\n\t\t\toverallReturnDescription: 'Morningstar\\'s assessment of the ETF\\'s excess return over a risk-free rate in comparison to similar funds. Overall return rating is a weighted average of the ETF\\'s three-, five- and ten-year return ratings.',\n\t\t\toverallRisk: 'Overall risk',\n\t\t\toverallRiskDescription: 'Morningstar\\'s assessment of variations in the ETF\\'s monthly returns in comparison to similar funds. Overall risk rating is a weighted average of the ETF\\'s three-, five- and ten-year risk rating.',\n\t\t\toverallTimeframe: 'Overall timeframe',\n\t\t\toverThe: 'over the',\n\t\t\toverview: 'Overview',\n\t\t\tOverview: 'Overview',\n\t\t\t'P-AM': 'Put',\n\t\t\tpage: 'Page',\n\t\t\tpageCount: 'Page {count}',\n\t\t\tpayableAccrued: 'Payable/Accrued',\n\t\t\tpayoutRatio: 'Payout ratio',\n\t\t\tpctChange: 'Percentage Change',\n\t\t\tpdfReports: 'PDF Reports',\n\t\t\tpE: 'P/E',\n\t\t\tpeRatio: 'P/E Ratio',\n\t\t\tpeRatioTTM: 'P/E ratio (TTM)',\n\t\t\tpercentChange: '% Change',\n\t\t\tperformers: 'Performers',\n\t\t\tperiod: 'Period',\n\t\t\t'pharmaceuticals&biotechnology': 'Pharmaceuticals & Biotechnology',\n\t\t\tpleaseSelectAListToAddTo: 'Please select a watch list to add symbols to.',\n\t\t\tpolicyLoans: 'Policy Loans',\n\t\t\tpreferrredStockNet: 'Preferred Stock, Net',\n\t\t\tprepaidExpense: 'Prepaid Expenses',\n\t\t\tprimary: 'Primary',\n\t\t\tprimaryEmail: 'Primary email',\n\t\t\tprincipPaymntSecurit: 'PrincipPaymnts fromSecurits',\n\t\t\tprimarySr: 'Primary report results only if checked',\n\t\t\tpriceAtLaunch: 'Price at launch',\n\t\t\tpriceEarnings: 'Price/earnings',\n\t\t\tpriceSales: 'Price/sales',\n\t\t\tpriceSalesRatio: 'Price/sales ratio',\n\t\t\tpriceCashFlow: 'Price/cash flow',\n\t\t\tpriceCashFlowRatio: 'Price/cash flow',\n\t\t\tpriceTangibleBook: 'Price/tangible book',\n\t\t\tpriceFreeCashFlow: 'Price/free cash flow',\n\t\t\tpricing: 'Pricing',\n\t\t\tpricingAndVolume: 'Pricing & volume',\n\t\t\tpricingVolume: 'Pricing & volume',\n\t\t\tpercentOfHolding: 'Percent of holding',\n\t\t\tpercentOfHoldings: 'Percent of holdings',\n\t\t\tpercentOfNetAssets: '% net assets',\n\t\t\tpercentOfDaysWithinNav: 'Percent of days within +/- 0.5% of NAV',\n\t\t\tperiodRangeError: 'Please select a valid end date that is later than the beginning date.',\n\t\t\tperformance: 'Performance',\n\t\t\tperformanceReview: 'Review performance',\n\t\t\tpersonalgoods: 'Personal Goods',\n\t\t\tphone: 'Phone: ',\n\t\t\tpleaseNameYourWatchList: 'Please name your new watch list',\n\t\t\tpleaseNote: 'Please note:',\n\t\t\tpleaseSelectSymbols: 'Please select symbol(s) to delete.',\n\t\t\tpleaseTryAgain: 'Please try again',\n\t\t\tportfolio: 'Portfolio',\n\t\t\tportfolioReview: 'Review portfolio',\n\t\t\tportfolioAllocation: 'Portfolio allocation',\n\t\t\tportfolioTurnover: 'Portfolio turnover',\n\t\t\tportfolioTurnoverDescription: 'Portfolio turnover is the measure of how frequently assets within an ETF are bought and sold.',\n\t\t\tpreferences: 'Preferences',\n\t\t\tpreferred: 'Preferred',\n\t\t\tpreferredDiv: 'Preferred Dividends',\n\t\t\tproduct: 'Product',\n\t\t\tpreviousArticles: 'Update preceding results with previous page',\n\t\t\tpreviousClose: 'Previous close',\n\t\t\tpreviousCloseRange: 'Previous close range',\n\t\t\tpreviousCloseRangeDescription: 'The closing price range of the previous trading session.',\n\t\t\tpreviousMonthEnd: 'All other data as of previous month end.',\n\t\t\tpremiumDiscount: 'Premium/discount',\n\t\t\tpremiumDiscountDailyChart: 'Premium/discount (daily) chart',\n\t\t\tpremiumDiscountDaily: 'Premium/discount (daily)',\n\t\t\tpremiumDiscountToNav: 'Premium/discount to NAV',\n\t\t\tpremDiscountChartDisclaimer: 'A pricing situation that occurs when an ETF is trading a premium or discount to its net asset value (NAV). An ETF trading at a price higher than its NAV is said to be trading at a premium. When an ETF trades at a lower price than its NAV, it is trading at a discount.',\n\t\t\tpremiumAndDiscountDays: 'Premium and Discount days',\n\t\t\tpremiumAndDiscountAmts: 'Premium and Discount amounts',\n\t\t\tpreTaxMargin: 'Pre-tax margin',\n\t\t\tprice: 'Price',\n\t\t\tpricePerformancePrix: 'Price',\n\t\t\tpriceRatio: 'Price',\n\t\t\tpriceChange: 'Price Change',\n\t\t\tsur: '',\n\t\t\tpriceDollarGainers: 'Price $ gainers',\n\t\t\tpriceDollarLosers: 'Price $ losers',\n\t\t\tpricePctGainers: 'Price % gainers',\n\t\t\tpricePctLosers: 'Price % losers',\n\t\t\tpricePerContract: 'Price Per Contract',\n\t\t\tpricePerformance: 'Price performance',\n\t\t\tpricePerShare: 'Price Per Share',\n\t\t\tpricePerUnit: 'Price Per Unit',\n\t\t\tprofile: 'Profile',\n\t\t\tprofitability: 'Profitability',\n\t\t\tprofitMargin: 'Profit margin',\n\t\t\tproFormaAdj: 'Pro Forma Adjustment',\n\t\t\tproFormaBasicEPS: 'Pro Forma Basic EPS',\n\t\t\tproFormaDilutedEPS: 'Pro Forma Diluted EPS',\n\t\t\tproFormaNetIncome: 'Pro Forma Net Income',\n\t\t\tpropertyTax: 'Property & Other Taxes',\n\t\t\tprovisionIncomeTax: 'Provision for Income Taxes',\n\t\t\tpurchAcqIntangibles: 'Purchase/Acq of Intangibles',\n\t\t\tpurchaseDetails: 'Purchase details',\n\t\t\tpurchasedPower: 'Purchased Power',\n\t\t\tpurchasedRandDWrittenOff: 'Purchased R&D Written-Off',\n\t\t\tpurchaseDetailsCurrency: 'Purchase Details Currency',\n\t\t\tpurchaseFixedAssets: 'Purchase of Fixed Assets ',\n\t\t\tpurchaseInvestment: 'Purchase of Investments',\n\t\t\tpurchaseRD: 'Purchased R&D',\n\t\t\tputs: 'Puts',\n\t\t\tput: 'Put',\n\t\t\tpensionBeneOverfunded: 'Pension Bene. - Overfunded',\n\t\t\tpensionBenefitsUnderfunded: 'Pension Benefits - Underfunded',\n\t\t\tpolicyLiabilities: 'Policy Liabilities ',\n\t\t\tprefStockNonRdmbl: 'Pref. Stock - Non Rdmbl.',\n\t\t\tprefStockNonRdmblNet: 'Pref. Stock-Non Rdmbl, Net',\n\t\t\tpropPlantEquipGross: 'Prop./Plant/Equip. - Gross',\n\t\t\tpropPlantEquipNet: 'Prop./Plant/Equip. - Net',\n\t\t\tprovDoubtAccts: 'Prov. for Doubtful Accts',\n\t\t\tquarterly: 'Quarterly',\n\t\t\tquarterlyOption: 'Quarterly',\n\t\t\tquarterlyIncomeStatementItem: 'Quarterly income statement item',\n\t\t\tquarterlyBalanceSheetItem: 'Quarterly balance sheet item',\n\t\t\tquarterlyCashFlowItem: 'Quarterly cash flow item',\n\t\t\tquickScreener: 'Quick screener',\n\t\t\tquintileForIndustry: '{quintile} for industry',\n\t\t\tquotedetail: 'Quote detail',\n\t\t\tquotesDelayedBy15: 'Quotes delayed by at least 15 minutes',\n\t\t\t'Quote lists': 'Quote lists',\n\t\t\tquickRatio: 'Quick ratio',\n\t\t\tquarterlyEps: 'Quarterly EPS',\n\t\t\trAndD: 'Research & Development',\n\t\t\trangeVariable: '{min} to {max}',\n\t\t\trate: 'Rate',\n\t\t\tratingSummary: 'Rating summary',\n\t\t\tratingSummaryText1: 'The consensus recommendation is ',\n\t\t\tratingSummaryText2: ' or ',\n\t\t\tratingSummaryText3: ' as of ',\n\t\t\tratingSummaryText4: ' with ',\n\t\t\tratingSummaryText5: ' of ',\n\t\t\tratingSummaryText6: ' total analysts reporting.',\n\t\t\tratingSummaryText: 'The consensus recommendation is {rating} or {ratingText} as of {ratingDate} with {opinions} of {analysts} total analysts reporting.',\n\t\t\tratingPrevSummaryText: ' This is an {trend} trend from the previous rating of {ratingText} ({rating}). As of {prevDate} ',\n\t\t\trating: 'Rating',\n\t\t\tratio: 'Ratio',\n\t\t\trename: 'Rename',\n\t\t\treadArticle: 'Read article',\n\t\t\treadCommentarySR: 'Read commentary about {headline}',\n\t\t\treadCommentary: 'Read commentary',\n\t\t\treadArticleSr: 'Read article about {headline}',\n\t\t\treadMoreReports: 'More reports',\n\t\t\trealestate: 'Real estate',\n\t\t\tMSDStockSectorRealEstate: 'Sector Real estate',\n\t\t\t'realestateinvestment&services': 'Real Estate Investment & Services',\n\t\t\trealestateinvestmenttrusts: 'Real Estate Investment Trusts',\n\t\t\trealEstateOpExpense: 'Real Estate Operat Expnse',\n\t\t\trealEstateOpGain: 'Real Estate Operation Gain',\n\t\t\trealizedGainLoss: 'Realized Gains (Losses)',\n\t\t\trecentEtfs: 'Recent ETFs',\n\t\t\trecentEtfsHidden: 'Select from recent ETFs',\n\t\t\trecentSymbolNews: 'Recent {symbol} news',\n\t\t\trecentWatchlistNews: 'Recent {watchlist} news',\n\t\t\tredemptionCharge: 'Redemption charge',\n\t\t\trefreshList: 'Refresh List',\n\t\t\trefinitivDisclaimer: 'Market data and news are supplied by Refinitiv. © Refinitiv. Republication or redistribution of Refinitiv content, including by framing or similar means, is prohibited without the prior written consent of Refinitiv. Refinitiv is not liable for any errors or delays in Refinitiv content, or for any actions taken in reliance on such content. Refinitiv’s logo is a trademark of Refinitiv and its affiliated companies.',\n\t\t\treinsuranceExpense: 'Reinsurance - Expense',\n\t\t\treinsuranceIncome: 'Reinsurance - Income',\n\t\t\trelativeStrengthIndex: 'Relative strength index (RSI)',\n\t\t\trelativeStrengthIndexDescription: 'The RSI compares the magnitude of a security\\'s recent gains to the magnitude of its recent losses, and turns that information into a number that ranges from 0 to 100. The RSI indicates whether a security is overbought or oversold. RSI over 70 may indicate that a security is overbought, and RSI under 30 may indicate that it is oversold.',\n\t\t\trelativeVolume: 'Relative volume',\n\t\t\tremoveSelected: 'Remove Selected',\n\t\t\treports: 'Reports',\n\t\t\treportNotAvailable: 'Report not available',\n\t\t\treportsReview: 'Review reports',\n\t\t\trepurchRetirementCommon: 'Repurch/Retirement Common',\n\t\t\trepurchRetirementPreferd: 'Repurch/Retirement Preferd',\n\t\t\trepurchRetirmntCommonPreferr: 'Repurch/Retirmnt Common/Preferr',\n\t\t\trestructuringCharge: 'Restructuring Charge',\n\t\t\treportTitle: 'Report title',\n\t\t\tresearchHighlights: 'Research highlights (PDF files)',\n\t\t\tresults: '{count} results',\n\t\t\tresultsNoCount: 'Results',\n\t\t\treturn: 'Return',\n\t\t\treturnYear: '{year} return',\n\t\t\treturns: 'Returns',\n\t\t\treturnToNews: 'Return to news',\n\t\t\treturnToReports: 'Return to reports',\n\t\t\treturnToCommentary: 'Return to commentary',\n\t\t\treturnsNotAnnualized: ' Returns for time periods under 1 year are not annualized and represent actual returns.',\n\t\t\treturnOnAssets: 'Return on assets',\n\t\t\treturnOnAssets2: 'Return on assets',\n\t\t\treturnOnInvestments: 'Return on investments',\n\t\t\treturnOnEquity: 'Return on equity',\n\t\t\treturnOnEquity2: 'Return on equity',\n\t\t\trevenue: 'Revenue',\n\t\t\treview: 'Review',\n\t\t\treviewCharts: 'Review charts',\n\t\t\treviewChartsSymbolSr: 'Review {symbol} charts',\n\t\t\treviewLipperLeaders: 'Review Lipper Leaders',\n\t\t\treviewLipperLeadersSymbolSR: 'Review {symbol} Lipper Leaders',\n\t\t\treviewScreen: 'Review',\n\t\t\treviewSavedScreens: 'Review saved screens',\n\t\t\treviewSavedSearches: 'Review saved searches',\n\t\t\treviewSnapshotSR: 'Review {symbol} snapshot',\n\t\t\treviewPerformanceSR: 'Review {symbol} performance',\n\t\t\treviewPortfolioSR: 'Review {symbol} portfolio',\n\t\t\treviewReportsSR: 'Review {symbol} reports',\n\t\t\trevenueGrowthNfy: 'Revenue growth NFY',\n\t\t\trevenueGrowthNfy2: 'Revenue growth NFY',\n\t\t\trevenuePerShare: 'Revenue per share',\n\t\t\trevenueGrowth: 'Revenue growth',\n\t\t\treviewCommentary: 'Review commentary',\n\t\t\treviewSpecificCommentary: 'Review {title} commentary',\n\t\t\treviewFundamentals: 'Review fundamentals',\n\t\t\treviewPerformance: 'Review performance',\n\t\t\treviewPortfolio: 'Review portfolio',\n\t\t\treviewMarketsAtAGlance: 'Review markets at a glance',\n\n\t\t\treviewNumResults: 'Review {numResults} results',\n\t\t\treviewNMatches: 'Review {count} matches',\n\t\t\trho: 'Rho',\n\t\t\trsi14d: '14-day RSI',\n\t\t\trSquaredVsCategory: 'R-Squared vs. {category}',\n\t\t\trSquaredVsCategoryTooltip: 'R-squared shows the strength of a linear relationship between a security and its benchmark over a stated period of time. R-squared values range from 0 to 1. A high r-squared indicates a strong linear relationship.',\n\t\t\trdmblConvPrefStock: 'Rdmbl Conv. Pref. Stock',\n\t\t\tredeemablePrefStockSRPR: 'Redeemable Preferred Stock',\n\t\t\tredeemablePrefStockZPSK: 'Redeemable Preferred Stock',\n\t\t\treinsuranceAsst: 'Reinsurance - Asset',\n\t\t\treinsuranceLiability: 'Reinsurance - Liability',\n\t\t\trepurchaseAgreements: 'Repurchase Agreements',\n\t\t\treserves: 'Reserves',\n\t\t\trestrictedCashCurrent: 'Restricted Cash - Current',\n\t\t\trestrictedCashLT: 'Restricted Cash - LT',\n\t\t\tretEarnAccumDeficit: 'Ret. Earn.(Accum. Deficit)',\n\t\t\trisk: 'Risk',\n\t\t\trSquared: 'R-Squared',\n\t\t\trSquaredYear: 'R-squared ({year} year)',\n\t\t\tMSDPrimaryIndexRSquaredY1Ptile: 'R-squared (1 year)',\n\t\t\tMSDPrimaryIndexRSquaredY3Ptile: 'R-squared (3 year)',\n\t\t\tMSDPrimaryIndexRSquaredY5Ptile: 'R-squared (5 year)',\n\t\t\tMSDPrimaryIndexRSquaredY10Ptile: 'R-squared (10 year)',\n\t\t\tMSDPrimaryIndexRSquaredY1: 'R-squared (1 year)',\n\t\t\tMSDPrimaryIndexRSquaredY3: 'R-squared (3 year)',\n\t\t\tMSDPrimaryIndexRSquaredY5: 'R-squared (5 year)',\n\t\t\tMSDPrimaryIndexRSquaredY10: 'R-squared ({10 year)',\n\t\t\trSquaredDescription: 'One-, three-, five- or ten-year r-squared is an indication of how well the linear relationship between an ETF\\'s performance and the performance of its benchmark exists over a specified period. R-squared values range from 0 to 1. A high r-squared indicates that the ETF\\'s performance has been in line with the benchmark, while a lower r-squared indicates that the ETF does not act like the benchmark.',\n\t\t\tsaleBusiness: 'Sale of Business',\n\t\t\tsaleFixedAssets: 'Sale of Fixed Assets',\n\t\t\tsaleIntangible: 'Sale of Intangible',\n\t\t\tsaleIssuanceCommon: 'Sale/Issuance of Common',\n\t\t\tsaleIssuancePreferred: 'Sale/Issuance of Preferred',\n\t\t\tsaleIssueCommonPrefrd: 'Sale/Issue of Common/Prefrd',\n\t\t\tsaleMaturityInvestments: 'Sale/Maturity of Investment',\n\t\t\tsalesRatio: 'Sales Ratio',\n\t\t\tsalesReturnAllow: 'Sales Returns & Allowances',\n\t\t\tsave: 'Save',\n\t\t\tsaveAs: 'Save as',\n\t\t\tsaveScreenInNewDialog: 'Save screen in a new dialogue',\n\t\t\tsaveAsNewScreenInANewDialog: 'Save as a new screen in a new dialogue',\n\t\t\tsavedAdvancedSearches: 'Saved advanced searches',\n\t\t\tsavedScreenLinkCaption: '{screenName} displayed in accompanying table',\n\t\t\tsavedScreens: 'Saved screens',\n\t\t\tsavedScreensCaption: 'Saved screens table',\n\t\t\tsaveSr: 'Save and go to watch lists',\n\t\t\tsaveAndCloseDialogue: 'Save and close dialogue',\n\t\t\tsavedItems: 'Saved Items',\n\t\t\tsavedSearches: 'Saved searches',\n\t\t\tsaveWatchlist: 'Save and go to watchlist',\n\t\t\tscreenIncludesCriteria: 'This Screen includes the following Criteria:',\n\t\t\tscreenName: 'Screen name',\n\t\t\tScreener: 'Screener',\n\t\t\tScreenerDistribution: 'Distribution',\n\t\t\tscreenerFundType: 'Fund type',\n\t\t\tscreenerFundTypeDescription: 'A broad categorization of ETFs based on asset class, strategy or country.',\n\t\t\tscreenerPortfolio: 'Portfolio',\n\t\t\tscreeners: 'Screeners',\n\t\t\tscreenerLinkSr: '{type} screener',\n\t\t\tscreenerPreview: 'Our new screeners page isn’t quite done, but will be soon. Once it’s ready, all your saved screener information will be accessible via our new and improved format. Stay tuned!',\n\t\t\tsearch: 'Search',\n\t\t\tsearchByKeyword: 'Search by keyword',\n\t\t\tsearchIn: 'Search in',\n\t\t\tsearchOrSecurity: 'or security',\n\t\t\tsearchSymbol: 'Search by symbol',\n\t\t\tsearchSymbolOrSecurity: 'Search by symbol or security',\n\t\t\tsearchSymbolOrCompany: 'Search by symbol or company',\n\t\t\tsearchSymbolToAddToList: 'Search for symbols to add to your list.',\n\t\t\tsecondaryEmail: 'Secondary email',\n\t\t\tsectorEquity: 'Sector equity',\n\t\t\tsecurity: 'Security',\n\t\t\tselectOne: 'Select one',\n\t\t\tselectOneOrMore: 'Select one or more values',\n\t\t\tselectPeriod: 'Select period',\n\t\t\tselectaListToAdd: 'Select a list to add',\n\t\t\tselectWatchList: 'Select watch list',\n\t\t\tselectWatchlistSrOnly: 'Select {name}',\n\t\t\tselectYourCriteria: 'Select your criteria from the accompanying dropdown menus',\n\t\t\tselectAll: 'Select all',\n\t\t\tselectSector: 'Select a sector',\n\t\t\tselectSectorFirst: 'Select a sector first',\n\t\t\tselectSymbol: 'Select {symbol} from list',\n\t\t\tselectSymbolBasic: 'Select {symbol}',\n\t\t\tselectSymbolFromQuoteList: 'Select {symbol} from quote list',\n\t\t\tselectAllSecurities: 'Select all current watch list securities',\n\t\t\tselectAllOptions: 'Select all current quote list options',\n\t\t\tselectAllFunds: 'Select all current quote list funds',\n\t\t\tselectAllQLSecurities: 'Select all current quote list securities',\n\t\t\tselectAStrikePrice: 'Select a Strike Price',\n\t\t\tselectMaxCompare: 'Please select maximum {count} similar ETFs to compare.',\n\t\t\tselectYourCriteriaFromDropdown: 'Select your criteria from the accompanying dropdown menus',\n\t\t\tsellGenAdminExpenseTotal: 'Sell/General/Admin. Expenses, Total',\n\t\t\tsellingGenAdminExpense: 'Selling/Gen/Admin Expense',\n\t\t\tseriesBy: 'Series by',\n\t\t\tsetAlerts: 'Set alerts',\n\t\t\tsetStockAlert: 'Set alert',\n\t\t\tsetWatchListAlerts: 'Set watch list alerts',\n\t\t\tsetSymbolAlerts: 'Set {symbol} alerts',\n\t\t\tservices: 'Services',\n\t\t\tshares: 'Shares',\n\t\t\tsharpeRatio: 'Sharpe ratio',\n\t\t\tsharpeRatioYear: 'Sharpe ratio ({year} year)',\n\t\t\tMSDSharpeRatioY1Ptile: 'Sharpe ratio (1 year)',\n\t\t\tMSDSharpeRatioY3Ptile: 'Sharpe ratio (3 year)',\n\t\t\tMSDSharpeRatioY5Ptile: 'Sharpe ratio (5 year)',\n\t\t\tMSDSharpeRatioY10Ptile: 'Sharpe ratio (10 year)',\n\t\t\tMSDSharpeRatioY1: 'Sharpe ratio (1 year)',\n\t\t\tMSDSharpeRatioY3: 'Sharpe ratio (3 year)',\n\t\t\tMSDSharpeRatioY5: 'Sharpe ratio (5 year)',\n\t\t\tMSDSharpeRatioY10: 'Sharpe ratio (10 year)',\n\t\t\tsharpeRatioDescription: 'The one-, three-, five- or ten-year Sharpe ratio indicates how well the excess return of an asset rewards the investor for the risk taken over a specified period. The higher Sharpe ratio, the better the risk-adjusted performance.',\n\t\t\tsharpRatioTooltip: 'Sharpe ratio indicates how well an asset’s excess return rewards the investor for the risk taken over a stated period of time. The higher the sharpe ratio, the better the risk-adjusted performance.',\n\t\t\tsharesOutstanding: 'Shares outstanding',\n\t\t\tsharesRelated: 'Share related items (millions) ',\n\t\t\tshortDurationHighQuality: 'Short Duration/High Quality',\n\t\t\tshortDurationMediumQuality: 'Short Duration/Medium Quality',\n\t\t\tshortDurationLowQuality: 'Short Duration/Low Quality',\n\t\t\tshortPosition: 'Short Position %',\n\t\t\tshortRestriction: 'Short restriction',\n\t\t\tshortStrategy: 'Short strategy',\n\t\t\tshortStrategyChart: 'Short strategy chart',\n\t\t\tshortTermDebtIssued: 'Short Term Debt Issued',\n\t\t\tshortTermDebtNet: 'Short Term Debt, Net',\n\t\t\tshortTermDebtReduce: 'Short Term Debt Reduction',\n\t\t\tshow: 'Show',\n\t\t\tshowAll: 'Show all',\n\t\t\tshowChangeInDollars: 'Show change in dollars',\n\t\t\tshowChangeInPercent: 'Show change in percent',\n\t\t\tshownIn: 'Shown In',\n\t\t\tsliceNumber: 'Slice Number',\n\t\t\tsilver: 'Silver',\n\t\t\tsilverSr: 'Silver chart',\n\t\t\tsixMonthTBill: '6 Month T-Bill',\n\t\t\tsimilarETFs: 'Similar ETFs',\n\t\t\tsimilarETFsNotFound: 'No similar ETFs found',\n\t\t\tsimpleRange: 'Simple range',\n\t\t\tsince: 'Since',\n\t\t\tsize: 'Size',\n\t\t\tslowStochastics: 'Slow stochastics',\n\t\t\tsma15day: '15-day SMA',\n\t\t\tsma50day: '50-day SMA',\n\t\t\tsma100day: '100-day SMA',\n\t\t\tsma200day: '200-day SMA',\n\t\t\tsmallCapBlend: 'Small Cap Blend',\n\t\t\tsmallCapGrowth: 'Small Cap Growth',\n\t\t\tsmallCapValue: 'Small Cap Value',\n\t\t\tsnapshot: 'Snapshot',\n\t\t\tsnapshotReview: 'Review snapshot',\n\t\t\tsnapshotLower: 'snapshot',\n\t\t\tsnapshotPortfolioDisclaimer: 'Premium/discount data updated daily. All other data as of previous month end.',\n\t\t\t'software&computerservices': 'Software & Computer Services',\n\t\t\tsoftwareDevCosts: 'Software Development Costs',\n\t\t\tsortBy: 'Sort by',\n\t\t\tsortable: 'sortable',\n\t\t\tsp500ChartHidden: 'S&P 500 chart',\n\t\t\tspTsx60ChartHidden: 'S&P/TSX 60 chart',\n\t\t\tspTsxCompChartHidden: 'S&P/TSX Composite chart',\n\t\t\tspTsxVentureChartHidden: 'S&P/TSX venture composite chart',\n\t\t\tstandardDeviation: 'Standard deviation',\n\t\t\tstandardDeviationYear: 'Standard deviation ({year} year)',\n\t\t\tMSDStandardDeviationY1Ptile: 'Standard deviation (1 year)',\n\t\t\tMSDStandardDeviationY3Ptile: 'Standard deviation (3 year)',\n\t\t\tMSDStandardDeviationY5Ptile: 'Standard deviation (5 year)',\n\t\t\tMSDStandardDeviationY10Ptile: 'Standard deviation (10 year)',\n\t\t\tMSDStandardDeviationY1: 'Standard deviation (1 year)',\n\t\t\tMSDStandardDeviationY3: 'Standard deviation (3 year)',\n\t\t\tMSDStandardDeviationY5: 'Standard deviation (5 year)',\n\t\t\tMSDStandardDeviationY10: 'Standard deviation (10 year)',\n\t\t\tstandardDeviationDescription: 'Standard deviation measures the variation of a fund\\'s return over a one-, three-, five- or ten-year period.',\n\t\t\tstandardDeviationTooltip: 'Standard deviation measures the variation of a fund’s return over a stated period of time.',\n\t\t\tstarsOfStarsRating: '{stars} of {max} star',\n\t\t\tstarsOfStarsMaxRating: '{max} of {max} stars',\n\t\t\tstartDay: 'Start day',\n\t\t\tstartMonth: 'Start month',\n\t\t\tstartYear: 'Start year',\n\t\t\tsteamOps: 'Steam Operations',\n\t\t\tstochasticOscillator: 'Stochastic oscillator',\n\t\t\tstochasticOscillatorDescription: `The stochastic oscillator consists of 2 lines, a K% line and a D% line. The K% line demonstrates where a security's price closed relative to its price range over a given period of time. The D% line provides smoothing of the K% line by taking a 3-day moving average of the K%.\n\t\t\t\\nA bullish signal occurs when K% crosses above D%. A bearish signal occurs when K% crosses below D%. `,\n\t\t\tstockBaseComp: 'Stock Based Compensation',\n\t\t\tstockScreener: 'Screeners',\n\t\t\tstockCentre: 'Stock Centre',\n\t\t\tstocksETFsIndices: 'Stocks, ETFs & Indices',\n\t\t\tstrike: 'Strike',\n\t\t\tstrikesShown: 'Strikes shown',\n\t\t\tstrikePrice: 'Strike price',\n\t\t\tstrikeType: 'Strike/Type',\n\t\t\tstockDetail: 'Stock detail',\n\t\t\tsource: 'Source',\n\t\t\tstocks: 'Stocks',\n\t\t\tstocksAndIndicesCaption: '{count} stocks and/or indices',\n\t\t\tstockEarningsChartHeader: '{symbol} earnings per share (EPS)',\n\t\t\tstockEarningsLink: 'Click or tab through bars for more info',\n\t\t\tsubjectToChangeDisclaimer1: 'All Rating or Ranking information is subject to change on a monthly basis.',\n\t\t\tsubjectToChangeDisclaimer2: 'The rate of return or mathematical table shown is used only to illustrate the effects of the compound growth rate and is not intended to reflect future values of the fund or returns on investment in the fund.',\n\t\t\tsuspendFrom: 'Suspend from',\n\t\t\tsummary: 'Summary',\n\t\t\tsupportservices: 'Support Services',\n\t\t\tsymbol: 'Symbol',\n\t\t\tsymbolLabel: 'Symbol',\n\t\t\tsymbols: 'Symbols',\n\t\t\tsymbolLastChangeBottom: 'last change',\n\t\t\tsymbolLastChangeTop: 'Symbol',\n\t\t\tsymbolCompany: 'Symbol/company',\n\t\t\tsymbolCompanyName: 'Symbol or company name',\n\t\t\tsymbolChart: '{symbol} chart ',\n\t\t\tsymbolDetails: '{symbol} details',\n\t\t\tsymbolDoesNotHaveAnyOptions: '{symbol} does not have options.',\n\t\t\tsymbolInactive: 'This symbol is no longer active.',\n\t\t\tsymbolsForWatchlist: 'Symbols for Watch List',\n\t\t\tsymbolsInList: 'Symbols in list',\n\t\t\tsymbolDoesNotExist: 'The symbol you are trying to view does not exist. Please use the Symbol Search to find another security.',\n\t\t\tsymbolNotFound: 'Symbol Not Found',\n\t\t\tsymbolNotFoundTryAgain: 'The symbol is invalid.',\n\t\t\tsecDepotsits: 'Security Deposits',\n\t\t\tsecIndbtdRltPrts: 'Sec./Indbtd. of Rlt\\'d Prts',\n\t\t\tsecuritiesHeld: 'Securities Held ',\n\t\t\tsecuritiesSale: 'Securities for Sale',\n\t\t\tsepAccntLiability: 'Sep. Accounts - Liability',\n\t\t\tseperateAcctAssets: 'Separate Accounts - Assets',\n\t\t\tshortTermInvs: 'Short Term Investments',\n\t\t\tshrOutComSktIss2: 'Shr Outs.-Com. Stk. Iss. 2',\n\t\t\tshrOutComSktIss3: 'Shr Outs.-Com. Stk. Iss. 3',\n\t\t\tshrOutComSktIss4: 'Shr Outs.-Com. Stk. Iss. 4',\n\t\t\tshrOutsPrimaryLss: 'Shr Outs.-Com. Primary Iss.',\n\t\t\tshrsOutPrefPrimaryIss: 'Shrs Out-Pref Primary Iss.',\n\t\t\tshrsOutPrefStkIss2: 'Shrs Out-Pref Stk Iss. 2',\n\t\t\tshrsOutPrefStkIss3: 'Shrs Out-Pref Stk Iss. 3',\n\t\t\tshrsOutPrefStkIss4: 'Shrs Out-Pref Stk Iss. 4',\n\t\t\tshrsOutPrefStkIss5: 'Shrs Out-Pref Stk Iss. 5',\n\t\t\tshrsOutPrefStkIss6: 'Shrs Out-Pref Stk Iss. 6',\n\t\t\tstartEtfScreener1: 'Start your ETF research with our ',\n\t\t\tstartEtfScreener2: ', or complete your own search using our ',\n\t\t\ttobacco: 'Tobacco',\n\t\t\ttaxableBond: 'Taxable bond',\n\t\t\ttaxablebond: 'Taxable bond',\n\t\t\ttaxOnExtraItem: 'Tax on Extraordinary Items',\n\t\t\ttCost: 'cost',\n\t\t\t'Technical analysis': 'Technical analysis',\n\t\t\ttechnicalAnalysis: 'Technical Analysis',\n\t\t\tTechnical: 'Technical',\n\t\t\ttechnicals: 'Technicals',\n\t\t\ttechnology: 'Technology',\n\t\t\tMSDStockSectorTechnology: 'Sector Technology',\n\t\t\t'technologyhardware&equipment': 'Technology Hardware & Equipment',\n\t\t\ttelecommunications: 'Telecommunications',\n\t\t\ttelecommunicationServices: 'Telecommunication services',\n\t\t\ttenure: 'Tenure',\n\t\t\ttenYearBond: '10 Year Bond',\n\t\t\ttest: 'test',\n\t\t\ttext: 'Text',\n\t\t\tthe: 'The',\n\t\t\ttheLowerCase: 'the',\n\t\t\tthereAreCurrentlyNoGainers: 'There are currently no gainers today',\n\t\t\tthereAreCurrentlyNoLoser: 'There are currently no losers today',\n\t\t\tthereAreNoReports: 'There are no news reports available for this ETF.',\n\t\t\tthereAreNoNewsReports: 'There are no news reports available for this ETF.',\n\t\t\ttheta: 'Theta',\n\t\t\ttheWeekAhead: 'The week ahead',\n\t\t\ttheWeekAheadWC: 'A look at the week ahead',\n\t\t\ttheWeekAheadAnalystReports: 'The week ahead',\n\t\t\ttheWeekAheadDescription: 'Stay ahead of the market with analyses of the latest economic developments affecting fixed income, equity and foreign exchange markets, along with previews of next week\\'s key releases.',\n\t\t\ttimeframe: 'Timeframe',\n\t\t\tthirtyYearBond: '30 Year Bond',\n\t\t\tthisOptionHasExpired: 'This option has expired.',\n\t\t\tthousand: 'thousand',\n\t\t\tthreeMonth: 'Three Month',\n\t\t\tthreeMonthTBill: '3 Month T-Bill',\n\t\t\tthreeYearTBill: '3 Year T-Bill',\n\t\t\tto: 'to',\n\t\t\ttools: ' tools.',\n\t\t\ttoUpperCase: 'To',\n\t\t\ttoContextDe: 'to',\n\t\t\ttoLowerCase: 'to',\n\t\t\ttoday: 'Today',\n\t\t\ttodaysChange: 'Today\\'s change',\n\t\t\ttodaysChangeSr: '',\n\t\t\ttodaysMovers: \"Today's movers\",\n\t\t\ttodayFunds: \"Today's funds\",\n\t\t\ttodayIndex: \"Today's indices\",\n\t\t\ttodaysOpen: 'Today\\'s open',\n\t\t\ttodaysRange: 'Today\\'s range',\n\t\t\ttodaysRangeButtonSr: 'Expand for 52 week range details',\n\t\t\ttopPerformingBelowAverageMEREquityETFs: 'Top Performing Below Average MER Equity ETFs',\n\t\t\ttopPerformingBelowAverageMEREquityETFs_desc: 'ETFs that invest in Canadian, U.S. and international equity holdings, with a below-average MER and an above-average 1-year return.',\n\t\t\ttopPerformingEmergingMarketsETFs: 'Top Performing Emerging Markets ETFs',\n\t\t\ttopPerformingEmergingMarketsETFs_desc: 'ETFs that invest in the emerging markets, with an above-average 1-year return.',\n\t\t\ttop10Holdings: 'Top 10 holdings',\n\t\t\ttop10HoldingsDescription: 'The top 10 holdings within an ETF portfolio.',\n\t\t\ttopGlobalHoldings: 'Top global holdings',\n\t\t\ttopGlobalHoldingsDescription: 'The top country holdings within an ETF portfolio.',\n\t\t\ttopGlobalHoldingsTooltip: 'Country breakdown is calculated using only the portfolio’s long stock and bond holdings, by country of domicile.',\n\t\t\ttopHoldings: 'Top holdings',\n\t\t\ttopNMostActive: 'Top {count} Most Active',\n\t\t\ttopNMovers: 'Top {count} Movers',\n\t\t\ttopPctMovers: 'Top % movers',\n\t\t\ttopPerformers: 'Top performers',\n\t\t\ttopPriceMovers: 'Top $ movers',\n\t\t\ttopMovers: 'Top movers',\n\t\t\ttopSectorHoldings: 'Top sector holdings',\n\t\t\ttopSectorHoldingsDescription: 'The top sector holdings within an ETF portfolio.',\n\t\t\ttopSectorsByPercent: 'Top sectors by percent',\n\t\t\ttopSectorsHeld: 'Top sectors held',\n\t\t\ttopSecuritiesHeld: 'Top securities held',\n\t\t\ttotal: 'Total',\n\t\t\ttotalAdjToNetIncome: 'Total Adjust to Net Income',\n\t\t\ttotalAssets: 'Total Assets',\n\t\t\ttotalAssetsLowerA: 'Total assets',\n\t\t\ttotalCashDividsPaid: 'Total Cash Dividends Paid',\n\t\t\ttotalCashFinancing: 'Total Cash From Financing',\n\t\t\ttotalCashInvest: 'Total Cash from Investing',\n\t\t\ttotalCashOps: 'Total Cash from Operations',\n\t\t\ttotalDebtEquity: 'Total debt/equity',\n\t\t\ttotalDebtIssue: 'Total Debt Issued',\n\t\t\ttotalDebtReduce: 'Total Debt Reduction',\n\t\t\ttotalExtraItem: 'Total Extraordinary Items',\n\t\t\ttotalGainLossOf: 'Total Gain/Loss of {issueType}',\n\t\t\ttotalInterestExpense: 'Total Interest Expense',\n\t\t\ttotalNetAssets: 'Total net assets',\n\t\t\ttotalNetAssetsShort: 'TNA',\n\t\t\ttotalNetAssetsDescription: 'Total net assets are calculated by subtracting an ETF\\'s liabilities from its assets.',\n\t\t\ttotalNetAssetsRange0to10M: '< 10M',\n\t\t\ttotalNetAssetsRange10to50M: '10M-50M',\n\t\t\ttotalNetAssetsRange50to500M: '50M-500M',\n\t\t\ttotalNetAssetsRange500to1000M: '500M-1B',\n\t\t\ttotalNetAssetsRangeabove1000M: '> 1B',\n\t\t\ttotalOpExpense: 'Total Operating Expense',\n\t\t\ttotalPremEarned: 'Total Premiums Earned',\n\t\t\ttotalRev: 'Total Revenue',\n\t\t\ttotalSpecialItems: 'Total Special Items',\n\t\t\ttotalReturnPerformance: 'Total return performance',\n\t\t\ttrade: 'Trade',\n\t\t\ttradeSr: 'Trade {symbol}',\n\t\t\ttrailingTwelveMonths: 'Trailing twelve months (TTM)',\n\t\t\ttype: 'Type',\n\t\t\ttypeContextCategory: 'Type',\n\t\t\ttrStockReports: 'TR StockReports+',\n\t\t\ttradePricesAndQuotes: 'Trade prices and quotes are not sourced from all markets.',\n\t\t\ttradingAcctInterest: 'Trading Account Interest',\n\t\t\ttrailingReturnPeriod: 'Trailing return period',\n\t\t\ttrailingRollingReturns: 'Trailing rolling returns',\n\t\t\ttrailingRollingReturnTooltip: 'Trailing return is the total return of a fund over a specific time period. For example, the latest bar represents an ETF’s total return based on the selected time period (e.g., 3 months). The previous bar is also based on the selected time period, but is calculated at the end of the previous month rather than the latest month.',\n\t\t\t'travel&leisure': 'Travel & Leisure',\n\t\t\ttreasuryStock: 'Treasury Stock',\n\t\t\tttm: 'TTM',\n\t\t\tttm1YrAgo: 'TTM vs. same 1 year ago',\n\t\t\tttmLabel: 'TTM',\n\t\t\ttotalCurrentAsst: 'Total Current Assets',\n\t\t\ttotalCurrentLiabili: 'Total Current Liabilities',\n\t\t\ttotalDebt: 'Total Debt',\n\t\t\ttotalDept: 'Total Deposits',\n\t\t\ttotalEquity: 'Total Equity',\n\t\t\ttotalGrossLoan: 'Total Gross Loans',\n\t\t\ttotalInvent: 'Total Inventory',\n\t\t\ttotalInvestSec: 'Total Invest. Securities',\n\t\t\ttotalLibailities: 'Total Liabilities',\n\t\t\ttotalLongTermDebt: 'Total Long Term Debt',\n\t\t\ttotalRcvbleNet: 'Total Receivables, Net',\n\t\t\ttotalSTBorrow: 'Total ST Borrowings',\n\t\t\ttotalShareholdersEquity: 'Total Liabilities & Shareholders' Equity',\n\t\t\ttotalUtilPlantNet: 'Total Utility Plant, Net',\n\t\t\ttradeAcctsRcvbleGross: 'Trade Accts Recvble, Gross',\n\t\t\ttradeAcctsRcvbleShortTerm: 'Trade Accts Recvble, Net',\n\t\t\ttradingAcctAsst: 'Trading Account Assets ',\n\t\t\ttransportation: 'Transportation',\n\t\t\ttreasuryStockCommon: 'Treasury Stock - Common',\n\t\t\ttreasuryStockPref: 'Treasury Stock - Preferred',\n\t\t\ttrsyShrCommIss2: 'Trsy. Shrs-Comm. Iss. 2',\n\t\t\ttrsyShrCommIss3: 'Trsy. Shrs-Comm. Iss. 3',\n\t\t\ttrsyShrCommIss4: 'Trsy. Shrs-Comm. Iss. 4',\n\t\t\ttrsyShrCommPrimaryLss: 'Trsy. Shrs-Comm. Primary Iss.',\n\t\t\ttrsyShrPrefIss1: 'Trsry Shrs-Pref. Iss. 1',\n\t\t\ttrsyShrPrefIss2: 'Trsry Shrs-Pref. Iss. 2',\n\t\t\ttrsyShrPrefIss3: 'Trsry Shrs-Pref. Iss. 3',\n\t\t\ttrsyShrPrefIss4: 'Trsry Shrs-Pref. Iss. 4',\n\t\t\ttrsyShrPrefIss5: 'Trsry Shrs-Pref. Iss. 5',\n\t\t\ttrsyShrPrefIss6: 'Trsry Shrs-Pref. Iss. 6',\n\t\t\tttlCommSharesOuts: 'Ttl Comm. Shares Outs.',\n\t\t\tunableToLoadPage: 'We were unable to load this page successfully',\n\t\t\tunderlying: 'Underlying',\n\t\t\tunderlyingprice: 'Underlying Price',\n\t\t\tunderwritingCommissions: 'Underwriting & Commissions',\n\t\t\tunits: 'Units',\n\t\t\tunrealizedGain: 'Unrealized Gains',\n\t\t\tunrealizedGains: 'Unrealized Gains (Losses)',\n\t\t\tunrealizedLoss: 'Unrealized Losses',\n\t\t\tunrealizedLossGains: 'Unrealized Losses (Gains)',\n\t\t\tunusualExpenseIn: 'Unusual Expense (Income)',\n\t\t\tup: 'Up',\n\t\t\tus: 'US',\n\t\t\tusGrowthAtReasonablePrice: 'U.S. - growth at a reasonable price',\n\t\t\tusGrowthAtReasonablePrice_desc: 'US stocks with reasonable price growth',\n\t\t\tusLowPEStocks: 'U.S. - low PE stocks',\n\t\t\tusValueStocks: 'U.S. - value stocks',\n\t\t\tusCommodityETFs: 'U.S. Commodity ETFs',\n\t\t\tusCommodityETFs_desc: 'ETFs that invest in Commodity securities.',\n\t\t\tusDollars: 'US dollars',\n\t\t\tusePreviousSearch: 'Use the previous search to add symbols.',\n\t\t\tusEquity: 'US equity',\n\t\t\tusEquityETFs: 'U.S. Equity ETFs',\n\t\t\tusEquityETFs_desc: 'ETFs that invest in U.S. equity holdings.',\n\t\t\tusFixedIncomeETFs: 'U.S. Fixed Income ETFs',\n\t\t\tusFixedIncomeETFs_desc: 'ETFs that invest in U.S. fixed income securities.',\n\t\t\tusGaapAdj: 'U.S. GAAP Adjustment',\n\t\t\tusPrime: 'US Prime',\n\t\t\tususualItems: 'Unusual Items',\n\t\t\tusVsCanadianDollars: 'US vs Canadian Dollars',\n\t\t\tUSvsCanadianSrOnly: 'U S vs Canadian Dollars',\n\t\t\tusNews: 'U S News',\n\t\t\tutilities: 'Utilities',\n\t\t\tMSDStockSectorUtilities: 'Sector Utilities',\n\t\t\tunbilledUtilRev: 'Unbilled Utility Revenues',\n\t\t\tunearnedIncome: 'Unearned Income',\n\t\t\tunearnedPremRev: 'Unearned Prem. Or Rev.',\n\t\t\tunrealizedGainLoss: 'Unrealized Gain (Loss)',\n\t\t\tutilPlant: 'Utility Plant',\n\t\t\tutilPlantAccumDeprc: 'Utlty. Plnt. Accum. Deprc.',\n\t\t\tutilPlantNet: 'Utility Plant, Net',\n\t\t\tvacationStop: 'Vacation stop',\n\t\t\tvalue: 'Value',\n\t\t\tvaluation: 'Valuation',\n\t\t\tvega: 'Vega',\n\t\t\tviewAll: 'View All',\n\t\t\tviewBy: 'View By',\n\t\t\tviewMore: 'View more',\n\t\t\tviewTop5: 'View top 5',\n\t\t\tviewTop10: 'View top 10',\n\t\t\tviewMoreReports: 'View More Reports',\n\t\t\tviewMarketMovers: 'View Market Movers',\n\t\t\tviewMoreNewsHeadlines: 'More news',\n\t\t\tviewOption: 'List Option',\n\t\t\tvolume: 'Volume',\n\t\t\tavgVolume: 'Average volume',\n\t\t\tthreeMonths: '(3 mos)',\n\t\t\tthreeMonthsSr: '3 months',\n\t\t\tvolatility: 'Volatility',\n\t\t\tvsSnP500: 'vs S&P 500',\n\t\t\tvsSnP5004Week: 'vs S&P 500 1 month',\n\t\t\tvsSnP50052Week: 'vs S&P 500 1 year',\n\t\t\twarrantsConverted: 'Warrants Converted',\n\t\t\twatchlist: 'Watch List',\n\t\t\twatchlistDeliveryConfigured: 'Your watch list alerts are configured to be sent {period}.',\n\t\t\twatchlistAlertDescription: 'Receive an email summary of price performance of stocks in your watch lists. This daily, weekly or monthly scheduled alert includes stock closing prices, volumes and 52-week highs and lows.',\n\t\t\twatchlistAlerts: 'Watch list alerts',\n\t\t\twatchlistAlertsDescription: 'Receive an email summary of price performance of stocks in your watch lists. This daily, weekly or monthly scheduled alert includes stock closing prices, volumes and 52-week highs and lows.',\n\t\t\t'Watch list': 'Watch list',\n\t\t\t'Watch lists': 'Watch lists',\n\t\t\twarningIcon: 'Warning',\n\t\t\twatchlistDataUnavailable: '{section} data is not available for {type}',\n\t\t\twatchlistDataUnavailable2: '{section} data is not available for {type}',\n\t\t\twatchlistDataUnavailable3: '{type} {section} data is not available',\n\t\t\twatchlistInsufficientCapacity: 'There is insufficient space to add symbols to the list.',\n\t\t\twatchlistTotals: 'Watch List Totals',\n\t\t\twatchlistNameLenghtError: 'Watch list names cannot exceed 20 characters.',\n\t\t\twatchlistNews: '{watchlist} news',\n\t\t\twatchlistSymbolDetail: '{symbol} details',\n\t\t\twaterOps: 'Water Operations',\n\t\t\tweb: 'Web: ',\n\t\t\tweekly: 'Weekly',\n\t\t\tweeksVariable: '{number} weeks',\n\t\t\tyearly: 'Yearly',\n\t\t\tyes: 'Yes',\n\t\t\tyield: 'Yield',\n\t\t\tyieldLabel: 'Yield',\n\t\t\tyouMustSelect: 'Please select symbols to add.',\n\t\t\tyourSelectionAltersData: 'Your selection alters accompanying data',\n\t\t\tytd: 'YTD',\n\t\t\tytdEtfPerformance: 'YTD',\n\t\t\tytdPct: 'YTD %',\n\t\t\tytdReturn: 'YTD return',\n\t\t\tyourWatchlistEmpty: 'Your watch list is currently empty.',\n\t\t\tyourPdfDownloaded: 'Your PDF has been downloaded',\n\n\t\t\t// begin morningstar categories\n\t\t\t'allocation--15%to30%equity': 'Allocation--15% to 30% equity',\n\t\t\t'allocation--30%to50%equity': 'Allocation--30% to 50% equity',\n\t\t\t'allocation--50%to70%equity': 'Allocation--50% to 70% equity',\n\t\t\t'allocation--70%to85%equity': 'Allocation--70% to 85% equity',\n\t\t\t'allocation--85%+equity': 'Allocation--85%+ equity',\n\t\t\talternativecreditfocused: 'Alternative credit focused',\n\t\t\talternativeequityfocused: 'Alternative equity focused',\n\t\t\talternativemarketneutral: 'Alternative market neutral',\n\t\t\t'alternativemulti-strategy': 'Alternative multi-strategy',\n\t\t\talternativeother: 'Alternative other',\n\t\t\tasiapacificequity: 'Asia Pacific equity',\n\t\t\tbankloan: 'Bank loan',\n\t\t\tbearmarket: 'Bear market',\n\t\t\tcanada: 'Canada',\n\t\t\tMSDRegionCanada: 'Region Canada',\n\t\t\tcanadaAndUS: 'Canada and US',\n\t\t\tcanadiancorporatefixedincome: 'Canadian corporate fixed income',\n\t\t\t'canadiandividend&incomeequity': 'Canadian dividend & income equity',\n\t\t\tcanadianequity: 'Canadian equity',\n\t\t\tcanadianequitybalanced: 'Canadian equity balanced',\n\t\t\tcanadianFixedIncomeETFs: 'Canadian Fixed Income ETFs',\n\t\t\tcanadianFixedIncomeETFs_desc: 'ETFs that invest in Canadian fixed income securities.',\n\t\t\tcanadianfixedincome: 'Canadian fixed income',\n\t\t\tcanadianfixedincomebalanced: 'Canadian fixed income balanced',\n\t\t\t'canadianfocusedsmall/midcapequity': 'Canadian focused small/mid cap equity',\n\t\t\tcanadianinflationprotectedfixedincome: 'Canadian inflation protected fixed income',\n\t\t\tcanadianlongtermfixedincome: 'Canadian long term fixed income',\n\t\t\tcanadianmoneymarket: 'Canadian money market',\n\t\t\tcanadianneutralbalanced: 'Canadian neutral balanced',\n\t\t\tcanadianshorttermfixedincome: 'Canadian short term fixed income',\n\t\t\t'canadiansmall/midcapequity': 'Canadian small/mid cap equity',\n\t\t\tchinaregion: 'China region',\n\t\t\tcommoditiesbroadbasket: 'Commodities broad basket',\n\t\t\tcommoditiesenergy: 'Commodities energy',\n\t\t\tcommoditiesfocused: 'Commodities focused',\n\t\t\tcommunications: 'Communications',\n\t\t\tconvertibles: 'Convertibles',\n\t\t\tcorporatebond: 'Corporate bond',\n\t\t\tdaily: 'Daily',\n\t\t\tdailyVolume: 'Daily volume',\n\t\t\tdiversifiedemergingmarkets: 'Diversified emerging markets',\n\t\t\t'diversifiedpacific/asia': 'Diversified Pacific/Asia',\n\t\t\temergingmarketsbond: 'Emerging markets bond',\n\t\t\temergingmarketsequity: 'Emerging markets equity',\n\t\t\temergingmarketsfixedincome: 'Emerging markets fixed income',\n\t\t\temergingmarketslocalcurrencybond: 'Emerging markets local currency bond',\n\t\t\tenergyequity: 'Energy equity',\n\t\t\tenergylimitedpartnership: 'Energy limited partnership',\n\t\t\tequityenergy: 'Equity energy',\n\t\t\tequitypreciousmetals: 'Equity precious metals',\n\t\t\teuropestock: 'Europe stock',\n\t\t\teuropeanequity: 'European equity',\n\t\t\tfinancial: 'Financial',\n\t\t\tfinancialservicesequity: 'Financial services equity',\n\t\t\tfloatingrateloans: 'Floating rate loans',\n\t\t\tforeignlargeblend: 'Foreign large blend',\n\t\t\tforeignlargegrowth: 'Foreign large growth',\n\t\t\tforeignlargevalue: 'Foreign large value',\n\t\t\t'foreignsmall/midblend': 'Foreign small/mid blend',\n\t\t\t'foreignsmall/midgrowth': 'Foreign small/mid growth',\n\t\t\t'foreignsmall/midvalue': 'Foreign small/mid value',\n\t\t\tgeographicequity: 'Geographic equity',\n\t\t\tglobalcorporatefixedincome: 'Global corporate fixed income',\n\t\t\tglobalequity: 'Global equity',\n\t\t\tglobalequitybalanced: 'Global equity balanced',\n\t\t\tglobalfixedincome: 'Global fixed income',\n\t\t\tglobalfixedincomebalanced: 'Global fixed income balanced',\n\t\t\tglobalinfrastructureequity: 'Global infrastructure equity',\n\t\t\tglobalneutralbalanced: 'Global neutral balanced',\n\t\t\tglobalrealestate: 'Global real estate',\n\t\t\t'globalsmall/midcapequity': 'Global small/mid cap equity',\n\t\t\tgreaterchinaequity: 'Greater China equity',\n\t\t\thealth: 'Health',\n\t\t\thighDistributionEquityETFs: 'High Distribution Equity ETFs',\n\t\t\thighDistributionEquityETFs_desc: 'ETFs that invest in Canadian equity holdings with an above-average distribution yield.',\n\t\t\thighyieldbond: 'High yield bond',\n\t\t\thighyieldfixedincome: 'High yield fixed income',\n\t\t\thighyieldmuni: 'High yield muni',\n\t\t\thighYieldFixedIncomeETFs: 'High Yield Fixed Income ETFs',\n\t\t\thighYieldFixedIncomeETFs_desc: 'ETFs that invest in Canadian high-yield fixed income securities.',\n\t\t\tincomeStatement: 'Income statement',\n\t\t\tindiaequity: 'India equity',\n\t\t\t'inflation-protectedbond': 'Inflation-protected bond',\n\t\t\tinfrastructure: 'Infrastructure',\n\t\t\tintermediatecorebond: 'Intermediate core bond',\n\t\t\t'intermediatecore-plusbond': 'Intermediate core-plus bond',\n\t\t\tintermediategovernment: 'Intermediate government',\n\t\t\tinternationalequity: 'International equity',\n\t\t\tjapanstock: 'Japan stock',\n\t\t\tlargeblend: 'Large blend',\n\t\t\tlargegrowth: 'Large growth',\n\t\t\tlargevalue: 'Large value',\n\t\t\tlatinamericastock: 'Latin America stock',\n\t\t\tlonggovernment: 'Long government',\n\t\t\t'long-shortcredit': 'Long-short credit',\n\t\t\t'long-shortequity': 'Long-short equity',\n\t\t\t'long-shortbond': 'Long-short bond',\n\t\t\tmanagedfutures: 'Managed futures',\n\t\t\tmarketneutral: 'Market neutral',\n\t\t\t'mid-capblend': 'Mid-cap blend',\n\t\t\t'mid-capgrowth': 'Mid-cap growth',\n\t\t\t'mid-capvalue': 'Mid-cap value',\n\t\t\t'miscellaneous--incomeandrealproperty': 'Miscellaneous--income and real property',\n\t\t\t'miscellaneous--other': 'Miscellaneous--other',\n\t\t\tmiscellaneousregion: 'Miscellaneous region',\n\t\t\tmiscellaneoussector: 'Miscellaneous sector',\n\t\t\tmultialternative: 'Multialternative',\n\t\t\tmulticurrency: 'Multicurrency',\n\t\t\tmultisectorbond: 'Multisector bond',\n\t\t\tmunicalifornialong: 'Muni California long',\n\t\t\tmuninationalinterm: 'Muni national interm',\n\t\t\tmuninationallong: 'Muni national long',\n\t\t\tmuninationalshort: 'Muni national short',\n\t\t\tmuninewyorkintermediate: 'Muni New York intermediate',\n\t\t\tmuninewyorklong: 'Muni New York long',\n\t\t\tmunitargetmaturity: 'Muni target maturity',\n\t\t\tnaturalresources: 'Natural resources',\n\t\t\tnaturalresourcesequity: 'Natural resources equity',\n\t\t\tnontraditionalbond: 'Nontraditional bond',\n\t\t\tnorthamericanequity: 'North American equity',\n\t\t\t'options-based': 'Options-based',\n\t\t\t'pacific/asiaex-japanstock': 'Pacific/Asia ex-Japan Stock',\n\t\t\t'passiveinverse/leveraged': 'Passive inverse/leveraged',\n\t\t\tpreciousmetalsequity: 'Precious metals equity',\n\t\t\tpreferredsharefixedincome: 'Preferred share fixed income',\n\t\t\tpreferredstock: 'Preferred stock',\n\t\t\trealestateequity: 'Real estate equity',\n\t\t\tsectorequity: 'Sector equity',\n\t\t\tshortgovernment: 'Short government',\n\t\t\t'short-termbond': 'Short-term bond',\n\t\t\tsinglecurrency: 'Single currency',\n\t\t\tsmallblend: 'Small blend',\n\t\t\tsmallgrowth: 'Small growth',\n\t\t\tsmallvalue: 'Small value',\n\t\t\ttacticalallocation: 'Tactical allocation',\n\t\t\ttacticalbalanced: 'Tactical balanced',\n\t\t\ttargetmaturity: 'Target maturity',\n\t\t\t'trading--inversecommodities': 'Trading--inverse commodities',\n\t\t\t'trading--inversedebt': 'Trading--inverse debt',\n\t\t\t'trading--inverseequity': 'Trading--inverse equity',\n\t\t\t'trading--leveragedcommodities': 'Trading--leveraged commodities',\n\t\t\t'trading--leverageddebt': 'Trading--leveraged debt',\n\t\t\t'trading--leveragedequity': 'Trading--leveraged equity',\n\t\t\t'trading--miscellaneous': 'Trading--miscellaneous',\n\t\t\tultrashortbond: 'Ultrashort bond',\n\t\t\t'usdividend&incomeequity': 'U.S Dividend & Income Equity',\n\t\t\tusequity: 'US equity',\n\t\t\tusmoneymarket: 'US money market',\n\t\t\t'ussmall/midcapequity': 'US small/mid cap equity',\n\t\t\tworldallocation: 'World allocation',\n\t\t\tworldbond: 'World bond',\n\t\t\t'worldbond-usdhedged': 'World bond-USD hedged',\n\t\t\tworldlargestock: 'World large stock',\n\t\t\t'worldsmall/midstock': 'World small/mid stock',\n\t\t\tyear: 'Year',\n\t\t\tyieldAndDate: 'yield & date',\n\t\t\tyourSelectionDidNotYieldResult: 'Your search yielded no results. Please try different search criteria.',\n\t\t\t// end morningstar categories\n\n\t\t\t// Analyst Recommendations Ratings\n\t\t\tstrongBuy: 'Strong buy',\n\t\t\t'Strong Buy': 'Strong Buy',\n\t\t\tbuy: 'Buy',\n\t\t\tBuy: 'Buy',\n\t\t\thold: 'Hold',\n\t\t\tHold: 'Hold',\n\t\t\tsell: 'Sell',\n\t\t\tSell: 'Sell',\n\t\t\tstrongSell: 'Strong sell',\n\t\t\t'Strong Sell': 'Strong Sell',\n\t\t\tUnderperform: 'Underperform',\n\t\t\tupwardTrend: 'an upward trend',\n\t\t\tdownwardTrend: 'a downward trend',\n\t\t\tunchangedTrend: 'unchanged',\n\t\t\tanalystRatingText1: 'This is {trendText} from the previous rating of ',\n\t\t\tanalystRatingText2: '. As of ',\n\n\t\t\t// Earnings Chart\n\t\t\tactualEarnings: 'Actual earnings of ',\n\t\t\tearningSurprise: ', a {surprise} of ',\n\t\t\tpriceEarnings1: '{symbol}\\'s price {priceDirection} ',\n\t\t\tpriceEarnings2: ' {daysAfter}',\n\t\t\tpriceEarnings3: '{date} announcement.',\n\t\t\tearningEstimate1: 'The consensus long term growth estimate is ',\n\t\t\tearningEstimate2: ' with a high estimate of ',\n\t\t\tearningEstimate3: ' and a low estimate of ',\n\t\t\tearningEstimate4: ' with {numOfAnalysts} analysts reporting.',\n\t\t\trose: 'rose',\n\t\t\tfell: 'fell',\n\t\t\tpositiveSurprise: ' a positive surprise of ',\n\t\t\tnegativeSurprise: ' a negative surprise of ',\n\t\t\tnoAnaylystOpinions: 'There are no analyst opinions available for the selected time period.',\n\t\t\tearningsAnnouncement: 'The next earnings announcement from {symbol} has not been released.',\n\t\t\texceededExp: 'exceeded expectations',\n\t\t\tmissedExp: 'missed expectations',\n\t\t\tstockEarningsChartTooltip: 'Select a quarter or year for more information',\n\t\t\testimatesLabel: 'Estimates',\n\t\t\tqtrEarningsChartCaption: '{quarter} FY {year} estimates',\n\t\t\tyrEarningsChartCaption: 'FY {year} estimates',\n\t\t\tearningsChartCaptionSr: '{quarter} FY {year} data based on previous chart selection',\n\n\t\t\t// Dividend Information (Distribution Information)\n\t\t\tlatestXdDate: 'Latest XD date',\n\t\t\tdividendTaxationCode: 'Dividend taxation code',\n\t\t\tdistributionInformationMF: 'Distribution Information',\n\t\t\tnoDistributionInformation: 'No distribution information available',\n\t\t\tupdatedAsOf: 'Updated as of',\n\n\t\t\t// Lipper Leader Ratings\n\t\t\tlipperLeaderRatings: 'Lipper leaders ratings',\n\t\t\tlipperLeaderTooltip: 'Scores for Total Return reflect fund historic total return performance relative to peers. Scores for Consistent Return reflect fund historical risk-adjusted returns relative to peers. Lipper scores for Preservation are relative, rather than absolute. Lipper Leader scores DO NOT take into account the effects of sales charges. Overall Scores are based on an equal-weighted average of percentile ranks for each measure over 3-, 5-, and 10-year periods (if applicable).',\n\t\t\toverallRating: 'Overall rating',\n\t\t\toverallRatingDescription: 'Morningstar\\'s proprietary rating system ranks ETFs according to their risk-adjusted performance. The Overall rating is a weighted average of the ETF\\'s three-, five- and ten-year rating. ETFs are rated on a star system: 5 stars is the highest ranking; 1 star is the lowest.',\n\t\t\t'3YearRating': '3 year rating',\n\t\t\t'5YearRating': '5 year rating',\n\t\t\t'10YearRating': '10 year rating',\n\t\t\ttotalReturn: 'Total return',\n\t\t\tconsistentReturn: 'Consistent rating',\n\t\t\tpreservation: 'Preservation',\n\t\t\tlipperLeaderKey: 'Lipper Leaders Key',\n\t\t\tlipperLogoAlt: 'Refinitiv Lipper Leaders are rated on a scale of 5, the highest, to 1, the lowest',\n\t\t\tlipperLeaderContent1: 'The Lipper Leader Rating System is a tool kit that helps guide you in selecting funds that suit your investment styles and goals.',\n\t\t\tlipperLeaderContent2: 'The Lipper Leader Rating System uses your criteria to deliver a simple, clear description of a fund\\'s success in meeting certain goals, such as preserving capital or building wealth through consistent, strong returns.',\n\t\t\tlipperLeaderCaption: 'Lipper Leaders are rated on a scale of 5, the highest, to 1, the lowest',\n\n\t\t\t// Fund Distribution Chart\n\t\t\tincomeDistributionbyDollar: 'Income distributions by dollar',\n\t\t\tsumofCalendarYear: 'Sum of calendar years {year1} to {year2}',\n\t\t\tfundUpdateDisclaimer: 'Fund and index performance data (unless otherwise noted) updated as of {updateDate}. Fund size (total net asset) data updated as of {updateDate}. All other data, including Lipper Leader information, updated as of {updateDate} unless otherwise noted.',\n\n\t\t\t// Compare ETF section\n\t\t\tcompareEtf: 'Compare ETFs',\n\t\t\tfindAndCompare: 'Find and compare up to 4 ETFs',\n\t\t\t'52-WeekRange': '52-Week Range',\n\t\t\tavg10Day: 'Avg. volume (10-day)',\n\t\t\tetfObjective: 'Objective',\n\t\t\tannualReturns: 'Annualized returns',\n\t\t\tcalendarYearReturnsSr: 'Calendar year returns data to follow',\n\t\t\tannualReturnsSr: 'Annualized returns data to follow',\n\t\t\tetfSimilarTo: 'ETFs similar to ',\n\t\t\t'1yearRisk': '1 year',\n\t\t\t'1yearRiskSr': '1 year risk data to follow ',\n\t\t\t'3yrRisk': '3 year',\n\t\t\t'3yearRiskSr': '3 year risk data to follow ',\n\t\t\t'5yrRisk': '5 year',\n\t\t\t'5yearRiskSr': '5 year risk data to follow',\n\t\t\t'10yrRisk': '10 year',\n\t\t\t'10yearRiskSr': '10 year risk data to follow ',\n\t\t\tAlpha: 'Alpha',\n\t\t\tBeta: 'Beta',\n\t\t\tRSquared: 'R-squared',\n\t\t\tpremiumDiscount3Month: 'Premium/discount (3 month)',\n\t\t\tnumOfDaysPremium: 'No. of days at premium',\n\t\t\tnumOfDaysNAV: 'No. of days at NAV',\n\t\t\tnumOfDaysDiscount: 'No. of days at discount',\n\t\t\tnumOfDays5Pct: 'No. of days within +/- 0.5% of NAV',\n\t\t\toverAll: 'Overall',\n\t\t\tsector: 'Sector',\n\t\t\tassetAllocSr: 'Asset allocation data to follow',\n\t\t\tglobalExposureSr: 'Global exposure data to follow',\n\t\t\tsectorSr: 'Sector data to follow',\n\t\t\tholdingsSr: 'Holdings data to follow',\n\t\t\tfindSimilarEtfs: 'Find similar ETFs',\n\t\t\tsimilarEtfTooltipIntro: 'To find similar ETFs, we begin by identifying ETFs from the same Morningstar Category. We then create a total score for each by prioritizing (in order) those with:',\n\t\t\tsimilarEtfTooltipPoint1: '1) the closest 3 Year RSquared Ratio to the Primary Morningstar Index',\n\t\t\tsimilarEtfTooltipPoint2: '2) the highest Sharpe Ratio',\n\t\t\tsimilarEtfTooltipPoint3: '3) the lowest Expense Ratio',\n\t\t\tsimilarEtfTooltipConclusion: 'ETFs with the best total score are considered the most similar.',\n\t\t\toverallRatingSr: 'Overall Morningstar rating data to follow',\n\t\t\t'3yearRatingSr': '3 year Morningstar rating data to follow',\n\t\t\t'5yearRatingSr': '5 year Morningstar rating data to follow',\n\t\t\t'10yearRatingSr': '10 year Morningstar rating data to follow',\n\t\t\tnoDataForETF: 'No data is available for this ETF.',\n\t\t\ttopSectors: 'Top sectors',\n\t\t\tcanadian: 'Canadian',\n\t\t\tunitedStates: 'United States',\n\t\t\tMSDRegionUnitedStates: 'Region United States',\n\t\t\tcompareWarningText: 'Your Compare tab is currently populated with ETFs. “OK” will replace them with the ETFs you’ve selected here. “Cancel” will return you to the current page without making any changes.',\n\n\t\t\t// Alerts\n\t\t\tmanageAlerts: 'Manage alerts',\n\t\t\tmarketAlert: 'Market alert',\n\t\t\tmarketAlerts: 'Market alerts',\n\t\t\tmarketAlertsDescription: 'Market alerts provide user-defined updates sent at designated times or based on specific triggering events.',\n\t\t\tmodifyMarketAlerts: 'Modify market alerts',\n\t\t\texchange: 'Exchange',\n\t\t\texchangeTradedFunds: 'Exchange traded funds (ETFs)',\n\t\t\tdailyListOfMostActiveStocks: 'Daily list of most active stocks',\n\t\t\ttoBeSentAt: 'To be sent at ',\n\t\t\tpercentage: 'Percentage',\n\t\t\tgainers: 'Gainers',\n\t\t\tlosers: 'Losers',\n\t\t\tgainersAndLosers: 'Gainers and losers',\n\t\t\ttimeframe1024: 'Market open 10-11 EST',\n\t\t\ttimeframe4096: 'Midday 12-1 EST',\n\t\t\ttimeframe65536: 'After market close 4-5 EST',\n\t\t\tdailyListOf52week: 'Daily list of new 52-week highs/lows',\n\t\t\tnew52week: 'New 52-week',\n\t\t\thighs: 'Highs',\n\t\t\tlows: 'Lows',\n\t\t\thighsAndLows: 'Highs and lows',\n\t\t\thighAndLow: 'High and low',\n\t\t\tdailyListOfVolumeChanges: 'Daily list of volume changes',\n\t\t\tstocksWithTheLargest: 'Stocks with the largest ',\n\t\t\tincreases: 'Increases',\n\t\t\tdecreases: 'Decreases',\n\t\t\tincreasesAndDecreases: 'Increases and decreases ',\n\t\t\tdailyListOfGaps: 'Daily list of gaps',\n\t\t\tstocksThatOpenedAtLeast: 'Stocks that opened at least 1%',\n\t\t\thigher: 'Higher',\n\t\t\tlower: 'Lower',\n\t\t\thigherAndLower: 'Higher and lower',\n\t\t\tdailyListOfBreakouts: 'Daily list of breakouts',\n\t\t\tstocksWhose: 'Stocks whose',\n\t\t\tlowPriceAboveYesterdaysHigh: 'Low price is above yesterday’s high',\n\t\t\thighPriceAboveYesterdaysLow: 'High price was above yesterday’s low',\n\t\t\tlowHighPriceAboveBelowYesterdaysHighLow: 'Low/high price is above/below yesterdays high/low',\n\t\t\tdailyListOfStockSplits: 'Daily list of stock splits',\n\t\t\tpleaseNoteAlert: 'Please note',\n\t\t\tnoEmailProvidedModal: 'No email address has been provided to receive alerts. Any alerts created will not be sent out.',\n\t\t\tnoEmailProvidedModalPrefs: 'You have removed all email addresses to receive alerts. Saved alerts will not be deleted but cannot be sent until at least one email address is provided.',\n\t\t\tsetEmailAlerts: 'Set email alerts',\n\t\t\ttsx: 'TSX',\n\t\t\ttsxVenture: 'TSX Venture',\n\t\t\tnyse: 'NYSE',\n\t\t\tnasdaq: 'NASDAQ',\n\t\t\tamex: 'AMEX',\n\t\t\taddAlert: 'Add alert',\n\t\t\tstockAlerts: 'Stock alerts',\n\t\t\tstockAlertsFor: 'Stock alerts for {symbol}',\n\t\t\tpriceAndVolumeAlerts: 'Price and volume alerts',\n\t\t\tpriceDropsBelow: 'Price drops below',\n\t\t\torRisesAbove: 'or rises above',\n\t\t\tpriceDropPoint: 'Price drop point',\n\t\t\tpriceRisePoint: 'Price rise point',\n\t\t\tpriceGap: 'Price gap',\n\t\t\tatOpeningTrade: 'at opening trade',\n\t\t\tdropDownOptions: 'Drop down options:',\n\t\t\tgapUp: 'Up',\n\t\t\tgapDown: 'Down',\n\t\t\tlastPriceAlert: 'Last price:',\n\t\t\tpeRatioAlert: 'P/E ratio',\n\t\t\tpeDropPoint: 'P/E drop point',\n\t\t\tpeRisePoint: 'P/E rise point',\n\t\t\treachesANew52Weekp1: 'Reaches a new 52-week',\n\t\t\treachesANew52Weekp2: '',\n\t\t\tsymbolIsOfIts52WeekHighOfOn: '{symbol} is {percent} of its 52-week high of {high52Week} on {date}',\n\t\t\t'52WeekValue': '52-week value',\n\t\t\tpriceChange1Week: 'Price chg 1 week',\n\t\t\tpriceChange4Week: 'Price chg 1 month',\n\t\t\tpriceChanges: 'Price changes',\n\t\t\tfromPreviousClose: 'from previous close',\n\t\t\tcloseOnDate: '({previousClose} on {date})',\n\t\t\tpriceChangeValue: 'Price change value',\n\t\t\tcrossed: 'crossed',\n\t\t\tcrossesIts: 'Crosses its',\n\t\t\tmovingAverage: 'moving average',\n\t\t\tcrossesItsMovingAverage: 'Crosses its {30 day} moving average',\n\t\t\tmovingAverageValue: 'Moving average value',\n\t\t\t'15day': '15 day',\n\t\t\t'30day': '30 day',\n\t\t\t'60day': '60 day',\n\t\t\tchangesAlert: 'Changes',\n\t\t\tfasterThanThe: 'faster than the',\n\t\t\toverTheLast: 'over the last',\n\t\t\tchangeValue: 'Change value',\n\t\t\tmarketAlertLabel: 'Market',\n\t\t\tspTsxComposite: 'S&P/TSX Composite',\n\t\t\tdjia: 'DJIA',\n\t\t\tchangePeriod: 'Change period',\n\t\t\ttradingVolumeExceeds10DayAverageBy: 'Trading volume exceeds 10 day average by',\n\t\t\ttradingVolumeExceeds10DayAverageBy2: '',\n\t\t\trsiOverBoughtSold: 'RSI over bought/sold',\n\t\t\trsiUnderBoughtSold: 'RSI under bought/sold',\n\t\t\tstockSplitAnnounced: 'Stock split announced',\n\t\t\tearningEstimates: 'Earning estimates',\n\t\t\tquarterlyEarningsEstimatesAnnounced: 'Quarterly earnings estimates announced',\n\t\t\tannualEarningsEstimatesAnnounced: 'Annual earnings estimates announced',\n\t\t\tmostRecentDate: '(Most recent: {date})',\n\t\t\tnewsAlerts: 'News alerts',\n\t\t\tnewsStoriesFromReuters: 'News stories from Reuters',\n\t\t\tinDepthStories: '(In-depth stories, breaking news and analysis by email)',\n\t\t\tanalystReportsAlerts: 'Analyst reports alerts',\n\t\t\tanalystReportsForAllProviders: 'Analyst reports for all providers',\n\t\t\tcompanyBasedAnalystSearch: '(Company-based analyst research)',\n\t\t\tpleaseSetTheLowPrice: 'Please set the low price less than the current quote price.',\n\t\t\tpleaseSetTheHighPrice: 'Please set the high price greater than the current quote price',\n\t\t\tpleaseSetTheLowPe: 'Please set the low P/E field less than the current P/E',\n\t\t\tpleaseSetTheHighPe: 'Please set the high P/E field greater than the current P/E',\n\t\t\tpleaseInputValues: 'Please input values for the selected alert.',\n\t\t\teditMarketAlert: 'Edit {name} from markets tab',\n\t\t\teditStockAlert: 'Edit {name} from stocks tab',\n\t\t\tdeleteAlert: 'Delete {name}',\n\t\t\tpeDropsBelow: 'P/E drops below',\n\t\t\tinputValueToContinue: 'Please input values for the selected alert.',\n\t\t\t// Market alert description\n\t\t\talert_52: 'Daily List of Most Active Stock Gainers',\n\t\t\talert_53: 'Daily List of Most Active Stock Losers',\n\t\t\talert_56: 'Daily List of Most Active Stock Gainers and Losers',\n\t\t\talert_57: 'Daily List of New 52-week Highs',\n\t\t\talert_58: 'Daily List of New 52-week Lows',\n\t\t\talert_65: 'Daily List of New 52-week Highs and Lows',\n\t\t\talert_66: 'Daily List of Volume Increases',\n\t\t\talert_86: 'Daily List of Volume Decreases',\n\t\t\talert_87: 'Daily List of Volume Increases or Decreases',\n\t\t\talert_88: 'Daily List of Gaps (Higher)',\n\t\t\talert_89: 'Daily List of Gaps (Lower)',\n\t\t\talert_90: 'Daily List of Gaps (Higher or Lower)',\n\t\t\talert_91: 'Daily List of Breakouts (Low Price is Above Yesterday\\'s High)',\n\t\t\talert_92: 'Daily List of Breakouts (High Price was Below Yesterday\\'s Low)',\n\t\t\talert_93: 'Daily List of Breakouts (Low/High Price is Above/Below Yesterday\\'s High/Low)',\n\t\t\talert_289: 'Daily List of Stock Splits',\n\n\t\t\t// Stock alert descriptions\n\t\t\talert_1: 'Price drops below {price}',\n\t\t\talert_2: 'Price rises above {price}',\n\t\t\talert_3: 'Reaches a new 52-week high',\n\t\t\talert_4: 'Reaches a new 52-week low',\n\t\t\talert_5: 'Reaches a new 52-week high or low',\n\t\t\talert_6: 'Price changes from Prior Close +/- {pricePercentChange}',\n\t\t\talert_49: 'P/E drops below {peLimit}',\n\t\t\talert_50: 'P/E rises above {peLimit}',\n\t\t\talert_168: 'News Stories from Reuters',\n\t\t\talert_201: 'RSI over bought/sold',\n\t\t\talert_202: 'RSI under bought/sold',\n\t\t\talert_309: 'Earnings Estimates (Annual)',\n\t\t\talert_310: 'Earnings Estimates (Quarterly)',\n\t\t\talert_311: 'Earnings Estimates (Quarterly or Annual)',\n\t\t\talert_376: 'Stock Split is announced',\n\t\t\talert_381: 'Price crosses Moving Average',\n\t\t\talert_430: 'Trading volume exceeds 10 day average by {percent}',\n\t\t\talert_434: 'Price gap down at opening trade',\n\t\t\talert_435: 'Price gap up at opening trade',\n\t\t\talert_436: 'Price rises or falls {percentChange} faster than the {index} over the last {days} days',\n\n\t\t\t// Upgrades & Downgrades\n\t\t\tupgrades: 'Upgrades',\n\t\t\tupgradesSr: 'Show upgrades in accompanying table',\n\t\t\tupgradesAndDowngrades: 'Upgrades and Downgrades',\n\t\t\tdowngrades: 'Downgrades',\n\t\t\tdowngradesSr: 'Show downgrades in accompanying table',\n\t\t\tnumOfUpgrades: '# of upgrades',\n\t\t\tnumOfDowngrades: '# of downgrades',\n\t\t\tnumOfTotalViews: '# of total views',\n\t\t\tpctUpgrades: '% upgraded',\n\t\t\tpctDowngrades: '% downgraded',\n\t\t\tconsensusRating: 'consensus rating',\n\t\t\tanalystsViews: 'Analyst views (in the last 4 weeks)',\n\t\t\tupgradesBtnSr: 'Show upgrades in accompanying table',\n\t\t\tdowngradesBtnSr: 'Show downgrades in accompanying table ',\n\n\t\t\t// Screener\n\t\t\tselectAllSr: 'Select all to include all criteria in the accompanying list',\n\t\t\tselectCustomSr: 'Select custom to choose your criteria from the accompanying list',\n\t\t\tselectAllSrIndustry: 'Select all to include all criteria in the accompanying list. Industry criteria is based on the previous Sector criteria selection.',\n\t\t\tholdControlKeyToSelect: 'Hold the Ctrl key to select multiple options',\n\t\t\tMSDDomicileCountry: 'Country',\n\t\t\tMSDCIBCETFType: 'Fund type',\n\t\t\tincludeStandardETFs: 'Include standard ETFs',\n\t\t\tincludeLeveragedETFs: 'Include leveraged ETFs',\n\t\t\tincludeInverseETFs: 'Include inverse ETFs',\n\t\t\tMSDMorningstarCategoryName: 'Fund category',\n\t\t\tcustom: 'Custom',\n\t\t\taddCriteriaToStart: 'Add the criteria to start a custom ETF search.',\n\t\t\tcriteria: 'Criteria',\n\t\t\tminimizeCriteria: 'Minimize criteria selection',\n\t\t\texpandCriteria: 'Expand criteria selection',\n\t\t\tcriteriaMatches: 'Criteria matches',\n\t\t\tscreenMatches: 'Screen matches',\n\t\t\tremoveCriteriaCategory: 'Remove criteria category',\n\t\t\tresetCriteria: 'Reset criteria',\n\t\t\tresetAllCriteria: 'Reset All criteria',\n\t\t\tcanadaEquity: 'Canada equity',\n\t\t\taddCriteriaToStartACustomSearch: 'Add the criteria to start a custom ETF search.',\n\t\t\tshowCriteriaMatchesToolTip: '

Show criteria matches

When you select a dropdown option from a specific criteria choice, the Show criteria matches column will display the number of ETFs available for that selection only. The displayed number is not affected by any other criteria choices you make.

The Screen matches column displays the cumulative results of all criteria selected.

',\n\t\t\tbottom20: 'Bottom 20%',\n\t\t\tbelowAvg20: 'Below avg 20%',\n\t\t\tavg20: 'Avg 20%',\n\t\t\taboveAvg20: 'Above avg 20%',\n\t\t\ttop20: 'Top 20%',\n\t\t\tfrom: 'From',\n\t\t\teventDate: 'Event date',\n\t\t\tSTXOverSMA15SMA50: 'Moving avg x-over (15-day SMA/50-day SMA)',\n\t\t\tmovingAverageOver: 'Moving avg x-over ({over}-day {overType}/ {under}-day {underType})',\n\t\t\tmovingAverageOverNone: 'Moving avg x-over',\n\t\t\tcurrentlyAbove52WeekHigh: 'Currently trading above its previous 52-week high',\n\t\t\tnew52WeekLow: 'Currently trading below its previous 52-week low',\n\t\t\tgreaterThanEqualTo: 'Greater than or equal to',\n\t\t\tgreaterThanSymbolVariable: '> {number}',\n\t\t\tgreaterThanEqualToSymbolVariable: '>= {number}',\n\t\t\tlessThanEqualTo: 'Less than or equal to',\n\t\t\tlessThanSymbolVariable: '< {number}',\n\t\t\tbetween: 'Between',\n\t\t\tand: ' and ',\n\t\t\tspecificRange: 'Specific range: ',\n\t\t\tspecificRangeSRPerformance: 'Select the basic ranges radio button to choose values, or the specific range radio button to enter a value or values.',\n\t\t\tnonNumericError: 'Please enter numeric characters only.',\n\t\t\tfundStructureTooltip: '

Fund Structure
An ETF can be classified as a standard, leverage or inverse.

Leveraged ETF
Leveraged ETFs use financial derivatives to amplify the returns of an underlying index or basket of securities on a daily basis. These ETFs should be traded with caution and are intended for advanced traders with an in-depth understanding of the associated risks.

Inverse ETF
Inverse ETFs are designed to benefit from price movements opposite to that of the underlying index of basket of securities.

',\n\t\t\texchangeCountryTooltip: 'All criteria dollar values are processed using the selected country’s native currency.',\n\t\t\tremoveSymbol: 'Remove {symbol} from criteria',\n\t\t\tremoveAllCriteria: 'Remove All Criteria',\n\t\t\tglobalHoldingSR: 'Select a region, then choose either the basic ranges radio button to select values, or the specific range radio button to enter a value or values.',\n\t\t\tregion: 'Region',\n\t\t\tasia: 'Asia',\n\t\t\tMSDRegionAsia: 'Region Asia',\n\t\t\teurope: 'Europe',\n\t\t\tMSDRegionEurope: 'Region Europe',\n\t\t\tsectors: 'Sector',\n\t\t\tyourResults: 'Your results',\n\t\t\tstandard: 'Standard',\n\t\t\tleveraged: 'Leveraged',\n\t\t\tinverse: 'Inverse',\n\t\t\tbullish: 'Bullish',\n\t\t\tbearish: 'Bearish',\n\t\t\tasOfDatPreviousDayMonthEnd: 'Market data is of previous day\\'s close. All other data as of previous month end',\n\t\t\tstartACustomScreenWithTheseCriteria: 'Start a custom screen with these criteria',\n\t\t\tsaveScreen: 'Save screen',\n\t\t\tsaveAsNewScreen: 'Save as new screen',\n\t\t\tsaveScreener: 'Save screener',\n\t\t\tenterScreenName: 'Enter screen name',\n\t\t\tnameMustNotbeMoreThan22: 'The screener name can’t be more than 22 characters. ',\n\t\t\tdescriptionLongerThan100: 'The description can’t be more than 100 characters.',\n\t\t\tdeleteScreen: 'Delete screen',\n\t\t\tdoYouWantToDeleteScreen: 'Do you want to delete this screen?',\n\t\t\tnameFieldMustBe3Characters: 'The screener name field needs to be at least three characters.',\n\t\t\tthisNameAlreadyExists: 'This name already exists in your saved screens.',\n\t\t\toverYourSavedSCreenLimit: 'You are over your saved screen limit. Please delete a saved screen before attempting to save a new one.',\n\t\t\tcompareSelectedEtfs: 'Compare the ETFs you have selected from the accompanying table.',\n\t\t\terror: 'Error',\n\t\t\tSTRSIPeriod2: '2-day RSI',\n\t\t\tSTRSIPeriod14: '14-day RSI',\n\t\t\tSTRSIPeriod20: '20-day RSI',\n\t\t\treviewFundSnapshot: 'Review {symbol} snapshot',\n\t\t\tpleaseSelectCompareSymbols: 'Please select symbol(s) to compare.',\n\t\t\tyouCanOnlySelect4: 'You can only select up to 4 symbols to compare.',\n\t\t\tpreScreeners: 'Prescreeners',\n\t\t\tsavedScreeners: 'Saved screeners',\n\t\t\tsaveSearch: 'Save search',\n\t\t\tsaveSearchSrOnly: 'Save search in a new dialogue',\n\t\t\tstockScreenMatches: '{results} matches',\n\t\t\tsectorCurrency: 'Sector/currency',\n\t\t\tyearChange: '1 year change',\n\t\t\tstockCriteria: 'Stock criteria',\n\t\t\texpandStockCriteria: 'Expand stock criteria',\n\t\t\tminimizeStockCriteria: 'Minimize stock criteria ',\n\t\t\tcanadaLowPEStocks_desc: 'Canadian stocks with low price-to-earnings ratios (PE ratio)',\n\t\t\tusLowPEStocks_desc: 'US stocks with low price-to-earnings ratios (PE ratio) ',\n\t\t\tcanadaValueStocks_desc: 'Canadian large cap stocks with a higher return on equity',\n\t\t\tusValueStocks_desc: 'US large cap stocks with a higher return on equity',\n\t\t\tcumulativeMatches: 'Cumulative matches:',\n\t\t\tpayoutRatioPercent: 'Payout ratio (%)',\n\t\t\tdividendYieldPercent: 'Dividend yield (%)',\n\t\t\tpriceEarningRatio: 'Price/earning ratio',\n\t\t\tgrowthRate5yearEps: 'Growth-rate/5 year EPS',\n\t\t\trevenueMillions: 'Revenue ($ Mill)',\n\t\t\troePercent: 'ROE (%)',\n\t\t\troaPercent: 'ROA (%)',\n\t\t\tnetProfitMargin: 'Net profit margin',\n\t\t\tgreaterThan: 'Greater than',\n\t\t\tlessThan: 'Less than',\n\t\t\tminimizeFundamentals: 'Minimize fundamentals criteria',\n\t\t\texpandFundamentals: 'Expand fundamentals criteria',\n\t\t\tyear1: '1 year',\n\t\t\ttwoYears: '2 years',\n\t\t\treutersConsensusEstimates: 'Refinitiv I/B/E/S consensus and estimates',\n\t\t\tminimizeReutersConsensusEstimates: 'Minimize Refinitiv I/B/E/S criteria',\n\t\t\texpandReutersConsensusEstimates: 'Expand Refinitiv I/B/E/S criteria',\n\t\t\trecommendations: 'Recommendations',\n\t\t\tannualRevenueInMillions: 'Annual revenue ($ Mill)',\n\t\t\ttwoYearSingularEnglishOnly: '2 year',\n\t\t\tthreeYearSingularEnglishOnly: '3 year',\n\t\t\tfiveYearSingularEnglishOnly: '5 year',\n\t\t\ttenYearSingularEnglishOnly: '10 year',\n\t\t\tannualEarningsPerShare: 'Annual earnings per share ($)',\n\t\t\tquarterlyRevenue: 'Quarterly revenue ($ Mill)',\n\t\t\tquarterlyEarningsPerShare: 'Quarterly earnings per share ($)',\n\t\t\t'1qtr': '1 qtr',\n\t\t\t'2qtr': '2 qtr',\n\t\t\t'3qtr': '3 qtr',\n\t\t\t'5qtr': '5 qtr',\n\t\t\t'10qtr': '10 qtr',\n\n\t\t\t// Keywords search tooltip content\n\t\t\tkeywordSearchHeading: 'Enhanced Pre-Defined Keyword Searches',\n\t\t\tkeywordSearchDescription: 'Using the Advanced Search page, users now can filter Keyword Searches by choosing a radio button to match \"Exact Phrase\", \"All Keywords\" or \"Any Keywords.\"',\n\t\t\tkeywordSearchP1: '\"Exact Phrase\" searches perform keyword searches for matches where all words are included in consecutive order. For example, a search for New Economy with the Exact Phrase button selected would only return results where the phrase New Economy is included.',\n\t\t\tkeywordSearchP2: '\"All Keywords\" searches perform searches for documents where all words included in the keyword search are included in the document, but not necessarily in consecutive order. Thus, a search for New Economy with the All Keywords button selected would return any results where both of the words New and Economy are included anywhere in the document.',\n\t\t\tkeywordSearchP3: '\"Any Keywords\" searches perform searches for documents where any words included in the keyword search are included in the document. Thus, a search for New Economy with the Any Keywords button selected would return any results where either the word New or Economy are included anywhere in the document',\n\t\t\tkeywordSearchP4: 'By selecting the button labelled \"Search Headlines Only\", you can limit any one of these searches to the documents\\' headlines only.',\n\t\t\tkeywordSearchP5: 'How these pre-defined searches work:',\n\t\t\tkeywordSearchTable1H1: 'Keyword Criterion',\n\t\t\tkeywordSearchTable1H2: 'Searches for',\n\t\t\tkeywordSearchTable1H3: 'Results',\n\t\t\tkeywordSearchTable1R1C1: 'Exact phrase',\n\t\t\tkeywordSearchTable1R1C2: 'New Economy',\n\t\t\tkeywordSearchTable1R1C3: 'Only documents with the phrase New Economy included',\n\t\t\tkeywordSearchTable1R2C1: 'All keywords',\n\t\t\tkeywordSearchTable1R2C3: 'Only documents with both New and Economy included',\n\t\t\tkeywordSearchTable1R3C1: 'Any keywords',\n\t\t\tkeywordSearchTable1R3C3: 'Only documents with either New or Economy included',\n\t\t\tadditionalKeywordSearchHeading: 'Additional Keyword Search Examples',\n\t\t\tadditionalKeywordSearchDescription: 'For greater specificity of keyword searches not provided with the standard interface, users can search for combinations of words or phrases using added Boolean logic. For example, if you want to find documents that contain the phrase \"annual report\" and \"balance sheet\", you can type',\n\t\t\tadditionalKeywordSearchP1: '\"annual report\" & \"balance sheet\"',\n\t\t\tadditionalKeywordSearchP2: 'in the keywords search field. Notice the quotation marks -- they indicate that the entire phrase is the search object, not the individual words. The searches for',\n\t\t\tadditionalKeywordSearchP3: 'paper clip',\n\t\t\tadditionalKeywordSearchP4: 'and',\n\t\t\tadditionalKeywordSearchP5: '\"paper clip\"',\n\t\t\tadditionalKeywordSearchP6: 'return different results. The first query returns documents that have either the word \"paper\" or the word \"clip\" in them. The second returns only documents that have the phrase \"paper clip\" in them.',\n\t\t\tadditionalKeywordSearchP7: 'Examples of how to construct more complex searches:',\n\t\t\tkeywordSearchTable2H1: 'Typing in the text...',\n\t\t\tkeywordSearchTable2H2: 'Will retrieve documents containing...',\n\t\t\tkeywordSearchTable2R1C1: 'DEC',\n\t\t\tkeywordSearchTable2R1C2: '...DEC, dec, Dec, etc.',\n\t\t\tkeywordSearchTable2R2C1_1: 'DEC & IBM',\n\t\t\tkeywordSearchTable2R2C1_2: 'or',\n\t\t\tkeywordSearchTable2R2C1_3: 'DEC and IBM',\n\t\t\tkeywordSearchTable2R2C2: '...both DEC and IBM.',\n\t\t\tkeywordSearchTable2R3C1_1: 'DEC | IBM',\n\t\t\tkeywordSearchTable2R3C1_2: 'or',\n\t\t\tkeywordSearchTable2R3C1_3: 'DEC or IBM',\n\t\t\tkeywordSearchTable2R3C2: '...either DEC or IBM.',\n\t\t\tkeywordSearchTable2R4C1: 'DEC IBM',\n\t\t\tkeywordSearchTable2R4C2: '...either DEC or IBM.',\n\t\t\tkeywordSearchTable2R5C1: 'DEC & IBM | GE',\n\t\t\tkeywordSearchTable2R5C2: '...either both DEC and IBM, or GE.',\n\t\t\tkeywordSearchTable2R6C1: 'DEC & ( IBM | GE )',\n\t\t\tkeywordSearchTable2R6C2: '...both DEC and either IBM or GE.',\n\t\t\tkeywordSearchTable2R7C1: '\"annual report\"',\n\t\t\tkeywordSearchTable2R7C2: '...the phrase \"annual report\".',\n\t\t\tkeywordSearchTable2R8C1: 'annual report',\n\t\t\tkeywordSearchTable2R8C2: '...either \"annual\" or \"report\".',\n\t\t\tkeywordSearchTable2R9C1: 'software & \"annual reports\"',\n\t\t\tkeywordSearchTable2R9C2: '...both the word software and the phrase annual reports.',\n\t\t\tkeywordSearchTable2R10C1: 'software & ^ spreadsheet',\n\t\t\tkeywordSearchTable2R10C2: '...software but not spreadsheet.',\n\t\t\tkeywordSearchTable2R11C1: 'Java &^ (coffee | Indonesia)',\n\t\t\tkeywordSearchTable2R11C2: '...java but not coffee or Indonesia.',\n\t\t\tkeywordSearchTable2R12C1: 'Coca-Cola near/5 PepsiCo',\n\t\t\tkeywordSearchTable2R12C2: '...Coca-Cola no more than 5 characters away from PepsiCo.',\n\t\t\tkeywordSearchTable2R13C1: 'Coca-Cola near PepsiCo. (Note: without a number of characters then it will default to 64 characters).',\n\t\t\tkeywordSearchTable2R13C2: '...Coca-Cola near PepsiCo.',\n\t\t\tkeywordSearchTable2R14C1: 'mer*',\n\t\t\tkeywordSearchTable2R14C2: '...mer, Merrill, merry, etc. The \"*\" stands for any number of letters at the end of the word.',\n\t\t\tkeywordSearchTable2R15C1: 'm?cro',\n\t\t\tkeywordSearchTable2R15C2: '...micro, macro, m3cro, etc. The \"?\" stands for any one letter or digit.',\n\t\t\tkeywordSearchTable2R16C1: 'Jane\\'s >',\n\t\t\tkeywordSearchTable2R16C2: '...Jane\\'s. The apostrophe is not treated like a single quote.',\n\t\t\tkeywordSearchTable2R17C1: '\"news of the day\"',\n\t\t\tkeywordSearchTable2R17C2: '...the phrases \"news of the day\", \"news of day\", \"news day\". Words like \"of\", \"the\", \"and\", \"in\" are excluded from the search.',\n\t\t\tkeywordSearchTable2R18C1: '\"news & day\"',\n\t\t\tkeywordSearchTable2R18C2: '...the phrases \"news & day\", \"news day\", \"news day\". Special characters (not letters or numbers) are regarded as interchangeable.',\n\n\t\t\t// -- START Industries --\n\t\t\tAdvertising: 'Advertising',\n\t\t\tAerospace: 'Aerospace',\n\t\t\t'Aerospace & Defense': 'Aerospace & defense',\n\t\t\t'Agricultural Crop Production': 'Agricultural crop production',\n\t\t\t'Agricultural Livestock': 'Agricultural livestock',\n\t\t\tAgriculture: 'Agriculture',\n\t\t\t'Agricultural Chemicals': 'Agricultural chemicals',\n\t\t\t'Airlines/Air Freight': 'Airlines/air freight',\n\t\t\t'Apparel, Footwear & Accessories': 'Apparel, footwear & accessories',\n\t\t\t'Appliances & Electronics': 'Appliances & electronics',\n\t\t\t'Auto Parts': 'Auto parts',\n\t\t\t'Autos & Auto Parts': 'Autos & auto parts',\n\t\t\t'Autos- Manufacturing': 'Autos manufacturing',\n\t\t\tBanking: 'Banking',\n\t\t\t'Banking & Savings': 'Banking & savings',\n\t\t\tBeverages: 'Beverages',\n\t\t\tBiotechnology: 'Biotechnology',\n\t\t\t'Brokers & Intermediaries': 'Brokers & intermediaries',\n\t\t\tBuilders: 'Builders',\n\t\t\t'Business Services': 'Business services',\n\t\t\tChemicals: 'Chemicals',\n\t\t\t'Commercial Services & Supplies': 'Commercial services & supplies',\n\t\t\tCommunications: 'Communications',\n\t\t\t'Computer Hardware & Equipment': 'Computer hardware & equipment',\n\t\t\t'Construction Materials': 'Construction materials',\n\t\t\t'Construction Services': 'Construction services',\n\t\t\t'Consumer Goods': 'Consumer goods',\n\t\t\t'Consumer Products': 'Consumer products',\n\t\t\t'Consumer Services': 'Consumer services',\n\t\t\t'Containers & Packaging': 'Containers & packaging',\n\t\t\t'Credit & Lending': 'Credit & lending',\n\t\t\tDefense: 'Defense',\n\t\t\t'Diagnostic & Health Related Services': 'Diagnostic & health related services',\n\t\t\t'Diversified Chemicals': 'Diversified chemicals',\n\t\t\t'Educational Services': 'Educational services',\n\t\t\t'Electric Utilities': 'Electric utilities',\n\t\t\t'Electrical Equipment': 'Electrical equipment',\n\t\t\t'Electronic Instruments & Related Products': 'Electronic instruments & related products',\n\t\t\tEnergy: 'Energy',\n\t\t\tEntertainment: 'Entertainment',\n\t\t\t'Equipment & Services': 'Equipment & services',\n\t\t\tETFs: 'ETFs',\n\t\t\t'Finance Intermediaries & Services': 'Finance intermediaries & services',\n\t\t\tFinancials: 'Financials',\n\t\t\t'Fishing & Gaming': 'Fishing & gaming',\n\t\t\tFood: 'Food',\n\t\t\t'Food & Beverage': 'Food & beverage',\n\t\t\tForestry: 'Forestry',\n\t\t\tFurniture: 'Furniture',\n\t\t\t'Gas Utilities': 'Gas utilities',\n\t\t\t'General Insurance': 'General insurance',\n\t\t\t'Health Care': 'Health care',\n\t\t\t'Health Care Equipment': 'Health care equipment',\n\t\t\t'Health Care Services': 'Health care services',\n\t\t\t'Holding and other Investment Offices': 'Holding and other Investment Offices',\n\t\t\t'Hospitals & Health Care Facilities': 'Hospitals & health care facilities',\n\t\t\t'Hotels, Restaurants & Travel': 'Hotels, restaurants & travel',\n\t\t\t'Household & Personal Products': 'Household & personal products',\n\t\t\t'Household Appliances, Electronics & Goods': 'Household appliances, electronics & goods',\n\t\t\t'Industrial Machinery & Equipment': 'Industrial machinery & equipment',\n\t\t\tIndustrials: 'Industrials',\n\t\t\tInsurance: 'Insurance',\n\t\t\t'Internet & Software': 'Internet & software',\n\t\t\t'Investments & Brokers': 'Investments & brokers',\n\t\t\t'IT & Communications': 'IT & communications',\n\t\t\t'IT Hardware': 'IT hardware',\n\t\t\t'IT Services': 'IT services',\n\t\t\t'IT Services & Software': 'IT services & software',\n\t\t\t'Leisure Equipment': 'Leisure equipment',\n\t\t\t'Life & Health': 'Life & health',\n\t\t\tMachinery: 'Machinery',\n\t\t\tManufacturing: 'Manufacturing',\n\t\t\tMaterials: 'Materials',\n\t\t\tMedia: 'Media',\n\t\t\t'Medical Instruments & Equipment': 'Medical instruments & equipment',\n\t\t\t'Metal Products': 'Metal products',\n\t\t\t'Metals & Mining': 'Metals & mining',\n\t\t\tMining: 'Mining',\n\t\t\tMiscellaneous: 'Miscellaneous',\n\t\t\t'Miscellaneous Consumer Goods': 'Miscellaneous consumer goods',\n\t\t\t'Miscellaneous Consumer Services': 'Miscellaneous consumer services',\n\t\t\t'Miscellaneous Transportation Services': 'Miscellaneous transportation services',\n\t\t\tmiscellaneouseducationalserviceproviders: 'Miscellaneous Educational Services Providers',\n\t\t\t'Non-Precious Metals': 'Non-precious metals',\n\t\t\t'Office Equipment & Furniture': 'Office equipment & furniture',\n\t\t\t'Oil & Gas': 'Oil & gas',\n\t\t\t'Oil Royalty Traders': 'Oil royalty traders',\n\t\t\t'Paper & Forest Products': 'Paper & forest products',\n\t\t\t'Patent Owners & Lessors': 'Patent owners & lessors',\n\t\t\tPeripherals: 'Peripherals',\n\t\t\tPharmaceuticals: 'Pharmaceuticals',\n\t\t\t'Pharmaceuticals & Biotechnology': 'Pharmaceuticals & biotechnology',\n\t\t\tPlastics: 'Plastics',\n\t\t\t'Precious Metals': 'Precious metals',\n\t\t\tPrinting: 'Printing',\n\t\t\t'Production & Extraction': 'Production & extraction',\n\t\t\t'Property, Real Estate & Development': 'Property, real estate & development',\n\t\t\tPublishing: 'Publishing',\n\t\t\t'Radio & Television': 'Radio & television',\n\t\t\tRail: 'Rail',\n\t\t\t'Real Estate': 'Real estate',\n\t\t\t'Refining & Marketing': 'Refining & marketing',\n\t\t\tREITs: 'REITs',\n\t\t\tRetail: 'Retail',\n\t\t\t'Retail - Apparel and Accessories': 'Retail - apparel and accessories',\n\t\t\t'Retail - Appliances and Electronics': 'Retail - appliances and electronics',\n\t\t\t'Retail - Automotive': 'Retail - automotive',\n\t\t\t'Retail - Food & Beverage, Drug & Tobacco': 'Retail - food & beverage, drug & tobacco',\n\t\t\t'Retail - Furniture & Home Furnishings': 'Retail - furniture & home furnishings',\n\t\t\t'Retail - General Merchandise/Department Stores': 'Retail - general merchandise/department stores',\n\t\t\t'Retail - Hardware & Home Improvement': 'Retail - hardware & home improvement',\n\t\t\t'Retail - Specialty': 'Retail - specialty',\n\t\t\t'Rubber Products': 'Rubber products',\n\t\t\t'Sanitation Services': 'Sanitation services',\n\t\t\tSemiconductors: 'Semiconductors',\n\t\t\tServices: 'Services',\n\t\t\tShipping: 'Shipping',\n\t\t\t'Specialty Chemicals': 'Specialty chemicals',\n\t\t\t'Sporting & Recreational': 'Sporting & recreational',\n\t\t\t'Synthetic Materials': 'Synthetic materials',\n\t\t\tTextiles: 'Textiles',\n\t\t\t'Textiles & Apparel': 'Textiles & apparel',\n\t\t\tTobacco: 'Tobacco',\n\t\t\t'Tobacco Products': 'Tobacco products',\n\t\t\tTransport: 'Transport',\n\t\t\tTrucking: 'Trucking',\n\t\t\tUtilities: 'Utilities',\n\t\t\t'Venture Capital': 'Venture capital',\n\t\t\t'Water Utilities': 'Water utilities',\n\t\t\t'Wealth Management': 'Wealth management',\n\t\t\t// -- END Industries --\n\t\t\tscreenDescription: 'Screener description',\n\t\t\trenameScreenerSr: 'Rename screener open dialogue',\n\t\t\teditScreenerSr: 'Edit screener open dialogue',\n\t\t\tdeleteScreenerSr: 'Delete screener open dialogue',\n\t\t\tcustomSearchResults: 'Search results',\n\t\t\teditScreener: 'Edit Screener',\n\t\t\tcibcPreScreens: 'CIBC prescreens',\n\t\t\treviewPrescreens: 'Review prescreens',\n\n\t\t\t// Fund Screener\n\t\t\tcibcSeriesD: 'CIBC Series D',\n\t\t\tcibcSeriesDDescription: 'A list of CIBC series D mutual funds',\n\t\t\tcibcMutualFunds: 'CIBC mutual funds',\n\t\t\tcibcMutualFundsDescription: 'A list of CIBC mutual funds',\n\t\t\trenaissance: 'Renaissance',\n\t\t\trenaissanceDescription: 'A list of Renaissance mutual funds',\n\t\t\taxiomFunds: 'Axiom',\n\t\t\taxiomFundsDescription: 'A list of Axiom mutual funds',\n\n\t\t\ttechnicalAnalysisAndRisk: 'Technical analysis and risk',\n\t\t\t'1mo': '1 mo',\n\t\t\t'3mo': '3 mo',\n\t\t\t'1yr': '1 yr',\n\t\t\t'3yr': '3 yr',\n\t\t\tPriceBookRatio: 'Price/book ratio',\n\t\t\talpha3Yr: 'Alpha (3 yr)',\n\t\t\tbeta3Yr: 'Beta (3 yr)',\n\t\t\tinformationRatio: 'Information ratio',\n\t\t\tannulaizedStdDev: 'Annualized std dev',\n\t\t\tconsistentReturnLiteral: 'Consistent return',\n\t\t\tcustomizeScreenerAction: 'Customize screener',\n\t\t\tfundTypes: 'Fund types',\n\t\t\tadditionalFundAttributes: 'Additional fund attributes',\n\t\t\tscreenNameLabel: 'Screen name',\n\t\t\tscreenerList: 'Screener list',\n\t\t\t// begin stock screener industries\n\t\t\t// -- Begin Academic & Education services\n\t\t\t'academic&educationalservices': 'Academic & Educational Services',\n\t\t\tprofessionalbusinesseducation: 'Professional Business Education',\n\t\t\tschoolcollegeuniversity: 'School College University',\n\t\t\t// -- End Academic..\n\t\t\t// -- Begin Industries - BASIC Materials\n\t\t\tagriculturalchemicals: 'Agricultural chemicals',\n\t\t\taluminum: 'Aluminum',\n\t\t\tcommoditychemicals: 'Commodity Chemicals',\n\t\t\tconstructionmaterials: 'Construction Materials',\n\t\t\tdiversifiedchemicals: 'Diversified Chemicals',\n\t\t\tdiversifiedmining: 'Diversified Mining',\n\t\t\tforestwoodproducts: 'Forest & Wood Products',\n\t\t\tminingsupportservicesequipment: 'Mining support services equipment',\n\t\t\tnongoldpreciousmetalsminerals: 'Non Gold Precious Metal Minerals',\n\t\t\tnonpapercontainerspackaging: 'Non paper containers packaging',\n\t\t\tpaperpackaging: 'Paper packaging',\n\t\t\tpaperproducts: 'Paper products',\n\t\t\tspecialtychemicals: 'Specialty chemicals',\n\t\t\tchemicalmanufacturing: 'Chemical manufacturing',\n\t\t\tchemicalsplasticrubber: 'Chemicals – plastic & rubber',\n\t\t\tcontainerspackaging: 'Containers & packaging',\n\t\t\tfabricatedplasticrubber: 'Fabricated plastic & rubber',\n\t\t\tforestrywoodproducts: 'Forestry & wood products',\n\t\t\tgoldsilver: 'Gold & silver',\n\t\t\tironsteel: 'Iron & steel',\n\t\t\tmetalmining: 'Metal mining',\n\t\t\tmiscfabricatedproducts: 'Misc. fabricated products',\n\t\t\tnonmetallicmining: 'Non-metallic mining',\n\t\t\tpaperpaperproducts: 'Paper & paper products',\n\t\t\tspecialtyminingmetals: 'Specialty mining metals',\n\t\t\t// -- End Basic materials\n\t\t\t// -- Begin Capital Goods\n\t\t\taerospacedefense: 'Aerospace & defense',\n\t\t\tconstragricmachinery: 'Constr. – agric. machinery ',\n\t\t\tconstrsuppliesfixtures: 'Constr. – supplies & fixtures',\n\t\t\tconstructionrawmaterials: 'Construction – raw materials',\n\t\t\tconstructionservices: 'Construction services',\n\t\t\tmisccapitalgoods: 'Misc. capital goods',\n\t\t\tmobilehomesrvs: 'Mobile homes & RVs',\n\t\t\t// -- End Capital Goods\n\t\t\t// -- Begin Consumers cyclical\n\t\t\tapparelaccessories: 'Apparel/accessories',\n\t\t\tapparelaccessoriesretailers: 'Apparel accessories retailers',\n\t\t\tappliancetool: 'Appliance & tool',\n\t\t\tappliancestoolshousewares: 'Appliances tools housewares',\n\t\t\taudiovideoequipment: 'Audio & video equipment',\n\t\t\tautotruckmanufacturers: 'Auto & truck manufacturers',\n\t\t\tautotruckparts: 'Auto & truck parts',\n\t\t\tautotruckmotorcycleparts: 'Auto truck motorcyle parts',\n\t\t\tautovehiclespartsserviceretailers: 'Auto vehical parts service retailers',\n\t\t\tadvertisingmarketing: 'Advertising marketing',\n\t\t\tcomputerelectronicsretailers: 'Computer & electronics retailers',\n\t\t\tconstructionsuppliesfixtures: 'Construction supplies & fixtures',\n\t\t\tconsumerpublishing: 'Consumer publishing',\n\t\t\tdepartmentstores: 'Department stores',\n\t\t\tdiscountstores: 'Discount stores',\n\t\t\tentertainmentproduction: 'Entertainment production',\n\t\t\tfootwear: 'Footwear',\n\t\t\tfurniturefixtures: 'Furniture & fixtures',\n\t\t\thomebuilding: 'Home building',\n\t\t\thomefurnishings: 'Home furnishings',\n\t\t\thomefurnishingsretailers: 'Home furnishings retailers',\n\t\t\thomeimprovementproductsservicesretailers: 'Home Improvement Products & Services Retailers',\n\t\t\thotelsmotelscruiselines: 'Hotels, Motels & CruiseLines',\n\t\t\tjewelrysilverware: 'Jewelry & silverware',\n\t\t\tleisurerecreation: 'Leisure & Recreation',\n\t\t\totherspecialtyretailers: 'Other Specialty Retailers',\n\t\t\tphotography: 'Photography',\n\t\t\trecreationalproducts: 'Recreational products',\n\t\t\trestaurantsbars: 'Restaurants & bars',\n\t\t\ttextilenonapparel: 'Textile – non apparel',\n\t\t\ttextilesleathergoods: 'Textiles & Leather Goods',\n\t\t\ttires: 'Tires',\n\t\t\ttiresrubberproducts: 'Tires & Rubber products',\n\t\t\ttoysjuvenileproducts: 'Toys & Juvenile Products',\n\t\t\t// -- End Conusmers cyclical\n\t\t\t// -- Begin Consumer non-cyclical\n\t\t\tbeveragesalcoholic: 'Beverages (alcoholic)',\n\t\t\tbeveragesnonalcoholic: 'Beverages (non-alcoholic)',\n\t\t\tbrewers: 'Brewers',\n\t\t\tcrops: 'Crops',\n\t\t\tconsumergoodsconglomerates: 'Consumer Goods Conglomerates',\n\t\t\tdistillerswineries: 'Distillers wineries',\n\t\t\tdrugretailers: 'Drug retailers',\n\t\t\tfishlivestock: 'Fish/livestock',\n\t\t\tfishingfarming: 'Fishing & Farming',\n\t\t\tfoodprocessing: 'Food processing',\n\t\t\tfoodretaildistribution: 'Food Retail & Distribution',\n\t\t\thouseholdproducts: 'Household Products',\n\t\t\tnonalcoholicbeverages: 'Non-Alcoholic Beverages',\n\t\t\tofficesupplies: 'Office supplies',\n\t\t\tpersonalproducts: 'Personal Products',\n\t\t\tpersonalhouseholdprods: 'Personal & household prods.',\n\t\t\t// -- End Consumer non-cyclical\n\t\t\t// -- Begin Energy\n\t\t\tcoal: 'Coal',\n\t\t\tintegratedoilgas: 'Integrated Oil & Gas',\n\t\t\toilgasdrilling: 'Oil & gas drilling',\n\t\t\toilgasexplorationandproduction: ' Oil & Gas Exploration and Production',\n\t\t\toilgasintegrated: 'Oil & gas - integrated',\n\t\t\toilgasoperations: 'Oil & gas operations',\n\t\t\toilgasrefiningandmarketing: 'Oil & Gas Refining and Marketing',\n\t\t\toilwellservicesequipment: 'Oil well services & equipment',\n\t\t\toilgastransportationservices: 'Oil & Gas Transportation Services',\n\t\t\toilrelatedservicesandequipment: 'Oil Related Services and Equipment',\n\t\t\trenewableenergyequipmentservices: 'Renewable Energy Equipment',\n\t\t\trenewablefuels: 'Renewable Fuels',\n\t\t\t// -- End Energy\n\t\t\t// -- Begin Financial\n\t\t\tconsumerfinancialservices: 'Consumer financial services',\n\t\t\tinsuranceaccidenthealth: 'Insurance (accident & health)',\n\t\t\tinsurancelife: 'Insurance (life)',\n\t\t\tinsurancemiscellaneous: 'Insurance (miscellaneous)',\n\t\t\tinsurancepropcasualty: 'Insurance (prop. & casualty)',\n\t\t\tinvestmentservices: 'Investment services',\n\t\t\tmiscfinancialservices: 'Misc. financial services',\n\t\t\tmoneycentrebanks: 'Money centre banks',\n\t\t\tregionalbanks: 'Regional banks',\n\t\t\tslssavingsbanks: 'S&Ls/savings banks',\n\t\t\tclosedendfunds: 'Closed End Funds',\n\t\t\tconsumerlending: 'Consumer Lending',\n\t\t\tcorporatefinancialservices: 'Corporate Financial Services',\n\t\t\tdiversifiedinvestmentservices: 'Diversified Investment Services',\n\t\t\tfinancialcommoditymarketoperators: 'Financial & Commodity Market Operators',\n\t\t\tinvestmentbankingbrokerageservices: 'Investment Banking & Brokerage Services',\n\t\t\tinvestmentholdingcompanies: 'Investment Holding Companies',\n\t\t\tinvestmentmanagementfundoperators: 'Investment Management & Fund Operators',\n\t\t\tinvestmenttrusts: 'Investment Trusts',\n\t\t\tlifehealthinsurance: 'Life & Health Insurance',\n\t\t\tmutualfunds: 'Mutual funds',\n\t\t\tmultilineinsurancebrokers: 'Multiline Insurance & Brokers',\n\t\t\tpropertycasualtyinsurance: 'Property & Casualty Insurance',\n\t\t\treinsurance: 'Reinsurance',\n\t\t\t// -- End Financials\n\t\t\t// -- Begin Healthcare\n\t\t\tbiotechnologydrugs: 'Biotechnology & drugs',\n\t\t\thealthcarefacilities: 'Healthcare facilities',\n\t\t\tmajordrugs: 'Major drugs',\n\t\t\tmedicalequipmentsupplies: 'Medical equipment & supplies',\n\t\t\tadvancedmedicalequipmenttechnology: 'Advanced Medical Equipment & Technology',\n\t\t\tbiotechnologymedicalresearch: 'Biotechnology & Medical Research',\n\t\t\thealthcarefacilitiesservices: 'Healthcare Facilities & Services',\n\t\t\tmanagedhealthcare: 'Managed Health care',\n\t\t\tmedicalequipmentsuppliesdistribution: 'Medical Equipment, Supplies & Distribution',\n\t\t\tpharmaceuticals: 'Pharmaceuticals',\n\t\t\t// -- End Healthcare\n\t\t\t// -- Begin Services\n\t\t\tadvertising: 'Advertising',\n\t\t\tbroadcastingcabletv: 'Broadcasting & cable TV',\n\t\t\tbroadcasting: 'Broadcasting',\n\t\t\tbusinessservices: 'Business services',\n\t\t\tcasinosgaming: 'Casinos & gaming',\n\t\t\tcommunicationsservices: 'Communications services',\n\t\t\thotelsmotels: 'Hotels & motels',\n\t\t\tmotionpictures: 'Motion pictures',\n\t\t\tpersonalservices: 'Personal services',\n\t\t\tprintingpublishing: 'Printing & publishing',\n\t\t\tprintingservices: 'Printing services',\n\t\t\trealestateoperations: 'Real estate operations',\n\t\t\trecreationalactivities: 'Recreational activities ',\n\t\t\trentalleasing: 'Rental & leasing',\n\t\t\trestaurants: 'Restaurants',\n\t\t\tretailapparel: 'Retail (apparel)',\n\t\t\tretailcatalogmailorder: 'Retail (catalog & mail order)',\n\t\t\tretaildepartmentdiscount: 'Retail (department & discount)',\n\t\t\tretaildrugs: 'Retail (drugs)',\n\t\t\tretailgrocery: 'Retail (grocery)',\n\t\t\tretailhomeimprovement: 'Retail (home improvement)',\n\t\t\tretailspeciality: 'Retail (speciality)',\n\t\t\tretailtechnology: 'Retail (technology)',\n\t\t\tschools: 'Schools',\n\t\t\tsecuritysystemsservices: 'Security systems & services',\n\t\t\twastemanagementservices: 'Waste management services',\n\t\t\t// -- End Services\n\t\t\t// -- Begin Industrials\n\t\t\tairfreightlogistics: 'Air Freight & Logistics',\n\t\t\tairlines: 'Airlines',\n\t\t\tairportservices: 'Airport Services',\n\t\t\tbusinesssupportservices: 'Business Support Services',\n\t\t\tbusinesssupportsupplies: 'Business Support Supplies',\n\t\t\tcommercialprintingservices: 'Commercial Printing Services',\n\t\t\tconstructionengineering: 'Construction & Engineering',\n\t\t\tdiversifiedindustrialgoodswholesale: 'Diversified Industrial Goods Wholesale',\n\t\t\telectricalcomponentsequipment: 'Electrical Components & Equipment',\n\t\t\temploymentservices: 'Employment Services',\n\t\t\tenvironmentalservicesequipment: 'Environmental Services & Equipment',\n\t\t\tgroundfreightlogistics: 'Ground Freight & Logistics',\n\t\t\theavyelectricalequipment: 'Heavy Electrical Equipment',\n\t\t\theavymachineryvehicles: 'Heavy Machinery & Vehicles',\n\t\t\thighwaysrailtracks: 'Highways & Rail Tracks',\n\t\t\tindustrialmachineryequipment: 'Industrial Machinery & Equipment',\n\t\t\tmarinefreightlogistics: 'Marine Freight & Logistics',\n\t\t\tmarineportservices: 'MarinePortServices',\n\t\t\tpassengertransportationgroundsea: 'Passenger Transportation, Ground & Sea',\n\t\t\tprofessionalinformationservices: 'Professional Information Services',\n\t\t\tshipbuilding: 'Ship building',\n\t\t\t// -- End Industrials\n\t\t\t// -- Begin Technology\n\t\t\tcommunicationsequipment: 'Communications equipment',\n\t\t\tcomputerhardware: 'Computer hardware',\n\t\t\tcomputernetworks: 'Computer networks',\n\t\t\tcomputerperipherals: 'Computer peripherals',\n\t\t\tcomputerservices: 'Computer services',\n\t\t\tcomputerstoragedevices: 'Computer storage devices',\n\t\t\telectronicinstrcontrols: 'Electronic instr. & controls',\n\t\t\tofficeequipment: 'Office equipment',\n\t\t\tscientifictechnicalinstr: 'Scientific & technical instr.',\n\t\t\tsemiconductors: 'Semiconductors ',\n\t\t\tsoftwareprogramming: 'Software & programming',\n\t\t\tblockchaincryptocurrency: 'Block chain & Cryptocurrency',\n\t\t\tcommunicationsnetworking: 'Communications & Networking',\n\t\t\telectronicequipmentparts: 'Electronic Equipment & Parts',\n\t\t\tfinancialtechnologyfintech: 'Financial Technology(Fintech)',\n\t\t\thouseholdelectronics: 'Household Electronics',\n\t\t\tintegratedhardwaresoftware: 'Integrated Hardware & Software',\n\t\t\tintegratedtelecommunicationsservices: 'Integrated Telecommunications Services',\n\t\t\tinternetservices: 'Internet Services',\n\t\t\titservicesconsulting: 'IT Services & Consulting',\n\t\t\tmiscellaneousfintechinfrastructure: 'Miscellaneous Fintech Infrastructure',\n\t\t\tphoneshandhelddevices: 'Phones & Handheld Devices',\n\t\t\tsemiconductorequipmenttesting: ' Semiconductor,Equipment & Testing',\n\t\t\tsoftware: 'Software',\n\t\t\twirelesstelecommunicationsservices: 'Wireless Telecommunications Services',\n\t\t\t// -- End Technology\n\t\t\t// -- Begin Real estate\n\t\t\tcommercialreits: 'Commercial REITs',\n\t\t\tdiversifiedreits: 'Diversified REITs',\n\t\t\trealestatedevelopmentoperations: 'Real Estate Development & Operations',\n\t\t\trealestateservices: 'Real Estate Services',\n\t\t\tresidentialreits: 'Residential REITs',\n\t\t\tspecializedreits: 'SpecializedREITs',\n\t\t\t// -- End Real estate\n\t\t\t// -- Begin Transportation\n\t\t\taircourier: 'Air courier',\n\t\t\tairline: 'Airline',\n\t\t\tmisctransportation: 'Misc. transportation',\n\t\t\trailroads: 'Railroads',\n\t\t\ttrucking: 'Trucking',\n\t\t\twatertransportation: 'Water transportation',\n\t\t\t// -- End Transportation\n\t\t\t// -- Begin Utilities\n\t\t\telectricutilities: 'Electric utilities',\n\t\t\tnaturalgasutilities: 'Natural gas utilities',\n\t\t\twaterutilities: 'Water utilities',\n\t\t\tindependentpowerproducers: 'Independent Power Producers',\n\t\t\tmultilineutilities: 'Multiline Utilities',\n\t\t\t// -- End Utilities\n\t\t\tsearchByKeywords: 'Search by keywords',\n\t\t\tselectSources: 'Select sources',\n\t\t\tselectIndustries: 'Select industries',\n\t\t\tindustrySection: 'Industry',\n\t\t\t// end stock screener industries\n\t\t\ttrue: 'True',\n\t\t\tfalse: 'False',\n\t\t\teditCriteria: 'Edit Criteria',\n\t\t\trenameScreen: 'Rename screen',\n\t\t\tallFundFamilies: 'All fund families',\n\t\t\tallEtfTypes: 'All ETF types',\n\t\t\tbrowseByEtf: 'Browse by ETF',\n\t\t\treportPdf: 'Report (PDF)',\n\t\t\tsourceCriterion: 'Source criterion',\n\t\t\tindustryCriterion: 'Industry criterion',\n\t\t\tcustomSearchResultsFor: 'Custom search results for {searchName}',\n\t\t\tthereAreNoSavedSearches: 'There are no saved searches.',\n\t\t\tnewAdvancedSearch: 'New advanced search',\n\t\t\tsavedAnalystReportsSearchButtonSR: '{searchName} reports displayed in accompanying table',\n\t\t\tdeleteSearch: 'Delete search',\n\t\t\teditSearchInNewDialog: 'Edit {searchName} search in a new dialogue',\n\t\t\trenameSearchInNewDialog: 'Rename {searchName} search in a new dialogue',\n\t\t\teditSavedSearch: 'Edit {searchName} search',\n\t\t\trenameSearch: 'Rename search',\n\t\t\tdeleteSavedSearch: 'Delete saved search',\n\t\t\tdoYouWantToDelete: 'Do you want to delete this saved search?',\n\t\t\teditCustomSearchName: 'Edit custom search name',\n\t\t\tsaveCustomSearch: 'Save custom search',\n\t\t\tcustomSearchNameOver32: 'Custom search names cannot exceed 32 characters.',\n\t\t\tsetAlert: 'Set alert',\n\t\t\tsetAlertSr: 'Set {searchName} alert',\n\t\t\tanalystReportAlertsHeader: 'Analyst report alerts',\n\t\t\trecieveDailyEmail: 'Receive a daily email alert of the latest analyst reports based on specific search criteria.',\n\t\t\tsetAnalystReportAlerts: 'Set analyst report alerts',\n\t\t\tsavedSearch: 'Saved search',\n\t\t\tsavedSearchResults: '{searchName} search results',\n\t\t\talreadySearchingSymbol: 'This symbol is already in the list',\n\t\t\tnoResultsFoundPleaseChooseDiff: 'No results found. Please choose different search criteria.',\n\t\t\tnameExistsAlready: 'There is already a saved search with that name. Please rename.',\n\t\t\tsaveAsNewSearch: 'Save as new search',\n\t\t\tsearchName: 'Search name',\n\t\t\tequityFunds: 'Equity funds',\n\t\t\tmixedEquityFunds: 'Mixed equity funds',\n\t\t\tfixedIncomeFunds: 'Fixed income funds',\n\t\t\tmoneyMarketFunds: 'Money Market funds',\n\t\t\tbondFunds: 'Bond funds',\n\t\t\trealEstateFunds: 'Real estate funds',\n\t\t\totherFunds: 'Other funds ',\n\t\t\tLFFundType: 'Fund types',\n\t\t\tLFAssetType: 'Asset type',\n\t\t\tLFFundPromotor: 'Fund promoter',\n\t\t\tLFLipperClassification: 'Fund category',\n\t\t\tLFTotalReturns1m: 'Performance amounts (%)',\n\t\t\tlessThanZero: '< 0%',\n\t\t\tzeroToFive: '0-5%',\n\t\t\tfiveToTen: '5-10%',\n\t\t\ttenToFifteen: '10-15%',\n\t\t\tgreaterThanFifteen: '15%+',\n\t\t\ttimePeriod: 'Time period',\n\t\t\t'<$1K': '<$1K',\n\t\t\t'$1K-2K': '$1K-2K',\n\t\t\t'$2K-10K': '$2K-10K',\n\t\t\t'>$10K': '>$10K',\n\t\t\tminimumInitialInvestmentScreener: 'Minimum initial investment',\n\t\t\t'<$100M': '< $100M',\n\t\t\t'$100M-500M': '$100M-500M',\n\t\t\t'$500M-1B': '$500M-1B',\n\t\t\t'$1B+': '$1B+',\n\t\t\tmgmtExpenseRatio: 'Management Expense Ratio',\n\t\t\t'0-1%': '0-1%',\n\t\t\t'1-2%': '1-2%',\n\t\t\t'2-3%': '2-3%',\n\t\t\t'3-4%': '3-4%',\n\t\t\t'4%+': '4%+',\n\t\t\tLFLoadType: 'Load types',\n\t\t\tnoLoad: 'No Load',\n\t\t\tfront: 'Front',\n\t\t\tback: 'Back',\n\t\t\tlevel: 'Level',\n\t\t\toriginalAmount: 'Original amount',\n\t\t\tmarketValueLabel: 'Market value',\n\t\t\tnoSavedScreeners: 'You currently do not have any saved screeners.',\n\t\t\tcreateNewScreener: 'Create a new screener.',\n\t\t\treviewScreener: 'Review screeners',\n\t\t\tminimizeFundTypeCriteria: 'Minimize fund type criteria',\n\t\t\texpandFundTypeCriteria: 'Expand fund type criteria',\n\t\t\tlipperInstructions: 'Choose the Lipper Leader rating from the accompanying categories that match your investment goals. You can make multiple selections.',\n\t\t\tPreservationCriteria: 'Preservation',\n\t\t\tLFNoLoad: 'No Load',\n\t\t\tLFFrontLoad: 'Front',\n\t\t\tLFBackLoad: 'Back',\n\t\t\tLFLevelLoad: 'Level',\n\t\t\tLFDeferredLoadOrigAmt: 'Original amount',\n\t\t\tLFDeferredLoadMktValue: 'Market value',\n\t\t\tequalTo: 'Equal to',\n\t\t\tanotherDifferentTranslationOfAll: 'All',\n\t\t\ttotalNetAssetsScreener: 'Total net assets',\n\t\t\tminimizeTotalReturnPerformance: 'Minimize total return performance criteria',\n\t\t\texpandTotalReturnPerformance: 'Expand total return performance criteria ',\n\t\t\tscreenerTotalReturnPerformance: 'Total return performance',\n\t\t\tminimizeAdditionalFund: 'Minimize additional fund attributes criteria',\n\t\t\texpandAdditionalFund: 'Expand additional fund attributes criteria',\n\t\t\tminimizeLipperCriteria: 'Minimize Lipper Leader ratings criteria',\n\t\t\texpandLipperCriteria: 'Expand Lipper Leader ratings criteria',\n\t\t\tlipperLeaderRatingsScreener: 'Lipper Leader ratings',\n\t\t\tcanadianMFs: 'Canadian Mutual Funds',\n\t\t\tcanadianETFs: 'Canadian ETFs',\n\t\t\tusETFs: 'US ETFs',\n\t\t\tpageIsLoading: 'Page is loading',\n\t\t\t// WebDrawer Top Holdings\n\t\t\ttop5Holdings: 'Top 5 holdings',\n\t\t\ttop5HoldingsTooltip: 'Top holdings are assets held within a portfolio with the greatest weighting.',\n\t\t\tentity: 'Entity',\n\t\t\tshowSectorHoldings: 'Show sector holdings',\n\t\t\tshowEntityHoldings: 'Show entity holdings',\n\t\t\t// Account Holdinfs\n\t\t\taccountHoldings: {\n\t\t\t\tbuy: 'Buy',\n\t\t\t\thold: 'Hold',\n\t\t\t\tsell: 'Sell'\n\t\t\t}\n\t\t}\n\t},\n\tfr: {\n\t\tlocale: 'French',\n\t\tmessages: {\n\t\t\t'': '',\n\t\t\t'1d': '1j',\n\t\t\t'1dHidden': '1 jour',\n\t\t\t'1week': '1 semaine',\n\t\t\t'1m': '1m',\n\t\t\t'1month': '1 mois',\n\t\t\t'1monthPct': '1 month %',\n\t\t\t'1monthReturn': 'Rendement sur 1 mois',\n\t\t\t'1monthReturnDescription': 'Rendement total d\\'un FCB tenant compte de la variation du cours et des distributions réinvesties au cours d\\'une période d\\'un mois.',\n\t\t\t'1star': '1 étoile',\n\t\t\t'2days': '2 jours',\n\t\t\t'2months': '2 mois',\n\t\t\t'2stars': '2 étoiles',\n\t\t\t'3stars': '3 étoiles',\n\t\t\t'4stars': '4 étoiles',\n\t\t\t'5d': '5j',\n\t\t\t'5days': '5 jours',\n\t\t\t'5dHidden': '5 jours',\n\t\t\t'5stars': '5 étoiles',\n\t\t\t'3m': '3m',\n\t\t\t'3month': '3 mois',\n\t\t\t'3monthPct': '3 month %',\n\t\t\t'3monthReturn': 'Rendement sur 3 mois',\n\t\t\t'3monthReturnDescription': 'Rendement total d\\'un FCB tenant compte de la variation du cours et des distributions réinvesties au cours d\\'une période de trois mois.',\n\t\t\t'3months': '3 mois',\n\t\t\t'3mHidden': '3 mois',\n\t\t\t'3w': '3s',\n\t\t\t'3wHidden': '3 semaines',\n\t\t\t'1y': '1a',\n\t\t\t'1yHidden': '1 an',\n\t\t\t'1yPct': '1 year %',\n\t\t\t'3yPct': '3 year %',\n\t\t\t'5y': '5a',\n\t\t\t'5yHidden': '5 ans',\n\t\t\t'6m': '6m',\n\t\t\t'6month': '6 mois',\n\t\t\t'6monthReturn': 'Rendement sur 6 mois',\n\t\t\t'6monthReturnDescription': 'Rendement total d\\'un FCB tenant compte de la variation du cours et des distributions réinvesties sur une période de six mois.',\n\t\t\t'6months': '6 mois',\n\t\t\t'3monthPremiumDiscount': 'Prime et escompte des 3 derniers mois',\n\t\t\t'1year': '1 an',\n\t\t\t'1yearReturn': 'Rendement sur 1 an',\n\t\t\t'1yearReturnDescription': 'Rendement total annualisé moyen d\\'un FCB tenant compte de la variation du cours et des distributions réinvesties sur une période d\\'un an.',\n\t\t\t'1yearLower': '1 an',\n\t\t\t'3year': '3 ans',\n\t\t\t'3yearRating': 'Classement 3 ans',\n\t\t\t'3yearRatingDescription': 'Cote de Morningstar fondée sur le rendement ajusté au risque du FCB sur une période de trois ans.',\n\t\t\t'3yearReturn': 'Rendement sur 3 ans',\n\t\t\t'3yearReturnDescription': 'Rendement total annualisé moyen d\\'un FCB tenant compte de la variation du cours et des distributions réinvesties sur une période de trois ans.',\n\t\t\t'3yearReturnRatingDescription': 'Cote de rendement du FCB sur une période de trois ans.',\n\t\t\t'3yearRisk': 'Cote de risque 3 ans',\n\t\t\t'3yearRiskDescription': 'Cote de risque du FCB sur une période de trois ans.',\n\t\t\t'3yearLower': '3 ans',\n\t\t\t'3years': '3 ans',\n\t\t\t'5year': '5 ans',\n\t\t\t'5yearRating': 'Classement 5 ans',\n\t\t\t'5yearRatingDescription': 'Cote de Morningstar fondée sur le rendement ajusté au risque du FCB sur une période de cinq ans.',\n\t\t\t'5yearReturn': 'Rendement sur 5 ans',\n\t\t\t'5yearReturnDescription': 'Rendement total annualisé moyen d\\'un FCB tenant compte de la variation du cours et des distributions réinvesties sur une période de cinq ans.',\n\t\t\t'5yearReturnRatingDescription': 'Cote de rendement du FCB sur une période de cinq ans.',\n\t\t\t'5yearRisk': 'Cote de risque 5 ans',\n\t\t\t'5yearRiskDescription': 'Cote de risque du FCB sur une période de cinq ans.',\n\t\t\t'5yearLower': '5 ans',\n\t\t\t'5years': '5 ans',\n\t\t\t'10year': '10 ans',\n\t\t\t'10yearRating': 'Classement 10 ans',\n\t\t\t'10yearRatingDescription': 'Cote de Morningstar fondée sur le rendement ajusté au risque du FCB sur une période de dix ans.',\n\t\t\t'10yearReturn': 'Rendement sur 10 ans',\n\t\t\t'10yearReturnDescription': 'Rendement total annualisé moyen d\\'un FCB tenant compte de la variation du cours et des distributions réinvesties sur une période de dix ans.',\n\t\t\t'10yearReturnRatingDescription': 'Cote de rendement du FCB sur une période de dix ans.',\n\t\t\t'10yearRisk': 'Cote de risque 10 ans',\n\t\t\t'10yearRiskDescription': 'Cote de risque du FCB sur une période de dix ans.',\n\t\t\t'10yearLower': '10 ans',\n\t\t\t'10years': '10 ans',\n\t\t\t'52WeekRange': 'Période de 52 semaines ',\n\t\t\t'52WeekRangeLowerCase': 'Var. 52 sem.',\n\t\t\t'52WeekRangeSr': 'Fourchette des cours sur 52 semaines entre',\n\t\t\t'52WkRange': '52 Wk Range',\n\t\t\t'52WH': '52 S É',\n\t\t\t'52WL': '52 S F',\n\t\t\t'7days': '7 jours',\n\t\t\t'14days': '14 jours',\n\t\t\t'30days': '30 jours',\n\t\t\t'60days': '60 jours',\n\t\t\t'90days': '90 jours',\n\t\t\t'1WeekReturn': 'Rendement sur 1 semaine',\n\t\t\t'1MonthReturn': 'Rendement sur 1 mois',\n\t\t\t'3MonthReturn': 'Rendement sur 3 mois',\n\t\t\t'6MonthReturn': 'Rendement sur 6 mois',\n\t\t\t'1YearReturn': 'Rendement sur 1 an',\n\t\t\t'3YearReturnAnn': 'Rendement sur 3 ans (annualisé)',\n\t\t\t'3YearsReturn': 'Rendement sur 3 ans',\n\t\t\t'5YearReturnAnn': 'Rendement sur 5 ans (annualisé)',\n\t\t\t'5YearsReturn': 'Rendement sur 5 ans',\n\t\t\t'10YearReturnAnn': 'Rendement sur 10 ans (annualisé)',\n\t\t\t'--': '--',\n\t\t\t__RECENT__: 'Cotes récentes',\n\t\t\t'5StarEquityETFs': 'FNB d\\'actions 5 étoiles',\n\t\t\t'5StarEquityETFs_desc': 'FNB cotés 5 étoiles Morningstar, qui investissent dans des actions canadiennes, américaines et internationales.',\n\t\t\tabove: 'au-dessus de',\n\t\t\taboveAverage: 'Au-dessus de la moyenne',\n\t\t\tabove52WeekHigh: 'Au-dessus du sommet de 52 semaines',\n\t\t\tabove52WeekHighDescription: 'FCB qui ont atteint un nouveau sommet de 52 semaines.',\n\t\t\taccountingChange: 'Accounting Change',\n\t\t\taccountsPayable: 'Accounts Payable',\n\t\t\taccountsReceivable: 'Accounts Receivable',\n\t\t\taccruedExpenses: 'Accrued Expenses',\n\t\t\tacqBusiness: 'Acquisition of Business',\n\t\t\tactionCantBeUndone: 'Cette action est irréversible',\n\t\t\tadvertExpense: 'Advertising Expense',\n\t\t\tadd: 'Ajouter',\n\t\t\taddCriteria: 'Ajouter des critères',\n\t\t\taddCriteriaSRDirections: 'Pour accéder aux catégories de critères, utilisez la touche de tabulation. Pour accéder à chaque catégorie, utilisez la flèche vers la droite. Utilisez les flèches vers le haut et le bas pour parcourir la liste de critères.',\n\t\t\tadditionalPerShare: 'Autres données par action',\n\t\t\taddNewAlert: 'Add New Alert (Enter Symbol)',\n\t\t\taddSelectedToWatchList: 'Add Selected to Watch List',\n\t\t\taddToWatchListAndCloseDialogue: 'Ajouter à la liste de surveillance et fermer la fenêtre de dialogue',\n\t\t\taddToWatchlistSr: 'Ajouter les éléments sélectionnés à la liste de surveillance dans une nouvelle fenêtre de dialogue',\n\t\t\taddToWatchlistSymbolSr: 'jouter {symbol} à la liste de surveillance',\n\t\t\taddOption: 'Add Option',\n\t\t\taddOptionSymbol: 'Ajouter {symbol} à la liste des cotes',\n\t\t\taddOptionSymbolAndGoTo: 'Ajouter {symbol} et aller aux listes de cotes',\n\t\t\taddress: 'Adresse',\n\t\t\taddSymbolsUsingTheSearchAbove: 'Add symbols using the search above.',\n\t\t\taddSymbolsUsingTheSearchAboveOrSelectOpton: 'Add symbols using the search above or select an option below.',\n\t\t\taddToQuoteList: 'Ajouter à la liste des cotes',\n\t\t\taddToWatchList: 'Ajouter à la liste de surveillance',\n\t\t\tAdvanced: 'Avancé',\n\t\t\tadvancedChart: 'Graphique avancé',\n\t\t\tadvancedChartSr: '{symbol} graphique avancé dans une nouvelle boîte de dialogue',\n\t\t\tadvancedChartSrOnly: '{symbol} : graphique avancé dans une nouvelle boîte de dialogue',\n\t\t\t'aerospace&defense': 'Aéronautique et défense',\n\t\t\tage: 'Âge',\n\t\t\talertsAgreement: 'Entente relative aux alertes',\n\t\t\talertsAgreementHidden: 'La version PDF de l’Entente relative aux alertes s’affiche dans un nouvel onglet du navigateur',\n\t\t\talertsPref: 'Alertes préférences',\n\t\t\talertsPrefDisclaimer1: 'Si vous vous abonnez aux alertes en fournissant votre adresse de courriel et en sélectionnant le bouton Enregistrer ci-dessous, vous acceptez d’être lié par les modalités de notre Entente relative aux alertes.',\n\t\t\talertsPrefDisclaimer2: 'En raison de la taille limitée des messages texte, vous pourriez recevoir plusieurs messages texte pour chaque alerte. Les tarifs habituels de messagerie texte peuvent s’appliquer selon l’entente que vous avez avec votre fournisseur.',\n\t\t\talertsPrefEmailNote: 'Les modifications d’adresse de courriel relatives aux alertes techniques ne peuvent être apportées qu’à l’adresse de courriel 1.',\n\t\t\talertsPrefMsg0: 'Vous pouvez recevoir des alertes par courriel et par message texte.',\n\t\t\talertsPrefMsg1: 'Pour configurer une alerte par courriel, vous devez fournir au moins une adresse de courriel. Vous pouvez choisir de recevoir des courriels en format HTML ou Texte.',\n\t\t\talertsPrefMsg2: 'En fournissant votre adresse de courriel et en sélectionnant le bouton Enregistrer ci-dessous, vous acceptez d’être lié par les modalités de notre Entente relative aux alertes. Pour lire cette entente, consultez le lien au bas de la page.',\n\t\t\talertsPrefMsg3: 'Si vous souhaitez recevoir des alertes par message texte, veuillez fournir un numéro de téléphone mobile en plus d’une adresse de courriel.',\n\t\t\talertsPrefMsg4: 'Vous pouvez aussi utiliser l’option d’interruption vacances pour cesser de recevoir des alertes pendant une période donnée.',\n\t\t\talertsPrefMsg5: 'Pour enregistrer vos préférences, sélectionnez le bouton Enregistrer au bas de la page.',\n\t\t\tall: 'Tous',\n\t\t\tallcanada: 'Tous',\n\t\t\tallMarketDisclaimer: 'Les prix des opérations et les cotes ne proviennent pas de tous les marchés.',\n\t\t\tallunitedstates: 'Tous',\n\t\t\tallocation: 'Répartition',\n\t\t\tallowFundsDurConst: 'Allow Funds Used Dur Const',\n\t\t\tallSectors: 'Tous les secteurs',\n\t\t\tallFundType: 'Tous les types de fonds',\n\t\t\tallFundPromoters: 'Tous les promoteurs de fonds',\n\t\t\tallKeywords: 'Tous les mots clés',\n\t\t\talpha: 'Alpha',\n\t\t\talphaYear: 'Alpha ({year} an)',\n\t\t\tanalystConsensus: 'Consensus des analystes',\n\t\t\tanalystConsensusTooltip: 'Le consensus des analystes est fondé sur l’évaluation des analystes côté vendeur pour les 3 derniers mois',\n\t\t\tMSDPrimaryIndexAlphaY1Ptile: 'Alpha (1 an)',\n\t\t\tMSDPrimaryIndexAlphaY3Ptile: 'Alpha (3 an)',\n\t\t\tMSDPrimaryIndexAlphaY5Ptile: 'Alpha (5 an)',\n\t\t\tMSDPrimaryIndexAlphaY10Ptile: 'Alpha (10 an)',\n\t\t\tMSDPrimaryIndexAlphaY1: 'Alpha (1 an)',\n\t\t\tMSDPrimaryIndexAlphaY3: 'Alpha (3 an)',\n\t\t\tMSDPrimaryIndexAlphaY5: 'Alpha (5 an)',\n\t\t\tMSDPrimaryIndexAlphaY10: 'Alpha (10 an)',\n\t\t\talphaDescription: 'L’alpha sur une période d’un an, de trois ans, de cinq ans ou de dix ans représente le rendement excédentaire d’un FNB par rapport au rendement ajusté au risque de son indice de référence sur une période déterminée. L’alpha peut servir à mesurer la valeur ajoutée par le gestionnaire de portefeuille.',\n\t\t\talphaVsCategory: 'Alpha vs. {category}',\n\t\t\talphaVsCategoryTooltip: 'L\\'alpha représente le rendement excédentaire d\\'un FCB par rapport au rendement ajusté au risque de son indice de référence sur une période donnée. L\\'alpha peut servir à mesurer la valeur ajoutée par le gestionnaire de portefeuille.',\n\t\t\talreadyInWatchList: 'Le symbole figure déjà dans cette liste.',\n\t\t\talreadyInWatchList2: '{symbols} are already in your watch list',\n\t\t\talternative: 'Non traditionnels',\n\t\t\talternativeenergy: 'Énergie de remplacement',\n\t\t\tanalystReports: 'Rapports d’analystes',\n\t\t\tanalystReportAlerts: 'La section des alertes liées aux rapports d’analystes n’est pas tout à fait terminée, mais elle le sera bientôt. Une fois que la section sera prête, notre nouveau format amélioré vous permettra de trouver tous les renseignements liés aux alertes que vous avez enregistrés.
Remarque : Les alertes actuelles seront suspendues jusqu’à ce que notre nouveau format soit opérationnel.',\n\t\t\tanalystReportsDisclaimer1: 'Les renseignements sur la recherche de placements que renferme le présent site Web sont généraux. Vous ne devez pas les considérer comme des conseils précis en matière de recherche de placements ni vous y fier à ce sujet.',\n\t\t\tanalystReportsDisclaimer2: 'Les exigences de divulgation en vigueur au Canada ne s’appliquent pas aux rapports de recherche produits par des entités autres que Marchés mondiaux CIBC inc.',\n\t\t\tanalystReportsDisclaimer3: 'Des rapports de recherche imprimés ou électroniques, préparés par Marchés mondiaux CIBC et les divisions CIBC Wood Gundy de Marchés mondiaux CIBC inc., seront offerts simultanément à tous les clients ayant le droit de les recevoir. En règle générale, les documents n’ayant pas trait à des titres en particulier, comme les documents Études économiques et stratégie ou l’indice obligataire, sont offerts au grand public. La plupart des documents qui portent sur des secteurs ou des titres en particulier, comme Fixed Income Research, Equity Research, and Technical & Quantitative Analysis (en anglais seulement), sont considérés comme exclusifs et sont réservés aux destinataires suivants : clients institutionnels, courtiers de détail de Marchés mondiaux CIBC afin qu’ils les distribuent à leurs clients, clients de sociétés affiliées de la Banque CIBC qui ont reçu l’autorisation d’accéder à ces documents en ligne. Le document le plus récent sera diffusé dans le présent site Web, et tous les clients ayant l’autorisation de le recevoir pourront y accéder. Ces documents ne sont destinés qu’aux résidents canadiens.',\n\t\t\tanalysts: 'Analystes',\n\t\t\tanalystRating: 'Notes des analystes',\n\t\t\tanalystReportsPreview: 'La section de recherche personnalisée liée aux rapports d’analystes n’est pas tout à fait terminée, mais elle le sera bientôt. Notre nouveau format amélioré vous permettra de trouver tous les renseignements de recherche personnalisée que vous avez enregistrés.',\n\t\t\tanalystEstimate: 'Estimations d\\'analyste',\n\t\t\tanalystRatingText: 'This is {trendText} from the previous rating of {ratingText} ({rating}). As of {ratingDate}.',\n\t\t\tannualEps: 'RPA annuel',\n\t\t\talertType: 'Type d’alerte',\n\t\t\talertTypeSet: 'Alert type set',\n\t\t\tamortAcqCosts: 'Amortiz of Acquist Costs',\n\t\t\tamortDeferPolicyAcqCosts: 'Amort Defer Policy Acq Csts',\n\t\t\tamortIntangibles: 'Amortization of Intangibles',\n\t\t\tamortization: 'Amortization',\n\t\t\tamortOAcqCosts: 'Amortization of Acq Costs',\n\t\t\tamortOfAcqCosts: 'Amortization of Acq Costs',\n\t\t\tamortOfIntangibles: 'Amortization of Intangibles',\n\t\t\tamortPolicyAcquisitionCost: 'Amort. Of Policy Acquisition Costs',\n\t\t\tannual: 'Annuels',\n\t\t\tannualOption: 'Annuelle',\n\t\t\tsemiannual: 'Semestrielle',\n\t\t\tannualIncomeStatementItem: 'Élément de l’état des résultats annuel',\n\t\t\tannualBalanceSheetItem: 'Élément du bilan annuel',\n\t\t\tannualCashFlowItem: 'Élément des flux de trésorerie annuels',\n\t\t\tannualDividend: 'Dividende annuel',\n\t\t\tannualizedReturnsTooltip: 'Performance de {symbol} au cours de multiples périodes',\n\t\t\tannualizedReturns: 'Rendements annualisés',\n\t\t\tannualPerformance: 'Performance annuelle',\n\t\t\tannualPerformanceChartDataFollows: 'Performance annuelle les données du tableau suivent',\n\t\t\tannualPerformanceData: 'Données de performance annuelle',\n\t\t\tannualized: 'annualisé',\n\t\t\tanyKeywords: 'N’importe quel mot clé',\n\t\t\tapply: 'Appliquer',\n\t\t\tannualizedPerformance: 'Rendement annualisé',\n\t\t\tapplySrOnly: 'Appliquer des filtres de recherche',\n\t\t\tascending: 'Ascending',\n\t\t\tarticleByDate: 'Article de {article}, par date',\n\t\t\task: 'Cours vendeur',\n\t\t\taskLotsSrOnly: 'Lot cours vendeurs',\n\t\t\tasOfMarketClose: 'À la clôture du marché, le',\n\t\t\tasOfPreviousClose: 'À la clôture précédente',\n\t\t\tasOfPreviousClose2: 'À la fermeture des marchés précédente',\n\t\t\tasOfPreviousMonthEnd: 'Les données sont en date de la fin de mois précédente',\n\t\t\tassetAllocation: 'Répartition de l\\'actif',\n\t\t\tassetAllocationInfo: ' Répartition de l\\'actif fondée sur les plus récents renseignements communiqués par Morningstar.',\n\t\t\tasOf: 'En date du',\n\t\t\tdailyMarketAsOf: 'Les marchés le',\n\t\t\taskLots: 'Symbole/société',\n\t\t\taskLotsCapitalization: 'Cours vendeurs/lots',\n\t\t\taskLotsCapitalization2: 'Cours vendeurs/Lots',\n\t\t\taskSharesCapitalization: 'Cours vendeurs/actions',\n\t\t\taskSharesCapitalization2: 'Cours vendeurs/Actions',\n\t\t\tassetClasses: 'Catégories d\\'actif',\n\t\t\tassetClass: 'Catégories d\\'actif',\n\t\t\tannouncementDate: 'Announcement Date',\n\t\t\tassets: 'de l’actif',\n\t\t\t'automobiles&parts': 'Automobiles et pièces',\n\t\t\tavailableWatchlists: 'Available Watchlists',\n\t\t\taverage: 'Moyenne',\n\t\t\taverageCost: 'Coût moyen',\n\t\t\taverageVolume10Day: 'Volume moyen (10 jours)',\n\t\t\taverageVolume10DayDescription: 'Nombre moyen d\\'actions négociées au cours des 10 derniers jours de bourse.',\n\t\t\taccptOutstanding: 'Acceptances Outstanding',\n\t\t\taccruedInvestIncome: 'Accrued Investment Income',\n\t\t\taccumGoodwillAmort: 'Accum. Goodwill Amort.',\n\t\t\taccumIntangibleAmort: 'Accum. Intangible Amort.',\n\t\t\taccumulatedDepletion: 'Accumulated Depletion',\n\t\t\taccumulatedDepreciation: 'Accumulated Depreciation',\n\t\t\tadditionalPaidInCap: 'Additional Paid-In Capital',\n\t\t\tbalanced: 'équilibrés',\n\t\t\tbalanceSheet: 'Bilan',\n\t\t\tbanks: 'Banques',\n\t\t\tBasic: 'De base',\n\t\t\tbasicRanges: 'Fourchette de base: ',\n\t\t\tbasicRangesSR: 'Sélectionnez le bouton d’option Fourchette de base pour choisir des valeurs, ou le bouton d’option Fourchette précise pour entrer une ou plusieurs valeurs.',\n\t\t\tbasicmaterials: 'Matériaux de base',\n\t\t\tMSDStockSectorBasicMaterials: 'Secteur Matériaux de base',\n\t\t\tbasicNormalEPS: 'Basic Normalized EPS',\n\t\t\tbasicPrimarEPSExclExtraItems: 'Basic/Primary EPS Excl. Extra. Items',\n\t\t\tbasicPrimarEPSInclExtraItems: 'Basic/Primary EPS Incl. Extra. Items',\n\t\t\tbasicPrimarWeightAvShares: 'Basic/Primary Weighted Average Shares',\n\t\t\tbearishMovingAverageCrossover: 'Croisement haussier des moyennes mobiles',\n\t\t\tbearishMovingAverageCrossover_desc: 'On est en présence d\\'un croisement baissier des moyennes mobiles lorsqu\\'une moyenne mobile sur une courte période (15 jours) passe au-dessous d\\'une moyenne mobile sur une plus longue période (50 jours).',\n\t\t\tbearishRSI: 'Indice de force relative en baisse',\n\t\t\tbearishRSI_desc: 'On est en présence d\\'un indice de force relative (IFR) en baisse lorsque l\\'IFR (14 jours) passe sous 70.',\n\t\t\tbearishStochastics: 'Facteurs stochastiques en baisse',\n\t\t\tbearishStochastics_desc: 'On est en présence de facteurs stochastiques en baisse lorsque la ligne K% (14 jours) passe sous la ligne D% (3 jours).',\n\t\t\tbeta: 'Bêta',\n\t\t\tbetaYear: 'Bêta ({year} an)',\n\t\t\tMSDPrimaryIndexBetaY1Ptile: 'Bêta (1 an)',\n\t\t\tMSDPrimaryIndexBetaY3Ptile: 'Bêta (3 an)',\n\t\t\tMSDPrimaryIndexBetaY5Ptile: 'Bêta (5 an)',\n\t\t\tMSDPrimaryIndexBetaY10Ptile: 'Bêta (10 an)',\n\t\t\tMSDPrimaryIndexBetaY1: 'Bêta (1 an)',\n\t\t\tMSDPrimaryIndexBetaY3: 'Bêta (3 an)',\n\t\t\tMSDPrimaryIndexBetaY5: 'Bêta (5 an)',\n\t\t\tMSDPrimaryIndexBetaY10: 'Bêta (10 an)',\n\t\t\tbetaDescription: 'Le bêta sur une période d’un an, de trois ans, de cinq ans ou de dix ans traduit la propension d’un FNB à réagir aux fluctuations de son indice de référence sur une période déterminée. Un bêta de 1 indique que le FNB pourrait enregistrer le même rendement que son indice de référence; un bêta de 1,5 signifie qu’il pourrait enregistrer 1,5 fois le rendement de l’indice.',\n\t\t\tbetaVsCategory: 'Beta vs. {category}',\n\t\t\tbetaVsCategoryTooltip: 'Le bêta traduit la propension du rendement d\\'un FCB à réagir aux fluctuations de son indice de référence sur une période donnée. Un bêta de 1 indique que le FCB pourrait enregistrer le même rendement que son indice de référence; un bêta de 1,5 signifie qu\\'il pourrait enregistrer 1,5 fois le rendement de l\\'indice.',\n\t\t\tbeta1Year: 'Bêta (1 Année)',\n\t\t\tbeverages: 'Boissons',\n\t\t\tbid: 'Cours acheteur',\n\t\t\tbids: 'Cours acheteur',\n\t\t\tbidLots: 'Cours acheteurs/lots',\n\t\t\tbidLotsCapitalization: 'Cours acheteurs/lots',\n\t\t\tbidLotsCapitalization2: 'Cours acheteurs/Lots',\n\t\t\tbidSharesCapitalization: 'Cours acheteurs/actions',\n\t\t\tbidSharesCapitalization2: 'Cours acheteurs/Actions',\n\t\t\tbidLotsSrOnly: 'Lots cours acheteurs',\n\t\t\tbillion: 'milliard(s)',\n\t\t\tboth: 'Les deux',\n\t\t\tbottomNMovers: 'Bottom {count} Movers',\n\t\t\tbottomPriceMovers: 'Titres perdants ($)',\n\t\t\tbottomPerformers: 'Pires rendements',\n\t\t\tbottomPctMovers: 'Titres perdants (%)',\n\t\t\tbelow: 'en dessous de',\n\t\t\tbelowAverage: 'Sous moyenne',\n\t\t\tbelowB: 'Below B',\n\t\t\tbelow52WeekLow: 'Au-dessous du creux de 52 semaines',\n\t\t\tbelow52WeekLowDescription: 'FCB qui ont atteint un nouveau creux de 52 semaines.',\n\t\t\tbonds: 'Obligations',\n\t\t\tbookRatio: 'valeur comptable',\n\t\t\tbookValue: 'Valeur comptable',\n\t\t\tbreakeven: 'Break Even',\n\t\t\tbuildings: 'Buildings',\n\t\t\tbottomMovers: 'Titres les moins actifs',\n\t\t\tbullishMovingAverageCrossover: 'Croisement baissier des moyennes mobiles',\n\t\t\tbullishMovingAverageCrossover_desc: 'On est en présence d\\'un croisement haussier des moyennes mobiles lorsqu\\'une moyenne mobile sur une courte période (15 jours) passe au-dessus d\\'une moyenne mobile sur une plus longue période (50 jours).',\n\t\t\tbullishRSI: 'Indice de force relative en hausse',\n\t\t\tbullishRSI_desc: 'On est en présence d\\'un indice de force relative (IFR) en hausse lorsque l\\'IFR (14 jours) dépasse 30.',\n\t\t\tbullishStochastics: 'Facteurs stochastiques en hausse',\n\t\t\tbullishStochastics_desc: 'On est en présence de facteurs stochastiques en hausse lorsque la ligne K% (14 jours) passe au-dessus de la ligne D% (3 jours).',\n\t\t\tbuttonView: 'Afficher les boutons',\n\t\t\tbyChain: 'Par chaîne',\n\t\t\tbyCustom: 'Par option des recommandations personnalisées',\n\t\t\tbyExpiry: 'By Expiry',\n\t\t\tbyStrike: 'By Strike',\n\t\t\t'C-AM': 'Call',\n\t\t\tcalls: 'Options d’achat',\n\t\t\tcall: 'Option d’achat',\n\t\t\tcallPut: 'Achat/Option de vente',\n\t\t\tcanadaGrowthAtReasonablePrice: 'Canada – croissance à prix raisonnable',\n\t\t\tcanadaGrowthAtReasonablePrice_desc: 'Actions canadiennes affichant une croissance raisonnable des cours',\n\t\t\tcanadaLowPEStocks: 'Canada – actions à faible ratio C/B',\n\t\t\tcanadaValueStocks: 'Canada – actions de valeur',\n\t\t\tcalendarYearReturns: 'Rendements par année civile',\n\t\t\tcanadianEquityETFs: 'FNB d\\'actions canadiennes',\n\t\t\tcanadianEquityETFs_desc: 'FNB qui investissent dans des actions canadiennes.',\n\t\t\tcanadianEquity: 'Actions canadiennes',\n\t\t\tcanadianPrime: 'Taux préférentiel canadien',\n\t\t\tcanadianResearchReview: 'Canadian research review (en anglaise seulement)',\n\t\t\tcanadianResearchReviewDescription: 'Un aperçu annuel de l’univers des actions canadiennes par les analystes de Marchés mondiaux CIBC. Celle-ci comprend une sélection des meilleurs titres et des commentaires sur l’économie.',\n\t\t\tcancel: 'Annuler',\n\t\t\tcancelSr: 'Annuler et fermer la fenêtre de dialogue',\n\t\t\tcancelWatchlist: 'Annuler et aller aux listes de surveillance',\n\t\t\tcanadianDollars: 'Dollars canadiens',\n\t\t\tcanadianNews: 'Nouvelles au Canada',\n\t\t\tcapEx: 'Capital Expenditures',\n\t\t\tcapLabel: 'boursière',\n\t\t\tcash: 'Liquidités',\n\t\t\tcashDividsPaidCommon: 'Cash Divids Paid - Common',\n\t\t\tcashDividsPaidPreferred: 'Cash Divs Paid - Preferred ',\n\t\t\tcashFlow: 'flux de trésorerie',\n\t\t\tcashFlowStandAlone: 'Flux de trésorerie',\n\t\t\tcashInterestPdSuppl: 'Cash Interest Pd, Suppl',\n\t\t\tcashPayments: 'Cash Payments',\n\t\t\tcashReceipts: 'Cash Receipts',\n\t\t\tcashTaxesPdSuppl: 'Cash Taxes Pd, Supplemental',\n\t\t\tchange: 'Variation',\n\t\t\tchangeContextChangement: 'Changement',\n\t\t\tchangeContextVariation: 'Variation',\n\t\t\tchangeDollars: 'Change $',\n\t\t\tcategoryAverage: 'Moyenne de la catégorie',\n\t\t\tcategory: 'Catégorie',\n\t\t\tcategoryRankTooltip: 'Le classement par catégorie représente le rang du FNB sur une échelle où 1 représente le centile le plus élevé et 100 le plus bas, en comparaison aux autres.

Par exemple, un FNB avec un classement de «15/10» dans «Classement par catégorie/Total» signifie que ce FNB se classe dans les premiers 15% de la catégorie qui comporte 10 FNB.',\n\t\t\tcategoryRank: 'Total et rang de la catégorie',\n\t\t\tchangeOf: 'Variation de',\n\t\t\tchangePercent: 'Change %',\n\t\t\tchangesWorkingCapital: 'Changes in Working Capital',\n\t\t\tchangeToETFDetails: 'Précisions sur les changements de {symbol}',\n\t\t\tchargesMayNotBeApplicable: 'Les frais peuvent ne pas s’appliquer à tous les types de frais d’acquisition ou de rachat',\n\t\t\tchart: 'Graphique',\n\t\t\tcharts: 'Diagrammes',\n\t\t\tchartUnavailable: 'Aucun tableau n’est accessible',\n\t\t\tcheckYourNotifications: 'Pour l’ouvrir, consultez vos notifications, vos téléchargements ou votre navigateur',\n\t\t\tchemicals: 'Produits chimiques',\n\t\t\tcibcFunds: 'Fonds de la CIBC',\n\t\t\tcibcWorldMarkets: 'Marchés mondiaux CIBC',\n\t\t\tcibcWorldMarketsLower: 'Marchés mondiaux CIBC',\n\t\t\tclearList: 'Effacer la liste',\n\t\t\tcloseMenu: 'Fermer le menu',\n\t\t\tclose: 'Conclusion',\n\t\t\tcloseWindow: 'Fermer la fenêtre',\n\t\t\tcloseDialogueSrOnly: 'Fermer la fenêtre de dialogue',\n\t\t\tcloseCopy: 'Fermer',\n\t\t\tCommentary: 'Ressources',\n\t\t\tcommishFeeSecurityAct: 'Commish & Fees/Secur Act',\n\t\t\tcommodities: 'Marchandises',\n\t\t\tcommoditiesInUsDollars: 'Produits de base en dollars américains',\n\t\t\tcommoditiesPriceChart: 'Graphique des prix de produits de base',\n\t\t\tcommodity: 'Marchandises',\n\t\t\tcommonStockNet: 'Common Stock, Net',\n\t\t\tcommunicationservices: 'Services de Communication',\n\t\t\tMSDStockSectorCommunicationServices: 'Secteur Services de Communication',\n\t\t\tcompany: 'société',\n\t\t\tcompanyOverview: \"Vue d'ensemble de la société\",\n\t\t\tCompare: 'Comparer',\n\t\t\tcomparedToIndustry: '(en regard du sous-secteur)',\n\t\t\tcompareLimitReached: 'Veuillez ne pas sélectionner plus de {count} FNB.',\n\t\t\tcompareToSymbol: 'Comparer à {symbol}',\n\t\t\tcomingSoon: 'À venir bientôt',\n\t\t\tconglomerates: 'Conglomérats',\n\t\t\tconsensusEstimate: 'Estimations du consensus',\n\t\t\tconsumercyclical: 'Biens de consommation cycliques',\n\t\t\tMSDStockSectorConsumerCyclical: 'Secteur Biens de consommation cycliques',\n\t\t\tconsumercyclicals: 'Biens de consommation cycliques',\n\t\t\tconsumerdefensive: 'Biens de consommation de nécessité',\n\t\t\tMSDStockSectorConsumerDefensive: 'Secteur Biens de consommation de nécessité',\n\t\t\tconsumerDiscretionary: 'Produits non essentiels',\n\t\t\tconsumergoods: 'Biens de consommation',\n\t\t\t'consumernon-cyclicals': 'Biens de consommation non cycliques',\n\t\t\t'consumernon-cyclical': 'Biens de consommation non cyclique',\n\t\t\tconsumerservices: 'Services aux consommateurs',\n\t\t\tconsumerStaples: 'Produits essentiels',\n\t\t\tcontactInfo: 'Coordonnées',\n\t\t\tcost: 'Coût',\n\t\t\tcfra: 'CFRA',\n\t\t\t'construction&materials': 'Construction et matériaux',\n\t\t\tconvertible: 'Titres convertibles',\n\t\t\tcostOfRev: 'Cost of Revenue',\n\t\t\tcostRevenueTotal: 'Cost of Revenue, Total',\n\t\t\tcountry: 'Pays',\n\t\t\tcountryDescription: 'Pays dans lequel le FCB se négocie.',\n\t\t\tcreditCardFee: 'Credit Card Fees',\n\t\t\tcreditQuality: 'Qualité du crédit',\n\t\t\tcreditDuration: 'Durée des titres de créance',\n\t\t\tcreditordebit: 'Credit or Debt',\n\t\t\tcreditQualityRating: 'Qualité du crédit',\n\t\t\tcreditQualityRatingDescription: 'La cote de qualité du crédit sert à évaluer le risque de défaillance des placements à revenu fixe.',\n\t\t\tcreditYears: '{years} ans',\n\t\t\tcrosses: 'Croise',\n\t\t\tcreateNew: 'Create New',\n\t\t\tcreateNewScreen: 'Créer une nouvelle sélection',\n\t\t\tcreateNewWatchlist: 'Créer une liste de surveillance',\n\t\t\tcurrentlyAddedSymbols: 'Symboles actuellement ajoutés',\n\t\t\tcurrentRatio: 'Ratio de liquidité générale',\n\t\t\t'cyf/nfy': '(exercice en cours/prochain exercice)',\n\t\t\tcapitalgoods: 'Biens d\\'équipement',\n\t\t\tcapitalLeastObligations: 'Capital Lease Obligations',\n\t\t\tcapitalPreservation: 'Préservation du capital',\n\t\t\tcashDueBanks: 'Cash & Due from Banks',\n\t\t\tcashEquivalents: 'Cash & Equivalents',\n\t\t\tcashShortTermInv: 'Cash and Short Term Inv',\n\t\t\tcommercialPaper: 'Commercial Paper',\n\t\t\tcommonStockQCMS: 'Common Stock',\n\t\t\tcommonStockSCMS: 'Common Stock',\n\t\t\tconstructionProgress: 'Construction in Progress',\n\t\t\tconvPrefStkNonRdmbl: 'Conv. Pref. Stk-Non Rdmbl.',\n\t\t\tcumTransAdjst: 'Cum. Trans. Adjustment',\n\t\t\tcurrentFundCurrency: 'Devise actuelle du fonds',\n\t\t\tcurrPortLTDebtCapLs: 'Curr. Port. LT Dbt/Cap Ls.',\n\t\t\tcustomScreener: 'Sélection personalisée',\n\t\t\tcustomSearch: 'Recherche personnalisée',\n\t\t\tcumulativePerformance: 'Rendement cumulatif',\n\t\t\tcustomerAcceptances: 'Customer Acceptances',\n\t\t\tcustomerAdvances: 'Customer Advances',\n\t\t\tcustomizeScreener: 'Personnalisation de la sélection',\n\t\t\tcustomizeScreenerResults: 'Résultats de la personnalisation de la sélection',\n\t\t\tcustomPeriodRange: 'Intervalle de la période personnalisée',\n\t\t\tdata: 'Données',\n\t\t\tdataRetrieved: 'Données recueillies le',\n\t\t\tdate: 'Date',\n\t\t\tdateCreated: 'Date de création',\n\t\t\tday: 'Cours maximum',\n\t\t\tdayD: 'de la ligne D % de X jours',\n\t\t\tdailyChart: 'Graphique quotidien',\n\t\t\tdayKCrosses: 'lorsque la ligne K % de X jours passe',\n\t\t\tdays: 'jours',\n\t\t\tdealerTradingAcctProfit: 'Dealer Trading Acct Profit',\n\t\t\tdealerTradingAcctLoss: 'Dealer Trading Account Loss',\n\t\t\tdeferredTaxes: 'Deferred Taxes',\n\t\t\tdefinitions: 'Définitions',\n\t\t\tdefinitionsSrOnly: 'Définitions dans une nouvelle fenêtre de dialogue',\n\t\t\tdayRange: 'Var. quotidienne',\n\t\t\tdelete: 'Supprimer',\n\t\t\tdeletePurchaseDetails: 'Delete Purchase Details',\n\t\t\tdeleteSelected: 'Supprimer les éléments sélectionnés',\n\t\t\tdeleteSelectedSrOnly: 'Supprimer les éléments sélectionnés de la liste de surveillance',\n\t\t\tdeleteWatchlist: 'Supprimer la liste',\n\t\t\tdeleteWatchlistSr: 'Supprimer la liste dans une nouvelle fenêtre de dialogue',\n\t\t\tdeleteWatchlistHeader: 'Supprimer la liste de surveillance',\n\t\t\tdelta: 'Delta',\n\t\t\tdepletion: 'Depletion',\n\t\t\tdeposits: 'Deposits',\n\t\t\tdepreciation: 'Depreciation',\n\t\t\tdepreciationAmortization: 'Depreciation/Amortization',\n\t\t\tdepreciationDepletion: 'Depreciation/Depletion',\n\t\t\tdepreciationExpense: 'Depreciation Expense',\n\t\t\tdepreciationSupp: 'Depreciation, Supplemental',\n\t\t\tdepreciationSuppl: 'Depreciation, Supplemental',\n\t\t\tdescending: 'Descending',\n\t\t\tdescription: 'Description',\n\t\t\tdetail: 'Détail',\n\t\t\tdetails: 'précisions sur',\n\t\t\tdetailList: 'Detail list ',\n\t\t\tdetailedList: 'Liste détaillée',\n\t\t\tdetailValue: 'Valeur détaillée',\n\t\t\tdilutedEPSExclExtraItems: 'Diluted EPS Excl. Extra. Items',\n\t\t\tdilutedEPSInclExtraItems: 'Diluted EPS Incl. Extra. Items',\n\t\t\tdilutedNormalEPS: 'Diluted Normalized EPS',\n\t\t\tdilutedWeightedAveShares: 'Diluted Weighted Average Shares',\n\t\t\tdilutionAdj: 'Dilution Adjustment',\n\t\t\tdiscontinuedOps: 'Discontinued Operations',\n\t\t\tdisclosures: '####',\n\t\t\tdisplay: 'Afficher',\n\t\t\tdisplayBy: 'Afficher par',\n\t\t\tdisplayCurrency: 'Afficher la devise',\n\t\t\tdistribution: 'Distribution',\n\t\t\tdistributionChart: 'Distribution chart',\n\t\t\tdistributionChartUnavailable: 'Les renseignements sur la distribution ne sont pas disponibles pour ce FNB.',\n\t\t\tnoDistributionInformationMF: 'Il n’y a pas de données sur les distributions pour ce fonds.',\n\t\t\tdistributionDetail: 'Précisions sur la distribution',\n\t\t\tdistributionFrequency: 'Fréquence des distributions',\n\t\t\tdistributionFrequencyDescription: 'Fréquence à laquelle un FCB verse des distributions. Les distributions peuvent être versées tous les mois, tous les trimestres, tous les semestres ou tous les ans.',\n\t\t\tdistributionInformation: 'Information sur les distributions',\n\t\t\tdistributionInformationAmounts: 'Montant d\\'information sur les distributions',\n\t\t\tdistributionsPerYear: 'Distributions par année',\n\t\t\tdistributionYield: 'Rendement des distributions',\n\t\t\tdistributionYieldDescription: 'Distributions annuelles déclarées par un FCB, divisées par le cours du FCB.',\n\t\t\tdistributionsPerShare: 'Distribution par action',\n\t\t\tdistributionLabel: 'Rendement',\n\t\t\tdividend: 'Distribution',\n\t\t\tdividendYield: 'Rendement en dividendes',\n\t\t\tdividendGrowthLabel: 'Croissance des dividendes sur 5 ans',\n\t\t\tdividendGrowthLabel2: 'Div croissance 5 ans',\n\t\t\tdividendInfo: 'Renseignements sur les dividendes',\n\t\t\tdjiaChartHidden: 'Graphique de la moyenne Dow Jones des valeurs industrielles',\n\t\t\tdomesticbond: 'Obligations canadiennes',\n\t\t\tdown: 'Baisse de',\n\t\t\tdpsCommonStockPrimaryIssue: 'DPS - Common Stock Primary Issue',\n\t\t\tduplicateWatchlistNameError: 'Watch List name already in use',\n\t\t\tdefIncTaxLTAsst: 'Def. Inc. Tax - LT Asset',\n\t\t\tdefPolicyAcqCosts: 'Def. Policy Acq. Costs',\n\t\t\tdeferredCharges: 'Deferred Charges',\n\t\t\tdeferredGasCost: 'Deferred Gas Cost',\n\t\t\tdeferredIncomeTax: 'Deferred Income Tax',\n\t\t\tdeferredIncomeTaxLBDT: 'Deferred Income Tax',\n\t\t\tdeferredIncomeTaxLDTC: 'Deferred Income Tax',\n\t\t\tdeferredIncomeTaxSBDT: 'Deferred Income Tax',\n\t\t\tdeferrentInvTaxCredit: 'Deferred Inv. Tax Credit',\n\t\t\tdiscontOpsCurrentAsst: 'Discont. Ops.-Curr. Assets',\n\t\t\tdiscontOpsLiabili: 'Discont. Ops. - Lblts',\n\t\t\tdiscontinuedOperations: 'Discontinued Operations',\n\t\t\tdisctOpsLTAsst: 'Disct. Ops. - LT Asset',\n\t\t\tdividendsPayable: 'Dividends Payable',\n\t\t\tdomicile: 'Pays de résidence',\n\t\t\tdoNotSend: 'Ne pas envoyer',\n\t\t\tduringThePriorTradingSession: 'à la séance de négociation précédente.',\n\t\t\tearnings: 'Bénéfices',\n\t\t\tearningsPerShare: 'Bénéfices par action',\n\t\t\teconomicInsights: 'Economic insights (en anglaise seulement)',\n\t\t\teconomicInsightsDescription: 'Consulter les mises à jour de nos prévisions sur les marchés financiers canadiens et américains, ainsi que nos perspectives sur l’économie nord-américaine.',\n\t\t\teconomics: 'Economies',\n\t\t\tedit: 'Modifier',\n\t\t\teditSearch: 'Modifier la recherche',\n\t\t\teditScreenerName: 'Modifier le nom de la sélection',\n\t\t\teditPurchaseDetails: 'Edit Purchase Details',\n\t\t\teditWatchlist: 'Modifier la liste de surveillance',\n\t\t\teditWatchlistSrOnly: 'Modifier la liste de surveillance sélectionnée',\n\t\t\teducationDisclaimer: \"Les commentaires d'analystes, le contenu éducatif et les autres renseignements de recherche en placement disponible sur ce site web sont d'ordre général seulement, ceux-ci ne sont pas désignés comme étant des conseils de placement spécifiques et vous ne devriez pas vous y fier de cette façon. Les exigences de divulgation en vigueur au Canada ne s’appliquent pas aux rapports de recherche produits par des entités autres que Marchés mondiaux CIBC inc. \",\n\t\t\tearningsValue: 'Earnings Value',\n\t\t\teffectiveTaxRate: 'Taux d\\'imposition réel',\n\t\t\teffectSpecialItemOnIncomeTax: 'Effect of Special Items on Income Taxes',\n\t\t\telectricity: 'Électricité',\n\t\t\telectricOps: 'Electric Operations',\n\t\t\t'electronic&electricalequipment': 'Matériel électronique et équipement électrique',\n\t\t\temailAddress: 'Adresse de courriel',\n\t\t\tenterName: 'Entrer le nom de la liste',\n\t\t\tenterNumberToMax: 'Enter a number to a maximum of 6 digits',\n\t\t\tenergy: 'Énergie',\n\t\t\tMSDStockSectorEnergy: 'Secteur Énergie',\n\t\t\tenterNameForWatchlist: 'Please enter a name for this watch list.',\n\t\t\tenterSpecificValues: 'Entrer des valeurs spécifiques',\n\t\t\tequalToNLessThanM: '= à {min} à < {max}',\n\t\t\tetfs: 'FNB',\n\t\t\tetfMenu: 'FNB menu',\n\t\t\tetfPortfolioDisclaimer: 'ETF Portfolio Disclaimer',\n\t\t\tetfHoldingSearch: 'Recherche de titres détenus dans les fonds',\n\t\t\tfeaturedScreens: 'Sélections vedettes',\n\t\t\tfeaturedScreens2: 'Présentation des écrans',\n\t\t\tfundClassesDisclaimer: \"Un fonds commun de placement peut être offert en plusieurs catégories. Les différences de frais et de charges entre les catégories signifient que chaque catégorie a une valeur liquidative par part différente. Par conséquent, le rendement peut varier d'une catégorie à l'autre.\",\n\t\t\tfundClassification: 'Classification de fonds',\n\t\t\tfundPromoter: 'Promoteur de fonds',\n\t\t\tfundCommissionsDisclaimer: 'Les placements dans les fonds communs de placement peuvent faire l’objet de commissions, de commissions de suivi, de frais de gestion et d’autres charges. Veuillez lire le prospectus simplifié avant d’investir. Chaque taux de rendement indiqué est un taux de rendement total composé annuel historique et tient compte des fluctuations de la valeur des parts et du réinvestissement de toutes les distributions, mais qui ne tient pas compte des commissions d’achat et de rachat, des frais de placement ni des frais optionnels ou de l’impôt sur le revenu payable par un porteur qui auraient eu pour effet de réduire le rendement. Pour les fonds marché monétaire, l’information sur le rendement passé qui est fournie suppose le réinvestissement des distributions uniquement, mais ne tient pas compte des commissions d’achat et de rachat, des frais de placement ni des frais optionnels ou de l’impôt sur le revenu payable par un porteur qui auraient pour effet de réduire le rendement. Les titres de fonds communs de placement ne sont pas couverts par la Société d’assurance-dépôts du Canada ni par un autre organisme public d’assurance-dépôts. Rien ne garantit que les fonds pourront maintenir une valeur liquidative fixe par part ou que le plein montant de votre placement pourra vous être remboursé. Les fonds communs de placement ne sont pas garantis, leur valeur varie fréquemment et leur rendement passé n’est pas indicatif de leur rendement futur.',\n\t\t\tema15day: 'MME de 15 jours',\n\t\t\tema50day: 'MME de 50 jours',\n\t\t\tema100day: 'MME de 100 jours',\n\t\t\tema200day: 'MME de 200 jours',\n\t\t\tendDay: 'Jour de fin',\n\t\t\tendMonth: 'Mois de fin',\n\t\t\tendYear: 'Année de fin',\n\t\t\tenterPurchaseDetails: 'Entrer les détails d’achat',\n\t\t\tenterPurchaseDetailsSr: 'Entrer les détails d’achat de {symbol} dans une nouvelle fenêtre de dialogue',\n\t\t\tepsGrowth: 'Croissance du RPA',\n\t\t\tepsGrowthCFY: 'Croissance EPS CFY',\n\t\t\tepsGrowthNFY: 'Croissance EPS NSY',\n\t\t\tequities: 'Actions',\n\t\t\tequity: 'Actions',\n\t\t\tequityFund: 'Mesures',\n\t\t\tequityInAffiliates: 'Equity In Affiliates',\n\t\t\tequityinvestmentinstruments: 'Instruments de placement en actions',\n\t\t\tequityNetEarnLoss: 'Equity in Net Earnings/Loss',\n\t\t\tequityStylebox: 'Grille de style sur les actions',\n\t\t\tequityStyleboxDescription: 'Outil exclusif de Morningstar qui fournit une représentation graphique du style de gestion d\\'un FCB. La Matrice du style des actions Morningstar est une grille à neuf cases qui classe les actions par capitalisation boursière (axe vertical) et par style de gestion (axe horizontal).',\n\t\t\terrorDuringDownload: 'Error during download',\n\t\t\tESPODebtGuarantee: 'ESOP Debt Guarantee',\n\t\t\testimates: 'estimations',\n\t\t\testimatesDisclaimer: 'CFY = Current Fiscal Year, NFY = Next Fiscal Year',\n\t\t\testimatesStockScreener: 'Prévisions',\n\t\t\tetfCentre: 'Centre des FNB',\n\t\t\tetfsAtGlance: 'Les FNB en bref',\n\t\t\tetfsCaption: '{count} FNB',\n\t\t\tetfsOverviewTodaysMoversTooltip: \"Les FNB à effet de levier utilisent des produits dérivés financiers et des titres de créance pour augmenter les rendements quotidiens d'un indice sous-jacent. Nous recommandons de faire preuve de prudence au moment de négocier ces FNB, qui sont conçus pour des investisseurs aguerris possédant une compréhension approfondie des risques qui y sont associés.\",\n\t\t\texactPhrase: 'Expression exacte',\n\t\t\texamplePhone: 'Exemple: 5555551212@domain.com',\n\t\t\texciseTaxPayment: 'Excise Taxes Payments',\n\t\t\texcisTaxReceipts: 'Excise Taxes Receipts',\n\t\t\texceededExpectations: 'Au-delà des attentes',\n\t\t\teps: 'BPA',\n\t\t\texDividendDate: 'Date ex-dividende',\n\t\t\texDivDate: 'date ex-dividende',\n\t\t\texpirationDate: 'Date d’expiration',\n\t\t\texpiration: 'Expiration',\n\t\t\texpired: 'Expiré',\n\t\t\texpiry: 'Expiration',\n\t\t\texpiryLabel: 'date d\\'exp',\n\t\t\textraItem: 'Extraordinary Item',\n\t\t\textraordinaryItemun: 'Extraordinary Item',\n\t\t\texplorationProduction: 'Exploration & Production',\n\t\t\tfamily: 'Famille',\n\t\t\tfax: 'Télécopieur : ',\n\t\t\tfedFundResale: 'Fed. Fund/Resale',\n\t\t\tfedFundSoldSecSoldUnderRepurch: 'Fed Funds Sold/Secs Sold under Repurch Agrmnt',\n\t\t\tfedFundsREPO: 'Fed. Funds/REPOs',\n\t\t\tfeeCommishFromOp: 'Fees & Commish from Operat',\n\t\t\tfeeOtherCustServ: 'Fees for Other Cust Serv',\n\t\t\tFHLB: 'FHLB',\n\t\t\tfinanceCashFlowItem: 'Financing Cash Flow Items',\n\t\t\tfoodproducers: 'Producteurs de produits alimentaires',\n\t\t\tforeclosedRealEstate: 'Foreclosed Real Estate',\n\t\t\tforeignbond: 'Obligations étrangères',\n\t\t\tforexAdjustment: 'Foreign Currency Adjustment',\n\t\t\tforexAdjustmentNonOp: 'Foreign Currency Adjustment',\n\t\t\tforexEffects: 'Foreign Exchange Effects',\n\t\t\tForexGains: 'Foreign Currency Gains',\n\t\t\tforexLoss: 'Foreign Currency Losses',\n\t\t\tformat: 'Format',\n\t\t\tfinancials: 'Finances',\n\t\t\tfinancialservices: 'Services financiers',\n\t\t\tMSDStockSectorFinancialServices: 'Secteur Services financiers',\n\t\t\tfinancialStrength: 'Solidité financière',\n\t\t\tfinancialsType: 'Type de données financières',\n\t\t\tfinishedAddingCriteria: 'Fin de l’ajout de critères',\n\t\t\tfinishedAddingCriteriaError: 'Sélectionnez les critères pour continuer.',\n\t\t\tfundCentre: 'Centre des fonds',\n\t\t\tfundCodes: 'Code du fonds',\n\t\t\tfundCategory: 'Catégorie de fonds',\n\t\t\tfundCategoryDescription: 'Classement détaillé de FCB selon les normes du secteur, déterminé en fonction du style, de la stratégie, de la catégorie d\\'actif ou d\\'autres critères.',\n\t\t\tfundFamily: 'Famille de fonds',\n\t\t\tfundFamilyDescription: 'Groupe de FCB offerts par une société ou un promoteur de fonds.',\n\t\t\tfundName: 'Nom du fonds',\n\t\t\tfundNameLower: 'Nom du fonds',\n\t\t\tfundType: 'Type',\n\t\t\tfundTypeHeader: 'Type de fonds',\n\t\t\tfundDetails: 'Renseignements sur {symbol}',\n\t\t\tfundDetail: 'Renseignements sur le Fonds',\n\t\t\tfundamentals: 'Éléments fondamentaux',\n\t\t\tfundamentalsStockScreener: 'Données fondamentales',\n\t\t\tfundOverview: 'Aperçu du fond',\n\t\t\tfundValue: 'Valeur du Fonds',\n\t\t\tfundMovement: 'Fluctuation du fonds',\n\t\t\tfiftyTwoWeek: '52 Semaine',\n\t\t\tfilterBy: 'Filtrer par',\n\t\t\tfilterByClassification: 'Filtrer par classification',\n\t\t\tfilterByCountry: 'Filtrer par pays',\n\t\t\tfilterByDate: 'Filter by date',\n\t\t\tfilterByEtfType: 'Filtrer par type de FNB ',\n\t\t\tfilterByFundFamily: 'Filter by fund family',\n\t\t\tfilterByFundPromoter: 'Filtrer par promoteur de fonds',\n\t\t\tfilterByMovers: 'Filtrer par facteurs déterminants',\n\t\t\tfilterByPerformance: 'Filtrer par rendement',\n\t\t\tfilterByPeriod: 'Filtrer par période',\n\t\t\tfilterByPublication: 'Filtrer par publication',\n\t\t\tfilterByScreenType: 'Filtrer par type d’écran',\n\t\t\tfilterBySector: 'Filtrer par secteur',\n\t\t\tfilterByVolume: 'Filtrer par volume',\n\t\t\tfilterMoversBy: 'Filtrer les facteurs déterminants par',\n\t\t\tfilterDataTypeBy: 'Filtrer les données par',\n\t\t\tfinancialsFor: 'Données financières pour {symbol}',\n\t\t\tfinancialsPeriod: 'Période financières',\n\t\t\tfiveYrAvgPreTaxMargin: 'Marge avant impôts moyenne sur 5 ans',\n\t\t\tfiveYrAvgOperatingMargin: 'Marge d\\'exploitation moyenne sur 5 ans',\n\t\t\tfiveYrNetProfitMargin: 'Marge bénéficiaire nette moyenne sur 5 ans',\n\t\t\tfiveYrAvgNetProfitMarginGrowth: 'Croissance de la marge bénéficiaire nette moyenne sur 5 ans',\n\t\t\tfiveYrAvgEffectiveTaxRate: 'Taux d\\'imposition réel moyen sur 5 ans',\n\t\t\tfiveYrYieldAvg: 'Moyenne du rendement sur 5 ans',\n\t\t\tfixedincome: 'Titres à revenu fixe',\n\t\t\tfixedIncome: 'Titres à revenu fixe',\n\t\t\tfixedIncomeStylebox: 'Grille de style sur les revenus fixes',\n\t\t\tfixedIncomeStyleboxDescription: 'Mesure exclusive de Morningstar pour les fonds de titres à revenu fixe, reposant sur la sensibilité aux taux d\\'intérêt et la qualité du crédit. La Matrice du style des titres à revenu fixe Morningstar est une grille à neuf cases qui mesure la qualité du crédit (axe vertical) et la sensibilité aux taux d\\'intérêt (axe horizontal).',\n\t\t\tfixedIncomeStyleboxCol1: 'H',\n\t\t\tfixedIncomeStyleboxCol2: 'M',\n\t\t\tfixedIncomeStyleboxCol3: 'F',\n\t\t\tfixedIncomeStyleboxRow1: 'F',\n\t\t\tfixedIncomeStyleboxRow2: 'M',\n\t\t\tfixedIncomeStyleboxRow3: 'E',\n\t\t\tfinancialsTableDisclaimer: 'En millions de {currency} (excepté pour les postes par actions)',\n\t\t\tfiveYrYieldGrowthRate: 'Taux de croissance sur 5 ans',\n\t\t\tfiveYearBond: 'Obligations à 5 ans',\n\t\t\tfixedlinetelecommunications: 'Télécommunications à lignes fixes',\n\t\t\tfloat: 'Flottant',\n\t\t\t'food&drugretailers': 'Détaillants de produits alimentaires et de médicaments',\n\t\t\t'forestry&paper': 'Foresterie et papier',\n\t\t\tfsiD: 'Deficient: Issuer Failed to Meet NASDAQ Continued Listing Requirements',\n\t\t\tfsiE: 'Delinquent: Issuer Missed Regulatory Filing Deadline',\n\t\t\tfsiG: 'Deficient and Bankrupt',\n\t\t\tfsiH: 'Deficient and Delinquent',\n\t\t\tfsiJ: 'Delinquent and Bankrupt',\n\t\t\tfsiK: 'Deficient, Delinquent, and Bankrupt',\n\t\t\tfsiN: 'Normal (Default)\" Issue is not currently deficient, delinquent, or bankrupt.',\n\t\t\tfsiQ: 'Bankrupt: Issuer Has Filed for Bankruptcy',\n\t\t\tfuelExpense: 'Fuel Expense',\n\t\t\tfuelPurchasedResale: 'Fuel Purchased for Resale',\n\t\t\tfunds: 'Fonds',\n\t\t\tfundsFromOpREIT: 'Funds From Operats - REIT',\n\t\t\tfundSnapshot: '{name} aperçu',\n\t\t\tfundStructure: 'Structure du fonds',\n\t\t\tfundStructureDescription: `Un FCB peut être classique, à effet de levier ou inversé.\n\t\t\t\\nLes FCB à effet de levier utilisent des produits dérivés financiers pour augmenter les rendements quotidiens d'un indice ou d'un titre sous-jacent. Nous recommandons de faire preuve de prudence au moment de négocier ces FCB, qui sont conçus pour des investisseurs aguerris possédant une compréhension approfondie des risques qui y sont associés.\n\t\t\t\\nLes FCB inversés sont conçus pour profiter des fluctuations des cours allant dans le sens inverse de l'indice ou du titre sous-jacent.`,\n\t\t\tfundObjective: 'Objectif du fonds',\n\t\t\tfedFundsPurch: 'Fed Funds Purch.',\n\t\t\tFHLBAdvances: 'FHLB Advances',\n\t\t\tfhlbStock: 'FHLB Stock',\n\t\t\tfuelInvent: 'Fuel - Inventory',\n\t\t\tgetAnalystRatings: 'Consulter les notes des analystes',\n\t\t\tgeneralindustrials: 'Produits industriels généraux',\n\t\t\tgeneralretailers: 'Détaillants généraux',\n\t\t\tglobalExposure: 'Placements mondiaux',\n\t\t\tglobalExposureDisclaimer: 'La répartition par pays est calculée en utilisant seulement les position longue d\\'actions et d\\'obligations du portfolio selon leur pays d\\'émission.',\n\t\t\tglobalExposureError: 'Les placements mondiaux ne sont pas disponibles',\n\t\t\tglobalExposureErrorPortfolio: 'Les placements mondiaux ne sont pas disponibles pour ce FNB',\n\t\t\tgreatestPremium: 'Prime la plus élevée',\n\t\t\tgreatestDiscount: 'Escompte le plus élevé',\n\t\t\tgamma: 'Gamma',\n\t\t\tgain: 'Gain',\n\t\t\tgainSaleofAssets: 'Gain (Loss) on Sale of Assets',\n\t\t\tgainSr: 'Gain de',\n\t\t\tgainTotalSr: 'Gain de {gain}',\n\t\t\t'gas,water&multiutilities': 'Gaz, eau et multi-services publics',\n\t\t\tgasOps: 'Gas Operations',\n\t\t\tgenPartnerDistro: 'Gen Partner\\'s Distributions',\n\t\t\tgetLatestCommentary: 'Get the latest ETF commentary from Morningstar analysts. Learn more about ETFs with Morningstar’s educational content. ',\n\t\t\tgold: 'Or',\n\t\t\tgoldSr: 'Graphique de l’or',\n\t\t\tgrossDividendCommStock: 'Gross Dividend - Common Stock',\n\t\t\tgrossPremWritten: 'Gross Premiums Written',\n\t\t\tgrossRev: 'Gross Revenue',\n\t\t\tgroupBy: 'Group By',\n\t\t\tgrowthNfy: 'Growth NFY',\n\t\t\tgrossMargin: 'Marge brute',\n\t\t\tgrowth5Year: 'Growth 5 Year',\n\t\t\tgrowth10K: 'Croissance de 10 000 $',\n\t\t\tgrowth10KText1: 'Un placement de 10 000 $ effectué le ',\n\t\t\tgrowth10KText2: ' vaudrait maintenant ',\n\t\t\tgasStorageInvent: 'Gas in Storage - Inventory',\n\t\t\tgeneralPartner: 'General Partner',\n\t\t\tgoodwillGross: 'Goodwill, Gross',\n\t\t\tgoodwillNet: 'Goodwill, Net',\n\t\t\theadlinesOnly: 'Manchettes seulement',\n\t\t\theadlinesAndDocumentBody: 'Manchettes et articles',\n\t\t\t'healthcareequipment&services': 'Matériel et services de santé',\n\t\t\thigh: 'Haut',\n\t\t\thighPriceContext: 'Élevée',\n\t\t\thighLow: 'maximum / minimum',\n\t\t\thighLowLabel: '/ minimum quotidien',\n\t\t\thealthCare: 'Santé',\n\t\t\thealthcare: 'Soins de santé',\n\t\t\tMSDStockSectorHealthcare: 'Secteur Santé',\n\t\t\tholdings: 'Titres',\n\t\t\tetfHoldingsContent: 'Repérer les FNB les plus exposés aux actions sélectionnées',\n\t\t\tetfHoldingDisclaimer: 'Les renseignements sont fondés sur la plus récente information fournie par le fonds à Morningstar.',\n\t\t\tholdingsMentioned: 'Placement mentionné',\n\t\t\t'householdgoods&homeconstruction': 'Articles ménagers et construction domiciliaire',\n\t\t\thyphen: 'à',\n\t\t\thighEstimate: 'Estimations hautes',\n\t\t\tinANewWindow: ' PDF dans une nouvelle fenêtre',\n\t\t\thide: 'Masquer',\n\t\t\thideCallsSrOnly: 'Masquer les options d’achat pour {symbol}',\n\t\t\thidePutsSrOnly: 'Masquer les options de vente pour {symbol}',\n\t\t\thideCriteriaMatches: 'Masquer les résultats correspondant aux critères',\n\t\t\timpAssetsHeldSale: 'Impair-Assets Held for Sale',\n\t\t\timpAssetsHeldUse: 'Impair-Assets Held for Use',\n\t\t\tinactive: 'Inactif',\n\t\t\tinANewDialogue: '{name} s’ouvre dans une nouvelle boîte de dialogue',\n\t\t\tinception: 'Création',\n\t\t\tinceptionDate: 'Date de création',\n\t\t\tinceptionDateDescription: 'Date à laquelle le FCB commence à offrir des actions.',\n\t\t\tincomeStatement: 'État des résultats',\n\t\t\tincludeLeveraged: 'Inclure à effet de levier',\n\t\t\tincomeAvailCommonExclExtraItems: 'Income Available to Common Excl. Extra. Items',\n\t\t\tincomeAvailCommonInclExtraItems: 'Income Available to Common Incl. Extra. Items',\n\t\t\tincomeHandling: 'Traitement du revenu',\n\t\t\tincTaxExImpactofSpItem: 'Inc Tax Ex Impact of Sp Items',\n\t\t\tindicationRatesNotActualRates: 'Taux à titre indicatif, et non taux réels',\n\t\t\tindustrialengineering: 'Génie industriel',\n\t\t\tindustrials: 'Industriels',\n\t\t\tMSDStockSectorIndustrials: 'Secteur Industriels',\n\t\t\t'industrialmetals&mining': 'Industrie, métaux et exploitation minière ',\n\t\t\tindustrialtransportation: 'Transport industriel',\n\t\t\tindustry: 'Sous-secteur',\n\t\t\tindustryDataNotAvailable: 'Données sectorielles non disponible',\n\t\t\tinformationTechnology: 'Information Technologie',\n\t\t\tinitialCharge: 'Frais initiaux',\n\t\t\tinsights: 'Observations',\n\t\t\tinsurCommishFeePrem: 'Insur Commish Fees& Premium',\n\t\t\tint: 'Int',\n\t\t\tintangibleNet: 'Intangible, Net',\n\t\t\tinterAdjPrimaryEPS: 'Inter Adjust - Primary EPS',\n\t\t\tinterCapitalOp: 'Inter Capitalzd, Operating',\n\t\t\tinterCapNonOp: 'Inter Capital, Non-Operat',\n\t\t\tinterDivsInvestSecurs: 'Inter & Divs/ Invest Securs',\n\t\t\tinterest: 'Interest',\n\t\t\tinteresonDeposits: 'Interest on Deposits',\n\t\t\tinterestCapSuppl: 'Interest Capitalized, Suppl',\n\t\t\tinterestCoverage: 'Ratio de couverture des intérêts',\n\t\t\tinterestExpenseSuppl: 'Interest Expense, Suppl',\n\t\t\tinterestFeeLoans: 'Interest & Fees on Loans',\n\t\t\tinterestIncomeBank: 'Interest Income, Bank',\n\t\t\tinterestIncomeNonBank: 'Interest Income, Non-Bank',\n\t\t\tinterestIncomeNetNonOp: 'Interest Income (Exp), Net Non-Operating',\n\t\t\tinterestIncomeNonOp: 'Interest Income, Non-Operating',\n\t\t\tinterestIncomeOp: 'Interest Income, Operating',\n\t\t\tinterestInvestIncomeNonOp: 'Interest/Investment Income, Non-Operating',\n\t\t\tinterestOnDeposits: 'Interest on Deposit',\n\t\t\tinterExpenseNetNonOp: 'Inter Expse,Net Non-Operat',\n\t\t\tinterExpenseNetOp: 'Inter Expense, Net Operatng',\n\t\t\tinterExpenseNonOp: 'Inter Expse, Non-Operating',\n\t\t\tinterExpenseOp: 'Inter Expense, Operating',\n\t\t\tinterInvestOp: 'Inter/Invest Inc, Operating',\n\t\t\tinternationalEquity: 'Actions internationales',\n\t\t\tinternationalEquityAbbrv: 'Actions internationales',\n\t\t\tinterOnOtherBorrow: 'Inter on Other Borrowings',\n\t\t\tinTheMoney: 'Dans le cours',\n\t\t\tindexName: 'Nom de l’indice',\n\t\t\tindexMovement: 'Fluctuation des indices',\n\t\t\tindicatorInput: 'Saisie de l’indicateur',\n\t\t\timpliedVolatility: 'Volatilité implicite',\n\t\t\tinvalidCharacterError: 'Les renseignements que vous avez entrés ne peuvent être traités, car ils contiennent des symboles ou des mots non acceptables. Veuillez entrez de nouveau vos renseign',\n\t\t\tinventories: 'Inventories',\n\t\t\tinverseDisclaimer: 'Les FCB inversés sont conçus pour profiter des fluctuations des cours allant dans le sens inverse de l\\'indice ou du titre sous-jacent.',\n\t\t\tinverseEtf: 'FNB inversé',\n\t\t\tinverseLeveragedETFs: 'FNB à effet de levier et inversés',\n\t\t\tinverseLeveragedETFs_desc: 'FNB qui utilisent des produits dérivés financiers pour obtenir un rendement inverse à celui de l\\'indice/titre sous-jacent (FNB inversé) ou pour amplifier les rendements d\\'un indice/titre sous-jacent (FNB à effet de levier).',\n\t\t\tinvestIncomeOp: 'Invest Income, Operating',\n\t\t\tinvestIncomeNonOp: 'Investment Income, Non-Operating',\n\t\t\tinvestmentType: 'Type de placement',\n\t\t\tinvestmentGoal: 'Investment Goal: ',\n\t\t\tinvestmentNet: 'Investment, Net',\n\t\t\tinvestmentValuation: 'Valeur des placements',\n\t\t\tinvestmtSecurityLoss: 'Investmt Securities Losses',\n\t\t\tinvestSecGains: 'Invest Securities Gains',\n\t\t\tissRetirmntDebtNet: 'Iss (Retirmnt) of Debt, Net',\n\t\t\tissRetirmntStockNet: 'Iss (Retirmnt) of Stock,Net',\n\t\t\tincomeTaxPayable: 'Income Taxes Payable',\n\t\t\tinsruanceReserve: 'Insurance Reserves',\n\t\t\tinsuranceReceivables: 'Insurance Receivables',\n\t\t\tintangibleGross: 'Intangibles, Gross',\n\t\t\tinterestBearingDept: 'Interest Bearing Deposits',\n\t\t\tinterestEarnDeposits: 'Interest-Earning Deposits',\n\t\t\tinterestRateSensitivity: 'Sensibilité aux taux d’intérêt ',\n\t\t\tinterestRcvbl: 'Interest Receivable',\n\t\t\tinventFinishedGoods: 'Invent. - Finished Goods',\n\t\t\tinventOther: 'Inventories - Other',\n\t\t\tinventRawMaterial: 'Invent. - Raw Materials',\n\t\t\tinventWIP: 'Invent. - Work In Progress',\n\t\t\tkeyCanadianRates: 'Taux directeurs au Canada',\n\t\t\tkeyUsRates: 'Taux directeurs aux États-Unis',\n\t\t\tkeyword: 'Mot-clé',\n\t\t\tkeywords: 'Mot-clés',\n\t\t\tkeywordResultsBy: 'Résultats des mots-clés :',\n\t\t\tlaborRelatedExpense: 'Labor & Related Expenses',\n\t\t\tlastTrade: 'Dernière opération le',\n\t\t\tlastTradeHeader: 'Dernier cours',\n\t\t\tlastChange: 'dernier changement',\n\t\t\tlastUpdatedToday: 'Dernière mise à jour aujourd’hui',\n\t\t\tlastUpdated: 'Dernière mise à jour le',\n\t\t\tlast: 'Dernier',\n\t\t\tlastLabel: 'Dernier',\n\t\t\tlastPrice: 'Dernier cours',\n\t\t\tlastClose: 'dernière clôture',\n\t\t\tlastBidLots: 'Last Bid / Lots',\n\t\t\tlastAskLots: 'Last Ask / Lots',\n\t\t\tlastWeek: 'La dernière semaine',\n\t\t\tlast2Weeks: 'Dernières 2 semaines',\n\t\t\tlast4Weeks: 'Dernières 4 semaines',\n\t\t\tlatestEconomicReports: 'Derniers rapports du Service des études économiques CIBC',\n\t\t\tlatestEquityReports: 'Derniers rapports sur les actions',\n\t\t\tlatestEtfCommentary: 'Observations sur les FNB',\n\t\t\tlatestPdfReports: 'Plus récents rapports en format PDF',\n\t\t\tlatestDividend: 'Dividende le plus récent',\n\t\t\tlatestPaymentDate: 'Date de dernier versement',\n\t\t\tlatestExDistributionDate: 'Dernière date ex-distribution',\n\t\t\tlatestDistributionAmount: 'Montant de la dernière distribution',\n\t\t\tlegalStructure: 'Structure juridique',\n\t\t\tleisuregoods: 'Biens de loisir',\n\t\t\tless: 'Moins',\n\t\t\tloadLabelFr: 'Frais d’acquisition',\n\t\t\tload: 'ou de rachat',\n\t\t\tleveragedEtf: 'FNB à effet de levier',\n\t\t\tleveragedDisclaimer: 'Les FNB à effet de levier utilisent des produits dérivés financiers et des titres de créance pour augmenter les rendements quotidiens d\\'un indice sous-jacent. Nous recommandons de faire preuve de prudence au moment de négocier ces FNB, qui sont conçus pour des investisseurs aguerris possédant une compréhension approfondie des risques qui y sont associés. Pour en savoir plus sur les FNB à effet de levier, lisez Investir dans les FNB à effet de levier sous l\\'onglet Ressources. Remarque : Ce ne sont pas tous les types de FNB qui comprennent des fonds à effet de levier.',\n\t\t\tlifeinsurance: 'Assurance vie',\n\t\t\tlistBy: 'Afficher la liste selon',\n\t\t\tlitigation: 'Litigation',\n\t\t\tlitigationExpense: 'Litigation Expense',\n\t\t\tloanLossProvision: 'Loan Loss Provision',\n\t\t\tloanOriginationInvest: 'Loans Origination - Invest',\n\t\t\tloans: 'Loans',\n\t\t\tlongDurationHighQuality: 'Longue durée/haute qualité',\n\t\t\tlongDurationMediumQuality: 'Longue durée/qualité moyenne',\n\t\t\tlongDurationLowQuality: 'Longue durée/qualité basse',\n\t\t\tlongTermDebtIssued: 'Long Term Debt Issued',\n\t\t\tlongTermDebtNet: 'Long Term Debt, Net',\n\t\t\tlongTermDebtReduce: 'Long Term Debt Reduction',\n\t\t\tloss: 'perte',\n\t\t\tlossBeniesAdjust: 'Losses, Benies & Adjusts',\n\t\t\tlossBeniesAdjustTotal: 'Losses, Benies & Adjmts, Total',\n\t\t\tlossSaleAsts: 'Loss(Gain)/Sale Asts (Oper)',\n\t\t\tlossSr: 'perte de',\n\t\t\tlossTotalSr: 'Perte de {loss}',\n\t\t\tlots: 'Lots',\n\t\t\tlowHigh: 'Creux / sommet',\n\t\t\tlowAndHigh: 'Creux et sommet',\n\t\t\tlow: 'Bas',\n\t\t\tlowEstimate: 'Estimations basses',\n\t\t\tlowPriceContext: 'Faible',\n\t\t\tlongStrategy: 'Stratégie acheteur',\n\t\t\tlongStrategyChart: 'Graphique de la stratégie acheteur',\n\t\t\tlongPosition: '% des positions acheteur',\n\t\t\tlargeCapBlend: 'Mixte à forte capitalisation',\n\t\t\tlargeCapGrowth: 'Croissance à forte capitalisation',\n\t\t\tlargeCapValue: 'Valeur à forte capitalisation',\n\t\t\tlongTermDebtEquity: 'Ratio capitaux empruntés/capitaux propres',\n\t\t\tlipperLeaders: 'Valeurs lipper',\n\t\t\tlandImprovements: 'Land/Improvements',\n\t\t\tleases: 'Leases',\n\t\t\tlifoReserve: 'LIFO Reserve',\n\t\t\tlimitedPartner: 'Limited Partner',\n\t\t\tloanLossAllowances: 'Loan Loss Allowances',\n\t\t\tloansHeldSale: 'Loans Held for Sale',\n\t\t\tlongTermDebt: 'Long Term Debt',\n\t\t\tlongTermInvestment: 'Long Term Investments',\n\t\t\tLTInvntOther: 'LT Investments - Other',\n\t\t\tLTInvtAffiliateComp: 'LT Invt. - Affiliate Comp.',\n\t\t\tmaterials: 'Matériel',\n\t\t\tmixedEquity: 'Actions mixtes',\n\t\t\tmidCapBlend: 'Mixte à moyenne capitalisation',\n\t\t\tmidCapGrowth: 'Croissance à moyenne capitalisation',\n\t\t\tmidCapValue: 'Valeur à moyenne capitalisation',\n\t\t\tmakeDefaultWatchlist: 'Définir comme liste par défaut',\n\t\t\tmanagementEffectiveness: 'Efficacité de la gestion',\n\t\t\tmanagerDeclared: 'Déclaration du gestionnaire',\n\t\t\tmanager: 'Gestionnaire',\n\t\t\tmarket: 'marchande',\n\t\t\tmarkets: 'Marchés',\n\t\t\tmarketValue: 'Valeur marchande',\n\t\t\tmarketCentreDisclaimer: 'Certains renseignements sur notre site (p. ex., Cotes et recherches) sont fournis par nos fournisseurs et ne sont pas disponibles en français.',\n\t\t\tmarketsOverview: 'Aperçu des marchés',\n\t\t\tmarketOverview: 'Aperçu des marchés',\n\t\t\t'Markets at a glance': 'Coup d’œil sur les marchés',\n\t\t\t'Market movers': 'Reflets du jour',\n\t\t\tmarketLabel: 'Capitalisation',\n\t\t\tmarketClose: 'À la clôture du marché, le',\n\t\t\tmarketCentre: 'Centre des marchés',\n\t\t\tmarketMovers: 'Reflets du jour',\n\t\t\tmarketCap: 'Cap. boursière',\n\t\t\tmarketCapShort: 'Cap. boursière',\n\t\t\tmarketCapShort2: 'Capitalisation boursière',\n\t\t\tmarketMoversHeading: '{type} for the {set}',\n\t\t\tmarketDataDelayedBy15: 'Données sur le marché décalées d’au moins 15 minutes',\n\t\t\tmarketDataIsRealTime: 'Les données du marché s’affichent en temps réel, sauf pour les titres hors cote',\n\t\t\tmarketsOverviewDelayedBy15: 'Retard d’au moins 15 minutes',\n\t\t\tmatches: 'Correspondances',\n\t\t\tmaxHoldingsReached: 'Vous avez atteint la limite du nombre de symboles pour cette liste de surveillance.',\n\t\t\tmaxQLHoldingsReached: 'Cette liste a atteint sa limite de symboles.',\n\t\t\tmedia: 'Médias',\n\t\t\tMER: 'RFG',\n\t\t\tMERDescription: 'Le ratio des frais de gestion (RFG) désigne le ratio des frais engagés pour exploiter un fonds, divisé par l\\'actif annuel moyen du fonds.',\n\t\t\tmediumDurationHighQuality: 'Durée moyenne/haute qualité',\n\t\t\tmediumDurationMediumQuality: 'Durée moyenne/qualité moyenne',\n\t\t\tmediumDurationLowQuality: 'Durée moyenne/qualité basse',\n\t\t\tmillion: 'million(s)',\n\t\t\tminimumAdditionalInvestment: 'Minimum additionnel placement',\n\t\t\tminimumInitialInvestment: 'Minimum initial placement',\n\t\t\tminimumInvestmentsTooltip: 'Les placements minimaux CIBC peuvent être plus élevés',\n\t\t\tmining: 'Exploitation minière',\n\t\t\tminorityInterest: 'Minority Interest',\n\t\t\tminPensionLiabAdj: 'Min Pension Liabil Adjust',\n\t\t\tminPensionLiabGain: 'Min Pension Liability Gain',\n\t\t\tminPensionLiabilLoss: 'Min Pension Liability Loss',\n\t\t\tmiscEarnAdjs: 'Misc Earnings Adjustment',\n\t\t\tmissedExpectations: 'En deçà des attentes',\n\t\t\tmobileNumber: 'Numéro de téléphone mobile',\n\t\t\tmobiletelecommunications: 'Télécommunications mobiles',\n\t\t\tmonth: 'Mois',\n\t\t\tmonthly: 'Chaque mois',\n\t\t\tmonthlyOption: 'Mensuelle',\n\t\t\tmonthlyFxOutlook: 'Monthly FX outlook (en anglaise seulement)',\n\t\t\tmonthlyFxOutlookDescription: 'Publication mensuelle qui présente les perspectives à court et à long terme de plusieurs devises importantes. Les prochains événements susceptibles d’influer sur les taux de change y sont aussi signalés.',\n\t\t\tmoreNews: 'Plus de nouvelles',\n\t\t\tmorningstarAnalyst: 'Morningstar Analyst',\n\t\t\tmorningstarEquityStylebox: 'Matrice de style des actions Morningstar',\n\t\t\tmorningstarEquityStyleboxSr: 'Sélectionnez les critères relatifs aux actions de Morningstar dans les matrices de style correspondantes.',\n\t\t\tmorningstarEquityStyleboxCol1: 'V',\n\t\t\tmorningstarEquityStyleboxCol2: 'M',\n\t\t\tmorningstarEquityStyleboxCol3: 'C',\n\t\t\tmorningstarEquityStyleboxRow1: 'F',\n\t\t\tmorningstarEquityStyleboxRow2: 'M',\n\t\t\tmorningstarEquityStyleboxRow3: 'P',\n\t\t\tmorningstarFixedIncomeStylebox: 'Matrice de style des titres à revenu fixe Morningstar',\n\t\t\tmorningstarFixedIncomeStyleboxSr: 'Sélectionnez les critères relatifs aux titres à revenu fixe Morningstar dans les matrices de style correspondantes.',\n\t\t\tmorningstarOverallRisk: 'Risque global Morningstar',\n\t\t\tmorningstarOverallReturn: 'Rendement global Morningstar',\n\t\t\tmorningstar3YearRisk: 'Risque Morningstar sur 3 ans ',\n\t\t\tmorningstar3YearReturn: 'Rendement Morningstar sur 3 ans',\n\t\t\tmorningstar3YearRating: 'Cote Morningstar sur 3 ans',\n\t\t\tmorningstar5YearRisk: 'Risque Morningstar sur 5 ans ',\n\t\t\tmorningstar5YearReturn: 'Rendement Morningstar sur 5 ans',\n\t\t\tmorningstar5YearRating: 'Cote Morningstar sur 5 ans',\n\t\t\tmorningstar10YearRisk: 'Risque Morningstar sur 10 ans ',\n\t\t\tmorningstar10YearReturn: 'Rendement Morningstar sur 10 ans',\n\t\t\tmorningstar10YearRating: 'Cote Morningstar sur 10 ans',\n\t\t\tmorningstarQuant: 'Morningstar Quant',\n\t\t\tmoreMarketMovers: 'Plus de facteurs déterminants des marchés',\n\t\t\tmoreReports: 'Plus de rapports',\n\t\t\tmoversMarketFilter: 'Filtres des facteurs déterminants des marchés',\n\t\t\tmore: 'Plus',\n\t\t\tmorningNewsCall: 'Bulletin Morning News Call du Canada',\n\t\t\tmorningNewsCallWC: 'Bulletin morning news call du Canada',\n\t\t\tusMorningNewsCall: 'Bulletin Morning News Call des États-Unis',\n\t\t\tusMorningNewsCallWC: 'Bulletin morning news call des États-Unis',\n\t\t\tinsightDescription: 'Tenez-vous au courant des dernières nouvelles et perspectives de Reuters et de Marchés des capitaux CIBC.',\n\t\t\tmorningstarReturn: 'Rendement de Morningstar',\n\t\t\tmorningstarOverallRating: 'Cote Morningstar Globale',\n\t\t\tmorningstarReturnRating: 'Cote de rendement de Morningstar',\n\t\t\tmorningstarRisk: 'Cote de risque de Morningstar',\n\t\t\tmorningstarStylebox: 'Matrice de style Morningstar',\n\t\t\tmorningstarBenchmark: 'Principal indice de référence de Morningstar',\n\t\t\tmorningstarStylbox: 'Matrice de style Morningstar',\n\t\t\tmorningstarRating: 'Cote Morningstar',\n\t\t\tmorningstarRatingButtonSr: 'Aggrandir pour afficher les cotes Morningstar par année',\n\t\t\tmorningstarRatings: 'Classement Morningstar',\n\t\t\tmorningstarRiskRating: 'Risque de Morningstar',\n\t\t\tmorningstarReports: 'Rapport de Morningstar',\n\t\t\tmorningstarAnalystCommentary: 'Commentaires des analystes de Morningstar',\n\t\t\tmorningstarAnalystReport: 'Rapport de l\\'analyste Morningstar',\n\t\t\tmorningstarTooltip: 'Le système de notation exclusif de Morningstar classifie les FCB en fonction de leur rendement ajusté au risque. La cote globale correspond à la moyenne pondérée des cotes du FCB sur trois, cinq et dix ans. Les FCB sont notés au moyen d\\'un système d\\'étoiles où un classement de 5 étoiles correspond à la cote maximale et un classement de 1 étoile, à la cote la plus faible.',\n\t\t\tmorningstarStockTooltip: 'Le système de notation de Morningstar relatif aux actions repose sur la comparaison du cours actuel du marché d’un titre avec l’estimation de Morningtar de sa juste valeur. Plus le cours du marché est inférieur à sa juste valeur, plus la cote est élevée. Les actions qui se négocient à un cours largement inférieur à leur juste valeur estimative recevront des cotes plus élevées (4 ou 5 étoiles) et les actions qui se négocient à un prix largement supérieur à leur juste valeur estimative recevront des cotes moins élevées (1 ou 2 étoiles).',\n\t\t\tmorningstarRiskTooltip: 'Évaluation par Morningstar de la variation du rendement mensuel du FCB par rapport aux fonds similaires. La cote de risque globale correspond à la moyenne pondérée des cotes du FCB sur trois, cinq et dix ans.',\n\t\t\tmorningstarDisclaimerETF: \"Données fournies par Morningstar. © Morningstar Research Inc. Tous droits réservés. Les renseignements contenus dans les présentes 1) sont la propriété de Morningstar ou de ses fournisseurs de contenu, 2) ne peuvent être ni copiés ni distribués et 3) leur exactitude, leur exhaustivité et leur fiabilité ne peuvent être garanties. Morningstar et ses fournisseurs de contenu ne peuvent être tenus responsables de toute perte ou de tout préjudice résultant de l'utilisation de ces renseignements. Les rendements passés ne sont pas garants des rendements futurs.\",\n\t\t\tmostActive: 'FNB les plus actifs',\n\t\t\tmostRecentQtr: 'Trimestre le plus récent (TLPR)',\n\t\t\tmovingAverageCrossover: 'Croisements des moyennes mobiles',\n\t\t\tmovingAvgXOVer: 'Croisement MM',\n\t\t\tmovingAverageCrossoverDescription: `On est en présence d'un croisement haussier des moyennes mobiles lorsqu'une moyenne mobile sur une courte période clôture au-dessus d'une moyenne mobile sur une plus longue période (ex. une moyenne mobile simple sur 15 jours clôture au-dessus d'une moyenne mobile simple sur 50 jours).\n\t\t\t\\nOn est en présence d'un croisement baissier des moyennes mobiles lorsqu'une moyenne mobile sur une courte période clôture au-dessous d'une moyenne mobile sur une plus longue période (ex. une moyenne mobile simple sur 15 jours clôture au-dessous d'une moyenne mobile simple sur 50 jours). `,\n\t\t\tmrq: 'TLPR',\n\t\t\tmoneyMarket: 'Marché monétaire',\n\t\t\tmrq1YrAgo: 'TLPR avec TLPR voilà 1 an',\n\t\t\tmunicipalbond: 'Obligations municipales ',\n\t\t\tmutualFundsLower: 'Fonds communs de placement',\n\t\t\tmutualFunds: 'Fonds communs de placement',\n\t\t\trefinitivLipperDisclaimerTitle: 'Refinitiv Valeurs Lipper',\n\t\t\trefinitivLipperDisclaimerText: 'La cote du rendement global d\\'un fonds traduit son rendement global historique établi en fonction de fonds similaires. La cote de rendement constant d\\'un fonds traduit son rendement historique selon le risque en fonction de fonds similaires. Pour la protection du capital, les cotes Lipper sont relatives et non absolues. La cote Lipper Leader ne tient pas compte des effets des frais de vente. Les cotes reposent sur une moyenne à pondération uniforme du rang-centile de chaque mesure sur des périodes de trois, cinq et dix ans (s\\'il y a lieu).',\n\t\t\tRUTRBCIndustry: 'Industrie',\n\t\t\truMktCapUS: 'Capitalisation boursière (M$)',\n\t\t\truPriceLast: 'Cours ($)',\n\t\t\truPriceChange: 'Variation du cours (%)',\n\t\t\truVol10dAvg: 'Volume (M)',\n\t\t\tmutualFundsLabel: 'fonds communs de placement',\n\t\t\tmutualFundCaption: '{count} fonds communs de placement',\n\t\t\tmyAlerts: 'Mes alertes',\n\t\t\tmyWatchLists: 'Mes listes de surveillance',\n\t\t\tmyWatchListsNewDialog: 'Mes listes de surveillance dans une nouvelle fenêtre de dialogue',\n\t\t\tmyQuoteLists: 'Mes listes de cotes',\n\t\t\tmyCriteria: 'Mes critères',\n\t\t\tmySearches: 'Mes recherches',\n\t\t\tmySearchesPlaceholder: 'La section de recherche personnalisée liée aux rapports d’analystes n’est pas tout à fait terminée, mais elle le sera bientôt. Notre nouveau format amélioré vous permettra de trouver tous les renseignements de recherche personnalisée que vous avez enregistrés.',\n\t\t\tmachineryEquip: 'Machinery/Equipment',\n\t\t\tmaCrossover15_50: 'Croisement MM (MMS 15 jours/MMS 50 jours)',\n\t\t\tminPensionLiabiliAdj: 'Min. Pension Lblty Adj.',\n\t\t\tnStars: '{stars} stars',\n\t\t\tNA: 'N\\'est pas applicable',\n\t\t\tname: 'Nom',\n\t\t\tnav: 'VAN',\n\t\t\tNAVShare: 'Valeur liquidative/action',\n\t\t\tnearTheMoney: 'Près du cours',\n\t\t\tnasdaqChartHidden: 'Graphique de l’indice NASDAQ',\n\t\t\tnetAssetValue: 'Valeur liquidative',\n\t\t\tnetCashBeginBalRsrvFutUse: 'NetCash-BeginBal/RsvdforFutUse',\n\t\t\tnetCashEndBalRsrvFutUse: 'NetCash-EndBal/RsrvforFutUse',\n\t\t\tnetChangeCash: 'Net Change in Cash',\n\t\t\tnetIncome: 'Net Income',\n\t\t\tnetIncomeAfterTax: 'Net Income After Taxes',\n\t\t\tnetIncomeBeforeExtraItems: 'Net Income Before Extra. Items',\n\t\t\tnetIncomeBeforeTax: 'Net Income Before Taxes',\n\t\t\tnetInterestInAfterLoanLoss: 'NetInterIn after Loan Loss Provision',\n\t\t\tnetInterestIncome: 'Net Interest Income',\n\t\t\tnetInvestmentIncome: 'Net Investment Income',\n\t\t\tnetPremEarned: 'Net Premiums Earned',\n\t\t\tnetSales: 'Net Sales',\n\t\t\tnextArticles: 'Mettre à jour les résultats précédents avec la page suivante',\n\t\t\tnewWatchlist: 'Nouvelle liste de surveillance',\n\t\t\tnew: 'Nouveau',\n\t\t\tnews: 'Nouvelles',\n\t\t\tNews: 'Nouvelles',\n\t\t\tnewAboutThisEtf: 'Nouvelles à propos de ce FNB',\n\t\t\tnewsHeadlines: 'Manchettes',\n\t\t\tnewsTeaserHeadline: 'Sommaire-{headline}',\n\t\t\tnewWatchlistName: 'Watch List {name}',\n\t\t\tnetPercentAllocation: 'Répartition nette en pourcentage',\n\t\t\tnetPercentOfHoldings: 'Pourcentage net des placements',\n\t\t\tno: 'Non',\n\t\t\tnoDataAvailable: 'Aucune donnée disponible',\n\t\t\tnoETFHoldingsNews: 'Des rapports de nouvelles sur les placements sont disponibles pour ce FNB.',\n\t\t\tnoData: 'Pas de données',\n\t\t\tnonCashItems: 'Non-Cash Items',\n\t\t\tnonclassifiedequity: 'Actions non classées',\n\t\t\tnonequityinvestmentinstruments: 'Instruments de placement autres que des actions',\n\t\t\tnoNewsAvailable: 'Aucune nouvelle n\\'est disponible',\n\t\t\tnoneDeclared: 'Aucune déclaration',\n\t\t\tnonlifeinsurance: 'Assurance autre que l’assurance vie',\n\t\t\tnorthAmericanMarkets: 'Marchés nord-américains',\n\t\t\tnoMutualFundsAreInThisQuotelist: 'Aucun fonds commun de placement ne figure dans cette liste des cotes.',\n\t\t\tnonInterestExpenseBank: 'Non-Interest Expense, Bank',\n\t\t\tnonInterestIncomeBank: 'Non-Interest Income, Bank',\n\t\t\tnoOptionsAreInThisQuotelist: 'Aucune option ne figure dans cette liste des cotes.',\n\t\t\tnormalIIncAvailtoCommon: 'Normalized Inc Avail to Common',\n\t\t\tnormalIncomeAfterTax: 'Normalized Income After Tax',\n\t\t\tnormalizedIncomeBeforeTax: 'Normalized Income Before Taxes',\n\t\t\tnoRecentSymbols: 'Aucun symbole récent',\n\t\t\tnoSavedScreens: 'Vous n’avez aucun écran enregistré. ',\n\t\t\tnoSecuritiesAreInThisQuoteList: 'Aucun titre ne figure dans cette liste des cotes.',\n\t\t\tnoSymbolsAreInThisQuotelist: 'No symbols are in this Quote List.',\n\t\t\tnoSymbolsAreInThisWatchlist: 'No symbols are in this Watch List.',\n\t\t\tnoSymbolsInWatchlist: 'Vous n’avez aucun symbole dans {name}',\n\t\t\tnoTopHoldings: 'Aucun titre principal pour ce fonds',\n\t\t\tnoTopSectors: 'Aucun secteur principal pour ce fonds',\n\t\t\tnoWatchLists: 'FRENCH No Watch Lists',\n\t\t\tnoWatchListsLong: 'It looks like you have no watchlists created yet.',\n\t\t\tnoWatchListsLongLink: 'Would you like to create a watchlist?',\n\t\t\tnoReportsAvailable: 'Aucun rapport n’est disponible',\n\t\t\tnoReportsAvailableForThisEtf: 'Aucun rapport d’analyste de Morningstar n’est disponible pour ce FNB.',\n\t\t\tnoDistributionsInformation: 'Les renseignements sur la distribution ne sont pas disponibles pour ce FNB.',\n\t\t\tnumberOf: 'Number of',\n\t\t\tnumberOfResults: 'Nombre de résultats',\n\t\t\tnumberOfUnits: 'Nombre de parts',\n\t\t\tnumberOfShares: 'Nombre d\\'actions',\n\t\t\tnumberOfContracts: 'Nombre de contrats',\n\t\t\tnumberOfDaysWithinNav: 'Nombre de jours dans une fourchette variant de 0,5 % par rapport à la valeur liquidative',\n\t\t\tnumberOfDaysAtPremium: 'Nombre de jours avec prime',\n\t\t\tnumberOfDaysAtNav: 'Nombre de jours à la valeur liquidative',\n\t\t\tnumberOfDaysAtDiscount: 'Nombre de jours avec escompte',\n\t\t\tnumberOfFundsInCategory: 'Nombre de fonds dans la catégorie',\n\t\t\tnumberOfHoldings: 'Classement parmi les avoirs',\n\t\t\tnumOfAnalysts: 'Nombre d\\'analystes',\n\t\t\tnatResources: 'Natural Resources',\n\t\t\tnetLoans: 'Net Loans',\n\t\t\tnonInterestBearingDept: 'Non-Interest Bearing Dep.',\n\t\t\tnoteRcvbleLongTerm: 'Note Rcvble - Long Term',\n\t\t\tnotesPayableSTDebt: 'Notes Payable/ST Debt',\n\t\t\tnotesRcvbleShortTerm: 'Notes Recvble - Short Term',\n\t\t\toff52WeekHigh: '{symbol} affiche un écart de {diff52Week} écart sur 52 semaines haut de {high} $ enregistré le {highDate}',\n\t\t\toff52WeekHighSr: '{symbol} est en {direction} de {diff52Week} par rapport à son sommet sur 52 semaines, qui était de {high} $ le {highDate}',\n\t\t\tofficerNameTitle: 'Dirigeant nom/profil',\n\t\t\tok: 'OK',\n\t\t\tokSr: 'Sélectionner « OK » pour supprimer les éléments et fermer la fenêtre de dialogue',\n\t\t\tokSr2: 'OK et fermer la fenêtre de dialogue',\n\t\t\tof: 'de',\n\t\t\toil: 'Pétrole',\n\t\t\t'oilequipment,services&distribution': 'Équipement, services et distribution dans le secteur du pétrole',\n\t\t\toilSr: 'Graphique du pétrole',\n\t\t\t'oil&gas': 'Pétrole et gaz',\n\t\t\t'oil&gasproducers': 'Production de pétrole et de gaz',\n\t\t\tonAssets: 'de l’actif',\n\t\t\toneMonth: 'un mois',\n\t\t\tonEquity: 'des capitaux propres',\n\t\t\toneWeek: 'une semaine',\n\t\t\toneYear: 'un an',\n\t\t\toperatingMargin: 'Marge d\\'exploitation',\n\t\t\topen: 'Ouverture',\n\t\t\topenAlert: 'Ouvrir le menu {name} dans une nouvelle boîte de dialogue',\n\t\t\topenMenu: 'Ouvrir le menu',\n\t\t\topenSymbol: 'Ouvrir le menu {symbol} dans une nouvelle boîte de dialogue',\n\t\t\topenHelpContent: 'Ouvrir le contenu d’aide',\n\t\t\topenInt: 'Intérêt en cours',\n\t\t\topenInterest: 'Intérêt en cours',\n\t\t\topenSymbolMenu: 'Ouvrir le menu {symbol} dans une nouvelle boîte de dialogue',\n\t\t\topIncome: 'Operating Income',\n\t\t\topsMaintenance: 'Operations & Maintenance',\n\t\t\toptions: 'Options',\n\t\t\toptionChain: 'Option chain',\n\t\t\toptionsNotFound: '{symbol} n’a pas d’options.',\n\t\t\topenPdf: 'Ouvrir le PDF',\n\t\t\topenPdfInANewWindow: 'Ouvrir le PDF {title} dans une nouvelle fenêtre',\n\t\t\topenInANewWindow: 'Ouvrir le {title} dans une nouvelle fenêtre',\n\t\t\topenPdfSr: 'Ouvrir le PDF {name}',\n\t\t\toptionsCaption: '{count} Options',\n\t\t\toptionsExercised: 'Options Exercised',\n\t\t\toptionChainFor: 'Chaîne d’options pour {symbol}',\n\t\t\toptionDetails: 'Renseignements sur l’option',\n\t\t\toptionDetailsSrOnly: 'Renseignements sur {symbol}',\n\t\t\toutOfTheMoney: 'Hors du cours',\n\t\t\tother: 'Autres',\n\t\t\tMSDRegionOther: 'Région Autres',\n\t\t\tothers: 'Autres',\n\t\t\totherAssets: 'Other Assets',\n\t\t\totherFinancingCashFlow: 'Other Financing Cash Flow',\n\t\t\totherInvestCashFlow: 'Other Investing Cash Flow',\n\t\t\totherInvestCashFlowTot: 'OtherInvestCashFlowItms,Tot',\n\t\t\totherNonCashItems: 'Other Non-Cash Items',\n\t\t\totherExpense: 'Other Expense',\n\t\t\totherInsuranceRev: 'Other Insurance Revenue',\n\t\t\totherInterestIncome: 'Other Interest Income',\n\t\t\totherNet: 'Other, Net',\n\t\t\totherNonbankIncome: 'Other Non-Bank Income',\n\t\t\totherNonInsurRev: 'Other Non-Insur Revenue',\n\t\t\totherNonOpIncomeExpense: 'Other Non-Operating Income (Expenses)',\n\t\t\totherNonutilRev: 'Other Non-Utility Revenue',\n\t\t\totherOpExpense: 'Other Operating Expense',\n\t\t\totherOpExpenseTotal: 'Other Operat Expse, Total',\n\t\t\totherRev: 'Other Revenue',\n\t\t\totherRevenue: 'Other Revenue',\n\t\t\totherRevTotal: 'Other Revenue, Total',\n\t\t\totherUnusualExpense: 'Other Unusual Expense',\n\t\t\totherUnusualIncome: 'Other Unusual Income',\n\t\t\totherUtilRev: 'Other Utility Revenue',\n\t\t\totherAssetsTotal: 'Other Assets, Total',\n\t\t\totherBearingLiabili: 'Other Bearing Liabilities ',\n\t\t\totherBearingLiabiliTotal: 'Other Bearing Lblts, Total',\n\t\t\totherComprehensiveIncome: 'Other Comprehensive Income',\n\t\t\totherCurrLiabiliTotal: 'Other Curr. Lblts, Total',\n\t\t\totherCurrentAsst: 'Other Current Assets',\n\t\t\totherCurrentAsstTotal: 'Other Curr. Assets, Total',\n\t\t\totherCurrntLiabili: 'Other Current Liabilities',\n\t\t\totherDept: 'Other Deposits',\n\t\t\totherEarningAsst: 'Other Earning Assets',\n\t\t\totherEquity: 'Other Equity',\n\t\t\totherEquityTotal: 'Other Equity, Total',\n\t\t\totherErngAsstTotal: 'Other Erng. Assets, Total',\n\t\t\totherLTLiabilities: 'Other LT Liabilities',\n\t\t\totherLibailities: 'Other Liabilities',\n\t\t\totherLibailitiesTotal: 'Other Liabilities, Total',\n\t\t\totherLongTermAsst: 'Other Long Term Assets',\n\t\t\totherPayables: 'Other Payables',\n\t\t\totherPolicyholdFunds: 'Other Policyholders' Funds',\n\t\t\totherPropPlantEquip: 'Other Prop./Plant/Equip.',\n\t\t\totherRcvlble: 'Other Receivables',\n\t\t\totherRealEstateOwned: 'Other Real Estate Owned',\n\t\t\totherSTBorrow: 'Other ST Borrowings',\n\t\t\totherShortTrmInvest: 'Other Short Trm Invest.',\n\t\t\toverall: 'Période globale',\n\t\t\toverallReturn: 'Rendement global',\n\t\t\toverallReturnDescription: 'Évaluation par Morningstar du rendement excédentaire du FCB par rapport à un taux sans risque, comparativement aux fonds similaires. La cote de rendement globale correspond à la moyenne pondérée des cotes du FCB sur trois, cinq et dix ans.',\n\t\t\toverallRisk: 'Cote de risque globale',\n\t\t\toverallRiskDescription: 'Évaluation par Morningstar de la variation du rendement mensuel du FCB par rapport aux fonds similaires. La cote de risque globale correspond à la moyenne pondérée des cotes du FCB sur trois, cinq et dix ans.',\n\t\t\toverallTimeframe: 'Délai global',\n\t\t\toverThe: 'pendant',\n\t\t\toverview: 'Aperçu',\n\t\t\tOverview: 'Aperçu',\n\t\t\tpleaseSelectAListToAddTo: 'Sélectionnez une liste de surveillance pour y ajouter des symboles.',\n\t\t\tpage: 'Page',\n\t\t\tpageCount: 'Page {count}',\n\t\t\tpayableAccrued: 'Payable/Accrued',\n\t\t\tpolicyLoans: 'Policy Loans',\n\t\t\tpreferrredStockNet: 'Preferred Stock, Net',\n\t\t\tprepaidExpense: 'Prepaid Expenses',\n\t\t\tpreferences: 'Préférences',\n\t\t\tprincipPaymntSecurit: 'PrincipPaymnts fromSecurits',\n\t\t\tpayoutRatio: 'Ratio De Distribution',\n\t\t\tpctChange: 'Variation du prix sur',\n\t\t\tpE: 'C/B',\n\t\t\tpeRatio: 'Ratio cours',\n\t\t\tpeRatioTTM: 'Ratio de P/E (DDM)',\n\t\t\tpercentChange: '% Change',\n\t\t\tperformers: 'FNB performants',\n\t\t\tperiod: 'Période',\n\t\t\tpersonalgoods: 'Biens personnels',\n\t\t\t'pharmaceuticals&biotechnology': 'Secteurs des produits pharmaceutiques et de la biotechnologie',\n\t\t\tphone: 'Téléphone : ',\n\t\t\tpdfReports: 'Rapports en format PDF',\n\t\t\tpleaseTryAgain: 'Please try again',\n\t\t\tprimary: 'Principal',\n\t\t\tprimaryEmail: 'Adresse de courriel principale',\n\t\t\tprimarySr: 'Principaux résultats du rapport seulement s’ils sont cochés',\n\t\t\tpriceAtLaunch: 'Prix au lancement',\n\t\t\tpriceEarnings: 'Ratio cours/benefice',\n\t\t\tpriceSales: 'Ratio cours/ventes',\n\t\t\tpriceSalesRatio: 'Ratio cours/ventes',\n\t\t\tpriceCashFlow: 'Cours/flux de trésorerie',\n\t\t\tpriceCashFlowRatio: 'Ratio cours/flux de trésorerie',\n\t\t\tpriceTangibleBook: 'Price/tangible book',\n\t\t\tpriceFreeCashFlow: 'Ratio cours/liquidités disponibles',\n\t\t\tpricing: 'Tarification',\n\t\t\tpricingAndVolume: 'Prix et volume',\n\t\t\tperiodRangeError: 'Sélectionner une date de fin valide qui est postérieure à la date de début.',\n\t\t\tpricingVolume: 'Prix et volume',\n\t\t\tperformance: 'Rendement',\n\t\t\tperformanceReview: 'Évaluer le rendement',\n\t\t\tpercentOfHolding: '% des placements',\n\t\t\tpercentOfHoldings: 'Pourcent placements',\n\t\t\tpercentOfDaysWithinNav: '% des jours dans une fourchette variant de 0,5 % par rapport à la valeur liquidative',\n\t\t\tpercentOfNetAssets: \"% d'actif net\",\n\t\t\tpleaseNameYourWatchList: 'Veuillez nommer votre nouvelle liste de surveillance.',\n\t\t\tpleaseNote: 'Remarque:',\n\t\t\tpleaseSelectSymbols: 'Veuillez sélectionner les symboles à supprimer.',\n\t\t\tportfolio: 'Portefeuille',\n\t\t\tportfolioReview: 'Passer en revue le portefeuille',\n\t\t\tportfolioAllocation: 'Répartition du portefeuille',\n\t\t\tportfolioTurnover: 'Chiffre du portefeuille',\n\t\t\tportfolioTurnoverDescription: 'Le taux de rotation du portefeuille mesure la fréquence à laquelle les composantes de l\\'actif d\\'un FCB sont achetées et vendues.',\n\t\t\tpreferred: 'Titres privilégiés',\n\t\t\tpreferredDiv: 'Preferred Dividends',\n\t\t\tpreTaxMargin: 'Marge avant impôts',\n\t\t\tproduct: 'Produit',\n\t\t\tpreviousArticles: 'Mettre à jour les résultats précédents avec la page précédente',\n\t\t\tpreviousClose: 'Clôture précédente',\n\t\t\tpreviousCloseRange: 'Fourchette de clôture précédente',\n\t\t\tpreviousCloseRangeDescription: 'Fourchette des cours de clôture de la séance de négociation précédente.',\n\t\t\tpreviousMonthEnd: 'Toutes les autres données en date de la fin du mois.',\n\t\t\tpremiumDiscount: 'Prime/escompte',\n\t\t\tpremiumDiscountDaily: 'À prime/ à escompte (Journalier)',\n\t\t\tpremiumDiscountDailyChart: 'À prime/ à escompte (Journalier) Graphique',\n\t\t\tpremiumDiscountToNav: 'Prime/escompte par rapport à la valeur liquidative',\n\t\t\tpremDiscountChartDisclaimer: 'Situation liée au cours qui survient lorsque le FCB se négocie à prime ou à escompte par rapport à sa valeur liquidative. On dit d\\'un FCB qui se négocie à un cours supérieur à sa valeur liquidative qu\\'il se négocie « à prime ». Lorsque le FCB se négocie à un cours inférieur à sa valeur liquidative, il se négocie « à escompte ».',\n\t\t\tpremiumAndDiscountDays: 'Jours de prime et escompte',\n\t\t\tpremiumAndDiscountAmts: 'Montants de prime et escompte',\n\t\t\tprice: 'cours',\n\t\t\tpricePerformancePrix: 'Prix',\n\t\t\tpriceRatio: 'Ratio cours',\n\t\t\tpriceChange: 'Variation du prix',\n\t\t\tsur: 'sur',\n\t\t\tpriceDollarGainers: 'Titres performants ($)',\n\t\t\tpriceDollarLosers: 'Titres perdants ($)',\n\t\t\tpricePctGainers: 'Titres performants (%)',\n\t\t\tpricePctLosers: 'Titres perdants (%)',\n\t\t\tpricePerContract: 'Prix par contrat',\n\t\t\tpricePerShare: 'Prix par action',\n\t\t\tpricePerUnit: 'Prix par part',\n\t\t\tprofile: 'Profil',\n\t\t\tpricePerformance: 'Performance au niveau des prix',\n\t\t\tprofitMargin: 'Marge bénéficiaire',\n\t\t\tprofitability: 'Rentabilité',\n\t\t\tproFormaAdj: 'Pro Forma Adjustment',\n\t\t\tproFormaBasicEPS: 'Pro Forma Basic EPS',\n\t\t\tproFormaDilutedEPS: 'Pro Forma Diluted EPS',\n\t\t\tproFormaNetIncome: 'Pro Forma Net Income',\n\t\t\tpropertyTax: 'Property & Other Taxes',\n\t\t\tprovisionIncomeTax: 'Provision for Income Taxes',\n\t\t\tpurchAcqIntangibles: 'Purchase/Acq of Intangibles',\n\t\t\tpurchaseDetails: 'Détails de l\\'achat',\n\t\t\tpurchaseDetailsCurrency: 'Devise / détails d’achat',\n\t\t\tpurchasedPower: 'Purchased Power',\n\t\t\tpurchasedRandDWrittenOff: 'Purchased R&D Written-Off',\n\t\t\tpurchaseFixedAssets: 'Purchase of Fixed Assets ',\n\t\t\tpurchaseInvestment: 'Purchase of Investments',\n\t\t\tpurchaseRD: 'Purchased R&D',\n\t\t\tput: 'Option de vente',\n\t\t\tputs: 'Options de vente',\n\t\t\tpensionBeneOverfunded: 'Pension Bene. - Overfunded',\n\t\t\tpensionBenefitsUnderfunded: 'Pension Benefits - Underfunded',\n\t\t\tpolicyLiabilities: 'Policy Liabilities ',\n\t\t\tprefStockNonRdmbl: 'Pref. Stock - Non Rdmbl.',\n\t\t\tprefStockNonRdmblNet: 'Pref. Stock-Non Rdmbl, Net',\n\t\t\tpropPlantEquipGross: 'Prop./Plant/Equip. - Gross',\n\t\t\tpropPlantEquipNet: 'Prop./Plant/Equip. - Net',\n\t\t\tprovDoubtAccts: 'Prov. for Doubtful Accts',\n\t\t\tquarterly: 'Trimestriels',\n\t\t\tquarterlyOption: 'Trimestrielle',\n\t\t\tquarterlyIncomeStatementItem: 'Élément de l’état des résultats trimestriel',\n\t\t\tquarterlyBalanceSheetItem: 'Élément du bilan trimestriel',\n\t\t\tquarterlyCashFlowItem: 'Élément des flux de trésorerie trimestriels',\n\t\t\tquickScreener: 'Sélection rapide',\n\t\t\tquintileForIndustry: '{quintile} pour le secteur',\n\t\t\tquotedetail: 'Détails de la cote',\n\t\t\tquotesDelayedBy15: 'Cotes décalées d’au moins 15 minutes',\n\t\t\tquarterlyEps: 'RPA trimestriel',\n\t\t\tquickRatio: 'Ratio de liquidité relative',\n\t\t\trAndD: 'Research & Development',\n\t\t\trangeVariable: '{min} à {max}',\n\t\t\trate: 'Taux',\n\t\t\trating: 'Cote',\n\t\t\tratingPrevSummaryText: ' This is an {trend} trend from the previous rating of {ratingText} ({rating}). As of {prevDate} ',\n\t\t\tratingSummary: 'Sommaire des cotes',\n\t\t\tratingSummaryText1: 'La recommandation de consensus est ',\n\t\t\tratingSummaryText2: ' ou ',\n\t\t\tratingSummaryText3: ' au ',\n\t\t\tratingSummaryText4: ' avec ',\n\t\t\tratingSummaryText5: ' de ',\n\t\t\tratingSummaryText6: ' total de report d\\'analystes.',\n\t\t\tratingSummaryText: 'The consensus recommendation is {rating} or {ratingText} as of {ratingDate} with {opinions} of {analysts} total analysts reporting.',\n\t\t\tratio: 'Ratio',\n\t\t\treadFull: 'Afficher description complète',\n\t\t\treadArticle: 'Lire l’article',\n\t\t\treadCommentary: 'Lire les commentaires',\n\t\t\treadCommentarySR: 'Lire les commentaires sur {headline}',\n\t\t\treadArticleSr: 'Lire l’article sur {headline}',\n\t\t\treadMoreReports: 'Plus de rapports',\n\t\t\trealestate: 'Immobilier',\n\t\t\tMSDStockSectorRealEstate: 'Secteur Immobilier',\n\t\t\t'realestateinvestment&services': 'Placements et services immobiliers',\n\t\t\trealestateinvestmenttrusts: 'Fiducies de placement immobilier',\n\t\t\trealEstateOpExpense: 'Real Estate Operat Expnse',\n\t\t\trealEstateOpGain: 'Real Estate Operation Gain',\n\t\t\trealizedGainLoss: 'Realized Gains (Losses)',\n\t\t\trecentEtfs: 'Nouveaux FNB',\n\t\t\trecentEtfsHidden: 'Veuillez sélectionner parmi les nouveaux FNB',\n\t\t\trecentSymbolNews: 'Nouvelles {symbol} récentes',\n\t\t\trecentWatchlistNews: 'Nouvelles récentes de la {watchlist}',\n\t\t\tredemptionCharge: 'Frais de rachat',\n\t\t\trename: 'Renommer',\n\t\t\trefinitivDisclaimer: 'Les données de marché et d’actualité sont fournies par Refinitiv. © Refinitiv. La réédition ou la distribution du contenu des données Refinitiv, notamment par cadrage (framing) ou tout autre acte similaire, est strictement interdite sans le consentement écrit et préalable de Refinitiv. Refinitiv ne peut être tenu pour responsable en cas d’erreur ou de retard dans le contenu des données Refinitiv, ou pour toute action ou décision prise sur la base de ces données. Le logo Refinitiv est une marque déposée de Refinitiv et de ses sociétés affiliées.',\n\t\t\trefreshList: 'Actualiser la liste',\n\t\t\treinsuranceExpense: 'Reinsurance - Expense',\n\t\t\treinsuranceIncome: 'Reinsurance - Income',\n\t\t\trelativeStrengthIndex: 'Indice de force relative',\n\t\t\trelativeStrengthIndexDescription: 'L\\'indice de solidité relative compare l\\'ampleur des gains récents d\\'un titre à l\\'ampleur de ses pertes récentes, et traduit cette information en un chiffre de 0 à 100. L\\'indice de solidité relative indique si un titre est suracheté ou survendu. Un indice supérieur à 70 peut traduire une position survendue et un indice inférieur à 30, une position surachetée.',\n\t\t\trelativeVolume: 'Volume relatif',\n\t\t\trestructuringCharge: 'Restructuring Charge',\n\t\t\t'P-AM': 'Put',\n\t\t\tremoveSelected: 'Remove Selected',\n\t\t\treports: 'Rapports',\n\t\t\treportNotAvailable: 'Rapport non disponible',\n\t\t\treportsReview: 'Passer en revue les rapports',\n\t\t\trepurchRetirementCommon: 'Repurch/Retirement Common',\n\t\t\trepurchRetirementPreferd: 'Repurch/Retirement Preferd',\n\t\t\trepurchRetirmntCommonPreferr: 'Repurch/Retirmnt Common/Preferr',\n\t\t\treportTitle: 'Titre du rapport',\n\t\t\tresearchHighlights: 'Points saillants de la recherche (fichiers PDF)',\n\t\t\tresults: '{count} résultats',\n\t\t\tresultsNoCount: 'Résultats',\n\t\t\treturn: 'Rendement',\n\t\t\treturnYear: 'Rendement de {year}',\n\t\t\treturns: 'Rendements',\n\t\t\treturnToNews: 'Retour aux nouvelles',\n\t\t\treturnToReports: 'Revenir aux rapports',\n\t\t\treturnToCommentary: 'Retour au commentaires',\n\t\t\treturnsNotAnnualized: '',\n\t\t\treturnOnAssets: 'Retour sur les biens',\n\t\t\treturnOnAssets2: 'Rendement de l’actif',\n\t\t\treturnOnInvestments: 'Rendement du capital investi',\n\t\t\treturnOnEquity: 'Retour sur l\\'action/l\\'équité',\n\t\t\treturnOnEquity2: 'Rendement des capitaux propres',\n\t\t\trevenue: 'Revenus',\n\t\t\trevenueGrowthNfy: 'Croissance des revenus (prochain exercice)',\n\t\t\trevenueGrowthNfy2: 'Croissance des revenus',\n\t\t\trevenuePerShare: 'Revenus par action',\n\t\t\trevenueGrowth: 'Croissance des revenus',\n\t\t\treview: 'Passer en revue',\n\t\t\treviewCharts: 'Passer en revue les graphiques',\n\t\t\treviewChartsSymbolSr: 'Passer en revue les graphiques du {symbol}',\n\t\t\treviewLipperLeaders: 'Passer en revue les valeurs Lipper',\n\t\t\treviewLipperLeadersSymbolSR: 'Passer en revue les valeurs Lipper du {symbol}',\n\t\t\treviewSavedScreens: 'Examiner les écrans enregistrés',\n\t\t\treviewSavedSearches: 'Revoir les recherches sauvegardées',\n\t\t\treviewSymbol: 'Review {symbol}',\n\t\t\treviewSnapshotSR: 'Passer en revue l’instantané {symbol}',\n\t\t\treviewPerformanceSR: 'Évaluer le rendement {symbol}',\n\t\t\treviewPortfolioSR: 'Passer en revue le portefeuille {symbol}',\n\t\t\treviewReportsSR: 'Passer en revue les rapports {symbol}',\n\t\t\treviewCommentary: 'Passer en revue les commentaires',\n\t\t\treviewSpecificCommentary: 'Passer en revue les commentaires ({title})',\n\t\t\treviewFundamentals: 'Examen des éléments fondamentaux',\n\t\t\treviewNumResults: 'Passer en revue {numResults} résultats',\n\t\t\treviewNMatches: 'Examiner {count} Correspondances',\n\t\t\treviewPerformance: 'Examiner le rendement',\n\t\t\treviewPortfolio: 'Passer en revue le portefeuille',\n\t\t\treviewMarketsAtAGlance: 'Jeter un coup d’œil sur les marchés',\n\t\t\trho: 'Rho',\n\t\t\trsi14d: 'Indice de force relative 14 jours',\n\t\t\trSquaredVsCategory: 'R-Squared vs. {category}',\n\t\t\trSquaredVsCategoryTooltip: 'Le coefficient de détermination montre la solidité d\\'une relation linéaire entre un titre et son indice de référence sur une période donnée. Les valeurs du coefficient de détermination vont de 0 à 1. Un coefficient de détermination élevé indique une solide relation linéaire.',\n\t\t\trdmblConvPrefStock: 'Rdmbl Conv. Pref. Stock',\n\t\t\tredeemablePrefStockSRPR: 'Redeemable Preferred Stock',\n\t\t\tredeemablePrefStockZPSK: 'Redeemable Preferred Stock',\n\t\t\treinsuranceAsst: 'Reinsurance - Asset',\n\t\t\treinsuranceLiability: 'Reinsurance - Liability',\n\t\t\trepurchaseAgreements: 'Repurchase Agreements',\n\t\t\treserves: 'Reserves',\n\t\t\trestrictedCashCurrent: 'Restricted Cash - Current',\n\t\t\trestrictedCashLT: 'Restricted Cash - LT',\n\t\t\tretEarnAccumDeficit: 'Ret. Earn.(Accum. Deficit)',\n\t\t\trisk: 'Risque',\n\t\t\trSquared: 'R au carré',\n\t\t\trSquaredYear: 'R au carré ({year} an) ',\n\t\t\tMSDPrimaryIndexRSquaredY1Ptile: 'R au carré (1 an) ',\n\t\t\tMSDPrimaryIndexRSquaredY3Ptile: 'R au carré (3 an) ',\n\t\t\tMSDPrimaryIndexRSquaredY5Ptile: 'R au carré (5 an) ',\n\t\t\tMSDPrimaryIndexRSquaredY10Ptile: 'R au carré (10 an) ',\n\t\t\tMSDPrimaryIndexRSquaredY1: 'R au carré (1 an) ',\n\t\t\tMSDPrimaryIndexRSquaredY3: 'R au carré (3 an) ',\n\t\t\tMSDPrimaryIndexRSquaredY5: 'R au carré (5 an) ',\n\t\t\tMSDPrimaryIndexRSquaredY10: 'R au carré (10 an) ',\n\t\t\trSquaredDescription: 'Le R au carré sur une période d’un an, de trois ans, de cinq ans ou de dix ans montre la solidité d’une relation linéaire entre le rendement d’un FNB et son indice de référence sur une période déterminée. Les valeurs du R au carré vont de 0 à 1. Un R au carré élevé traduit une solide relation linéaire, alors qu’un R au carré faible indique que le FNB n’agit pas comme son indice de référence.',\n\t\t\tsaleBusiness: 'Sale of Business',\n\t\t\tsaleFixedAssets: 'Sale of Fixed Assets',\n\t\t\tsaleIntangible: 'Sale of Intangible',\n\t\t\tsaleIssuanceCommon: 'Sale/Issuance of Common',\n\t\t\tsaleIssuancePreferred: 'Sale/Issuance of Preferred',\n\t\t\tsaleIssueCommonPrefrd: 'Sale/Issue of Common/Prefrd',\n\t\t\tsaleMaturityInvestments: 'Sale/Maturity of Investment',\n\t\t\tsalesRatio: 'ventes',\n\t\t\tsalesReturnAllow: 'Sales Returns & Allowances',\n\t\t\tsave: 'Enregistrer',\n\t\t\tsaveAs: 'Enregistrer comme',\n\t\t\tsaveScreenInNewDialog: 'La sélection enregistrée s’ouvre dans une nouvelle boîte de dialogue',\n\t\t\tsaveAsNewScreenInANewDialog: 'Enregistrer comme nouvelle sélection dans une nouvelle boîte de dialogue',\n\t\t\tsavedAdvancedSearches: 'Recherches avancées sauvegardées',\n\t\t\tsavedScreensCaption: 'Tableau des sélections enregistrées',\n\t\t\tsavedScreenLinkCaption: '{screenName} dans le tableau correspondant',\n\t\t\tsavedScreens: 'Sélections enregistrées',\n\t\t\tsaveSr: 'Enregistrer et aller aux listes de surveillance',\n\t\t\tsaveAndCloseDialogue: 'Enregistrer et fermer la fenêtre de dialogue',\n\t\t\tsavedItems: 'Saved Items',\n\t\t\tsavedSearches: 'Recherches sauvegardées',\n\t\t\tsaveWatchlist: 'Enregistrer et aller aux listes de surveillance',\n\t\t\tscreenIncludesCriteria: 'Cette sélection prend en compte les critères suivants:',\n\t\t\tscreenName: 'Nom de l’écran',\n\t\t\tScreener: 'Sélection',\n\t\t\tScreenerDistribution: 'Distribution',\n\t\t\tscreenerFundType: 'Type de fonds',\n\t\t\tscreenerFundTypeDescription: 'Classification générale des FCB reposant sur la catégorie d\\'actif, la stratégie ou le pays.',\n\t\t\tscreenerPortfolio: 'Portefeuille',\n\t\t\tscreeners: 'Sélection',\n\t\t\tscreenerLinkSr: 'Sélection de {type}',\n\t\t\tscreenerPreview: 'Notre nouvelle page d’outils de sélection n’est pas tout à fait terminée, mais elle le sera bientôt. Une fois que la page sera prête, tous les renseignements liés aux outils de sélection que vous avez enregistrés seront accessibles dans notre nouveau format amélioré. Restez à l’affût!',\n\t\t\tsearchByKeyword: 'Recherche par mot-clé',\n\t\t\tsearchIn: 'Rechercher dans',\n\t\t\tsearch: 'Recherche',\n\t\t\tsearchOrSecurity: 'ou titre',\n\t\t\tsearchSymbol: 'Recherche par symbole',\n\t\t\tsearchSymbolOrSecurity: 'Recherche par symbole ou titre',\n\t\t\tsearchSymbolOrCompany: 'Recherche par symbole ou par entreprise',\n\t\t\tsearchSymbolToAddToList: 'Rechercher des symboles à ajouter à votre liste.',\n\t\t\tsecondaryEmail: 'Adresse de courriel secondaire',\n\t\t\tsectorEquity: 'Actions sectorielles',\n\t\t\tsetSymbolAlerts: 'Définir des alertes pour {symbol}',\n\t\t\tsecurity: 'Titre',\n\t\t\tselectAll: 'Sélectionner tout',\n\t\t\tselectSector: 'Sélectionner un secteur',\n\t\t\tselectSectorFirst: 'Sélectionner d’abord un secteur',\n\t\t\tselectSymbol: 'Sélectionner {symbol} dans la liste de surveillance',\n\t\t\tselectSymbolBasic: 'Sélectionner {symbol}',\n\t\t\tselectSymbolFromQuoteList: 'Sélectionner {symbol} dans la liste des cotes',\n\t\t\tselectAllSecurities: 'Sélectionner tous les titres de la liste de surveillance actuelle',\n\t\t\tselectAllOptions: 'Sélectionner toutes les options de la liste des cotes actuelle',\n\t\t\tselectAllFunds: 'Sélectionner tous les fonds de la liste des cotes actuelle',\n\t\t\tselectAllQLSecurities: 'Sélectionner tous les titres de la liste des cotes actuelle',\n\t\t\tshares: 'Actions',\n\t\t\tsharpeRatioDescription: 'Le ratio Sharpe sur une période d’un an, de trois ans, de cinq ans ou de dix ans indique dans quelle mesure le rendement excédentaire d’un actif récompense l’investisseur pour le risque endossé sur une période déterminée. Plus le ratio Sharpe est élevé, plus le rendement ajusté au risque est élevé.',\n\t\t\tselectAStrikePrice: 'Select a Strike Price',\n\t\t\tselectMaxCompare: 'Veuillez sélectionner jusqu’à trois FNB similaires pour les comparer.',\n\t\t\tselectYourCriteriaFromDropdown: 'Sélectionnez vos critères dans les menus déroulants correspondants',\n\t\t\tselectOne: 'Sélectionner une option',\n\t\t\tselectOneOrMore: 'Sélectionnez au moins une valeur',\n\t\t\tselectPeriod: 'Choisir une période',\n\t\t\tselectWatchList: 'Sélectionner une liste de surveillance',\n\t\t\tselectWatchlistSrOnly: 'Sélectionner {name}',\n\t\t\tselectYourCriteria: 'Sélectionnez vos critères dans les menus déroulants correspondants',\n\t\t\tselectaListToAdd: 'Sélectionner une liste pour ajouter',\n\t\t\tsellGenAdminExpenseTotal: 'Sell/General/Admin. Expenses, Total',\n\t\t\tsellingGenAdminExpense: 'Selling/Gen/Admin Expense',\n\t\t\tseriesBy: 'Series par',\n\t\t\tsetAlerts: 'Définir des alertes',\n\t\t\tsetStockAlert: 'Établir une alerte',\n\t\t\tsetWatchListAlerts: 'Configurer des alertes pour la liste de surveillance',\n\t\t\tservices: 'Services',\n\t\t\tsharesOutstanding: 'Actions en circulation',\n\t\t\tsharesRelated: 'Postes liés aux actions Millions',\n\t\t\tshortDurationHighQuality: 'Courte durée/haute qualité',\n\t\t\tshortDurationMediumQuality: 'Courte durée/qualité moyenne',\n\t\t\tshortDurationLowQuality: 'Courte durée/qualité basse',\n\t\t\tshortPosition: '% des positions vendeur',\n\t\t\tshortRestriction: 'Restriction vente découvert',\n\t\t\tshortStrategy: 'Stratégie vendeur',\n\t\t\tshortStrategyChart: 'Graphique de la stratégie vendeur',\n\t\t\tshortTermDebtIssued: 'Short Term Debt Issued',\n\t\t\tshortTermDebtNet: 'Short Term Debt, Net',\n\t\t\tshortTermDebtReduce: 'Short Term Debt Reduction',\n\t\t\tsharpeRatio: 'Ratio de Sharpe',\n\t\t\tsharpeRatioYear: 'Ratio Sharpe ({year} an)',\n\t\t\tMSDSharpeRatioY1Ptile: 'Ratio Sharpe (1 an)',\n\t\t\tMSDSharpeRatioY3Ptile: 'Ratio Sharpe (3 an)',\n\t\t\tMSDSharpeRatioY5Ptile: 'Ratio Sharpe (5 an)',\n\t\t\tMSDSharpeRatioY10Ptile: 'Ratio Sharpe (10 an)',\n\t\t\tMSDSharpeRatioY1: 'Ratio Sharpe (1 an)',\n\t\t\tMSDSharpeRatioY3: 'Ratio Sharpe (3 an)',\n\t\t\tMSDSharpeRatioY5: 'Ratio Sharpe (5 an)',\n\t\t\tMSDSharpeRatioY10: 'Ratio Sharpe (10 an)',\n\t\t\tsharpRatioTooltip: 'Le ratio Sharpe indique dans quelle mesure le rendement excédentaire d\\'un actif récompense l\\'investisseur pour le risque couru sur une période donnée. Plus le ratio Sharpe est élevé, plus le rendement ajusté au risque est élevé.',\n\t\t\tshow: 'Show',\n\t\t\tshowAll: 'Afficher tout',\n\t\t\tshowChangeInDollars: 'Show change in dollars',\n\t\t\tshowChangeInPercent: 'Show change in percent',\n\t\t\tshownIn: 'Shown In',\n\t\t\tsliceNumber: 'Numéro de tranche',\n\t\t\tsimilarETFs: 'Les FNB semblables',\n\t\t\tsimilarETFsNotFound: 'Aucun FNB semblable trouvé',\n\t\t\tsimpleRange: 'Intervalle simple',\n\t\t\tsince: 'Depuis',\n\t\t\tsize: 'Taille',\n\t\t\tslowStochastics: 'Stochastiques lents',\n\t\t\tsma15day: 'MMS de 15 jours',\n\t\t\tsma50day: 'MMS de 50 jours',\n\t\t\tsma100day: 'MMS de 100 jours',\n\t\t\tsma200day: 'MMS de 200 jours',\n\t\t\tsmallCapBlend: 'Mixte à petite capitalisation',\n\t\t\tsmallCapGrowth: 'Croissance à petite capitalisation',\n\t\t\tsmallCapValue: 'Valeur à petite capitalisation',\n\t\t\tsnapshot: 'Instantané',\n\t\t\tsnapshotReview: 'Passer en revue l’instantané',\n\t\t\t'software&computerservices': 'Logiciels et services informatiques',\n\t\t\tsoftwareDevCosts: 'Software Development Costs',\n\t\t\tsortBy: 'Trier par',\n\t\t\tsortable: 'triable',\n\t\t\tsnapshotLower: 'instantané',\n\t\t\tsp500ChartHidden: 'Graphique de l’indice S&P 500',\n\t\t\tspTsx60ChartHidden: 'Graphique de l’indice S&P/TSX 60',\n\t\t\tsnapshotPortfolioDisclaimer: 'Les données de Prime/Escompte sont mises à jours quotidiennement. Toutes les autres données sont en date de la fin du mois.',\n\t\t\tspTsxCompChartHidden: 'Graphique de l’indice S&P TSX Composite',\n\t\t\tspTsxVentureChartHidden: 'Graphique de l’indice S&P/TSX Composite de croissance',\n\t\t\tstandardDeviation: 'Écart type',\n\t\t\tstandardDeviationYear: 'Écart type ({year} an)',\n\t\t\tMSDStandardDeviationY1Ptile: 'Écart type ({year} an)',\n\t\t\tMSDStandardDeviationY3Ptile: 'Écart type ({year} an)',\n\t\t\tMSDStandardDeviationY5Ptile: 'Écart type ({year} an)',\n\t\t\tMSDStandardDeviationY10Ptile: 'Écart type ({year} an)',\n\t\t\tMSDStandardDeviationY1: 'Écart type ({year} an)',\n\t\t\tMSDStandardDeviationY3: 'Écart type ({year} an)',\n\t\t\tMSDStandardDeviationY5: 'Écart type ({year} an)',\n\t\t\tMSDStandardDeviationY10: 'Écart type ({year} an)',\n\t\t\tstandardDeviationDescription: 'L’écart type mesure la variation du rendement d’un fonds sur une période d’un an, de trois ans, de cinq ans ou de dix ans.',\n\t\t\tstandardDeviationTooltip: 'L\\'écart-type mesure la variation du rendement d\\'un fonds sur une période donnée.',\n\t\t\tstarsOfStarsRating: '{stars} sur {max} étoiles',\n\t\t\tstarsOfStarsMaxRating: '{max} sur {max} étoiles',\n\t\t\tstartDay: 'Jour de début',\n\t\t\tstartMonth: 'Mois de début',\n\t\t\tstartYear: 'Année de début',\n\t\t\tsteamOps: 'Steam Operations',\n\t\t\tstochasticOscillator: 'Oscillateur stochastique',\n\t\t\tstochasticOscillatorDescription: `L'oscillateur stochastique est composé de deux lignes : K% et D%. La ligne K% indique où le cours d'un titre a clôturé par rapport à sa fourchette de cours sur une période donnée. La ligne D% fournit un lissage de la ligne K% en prenant la moyenne mobile sur trois jours de K%.\n\t\t\t\\nUn signal haussier est émis lorsque K% clôture au-dessus de D%. Un signal baissier est émis lorsque K% clôture au-dessous de D%.`,\n\t\t\tstocks: 'Actions',\n\t\t\tstockBaseComp: 'Stock Based Compensation',\n\t\t\tstockScreener: 'Sélection',\n\t\t\tstrike: 'Exercice',\n\t\t\tstrikesShown: 'Prix d’exercice affichés',\n\t\t\tstrikePrice: 'Prix d’exercice',\n\t\t\tstrikeType: 'Strike/Type',\n\t\t\tstockDetail: 'Information sur l’action',\n\t\t\tsource: 'Source',\n\t\t\tstockCentre: 'Centre des actions',\n\t\t\tstocksAndIndicesCaption: '{count} actions et indices',\n\t\t\tstocksETFsIndices: 'Actions, FNB et indices',\n\t\t\tstockEarningsChartHeader: '{symbol} résultat par action (RPA)',\n\t\t\tstockEarningsLink: 'Click or tab through bars for more info',\n\t\t\tsupportservices: 'Services de soutien',\n\t\t\tsubjectToChangeDisclaimer1: 'Toutes les informations de notation ou de classement sont sujettes à modification sur une base mensuelle.',\n\t\t\tsubjectToChangeDisclaimer2: 'Le taux de rendement ou la table mathématique sert uniquement à illustrer les effets du taux de croissance composé et ne vise pas à refléter les valeurs futures de l\\'OPC ou le rendement d\\'un placement dans l\\'OPC.',\n\t\t\tsuspendFrom: 'Suspendre du',\n\t\t\tsummary: 'Sommaire',\n\t\t\tsymbol: 'symbole',\n\t\t\tsymbolLabel: 'Symbole',\n\t\t\tsymbols: 'Symbols',\n\t\t\tsymbolLastChangeBottom: 'dernier changement',\n\t\t\tsymbolLastChangeTop: 'Symbole',\n\t\t\tsymbolCompany: 'Symbole/société',\n\t\t\tsymbolCompanyName: 'Symbole ou nom d’entreprise',\n\t\t\tsymbolChart: 'Graphique de l’indice {symbol} - ',\n\t\t\tsymbolDetails: 'Renseignements sur {symbol}',\n\t\t\tsymbolDoesNotHaveAnyOptions: '{symbol} n’a pas d’options.',\n\t\t\tsymbolInactive: 'FRENCH This symbol is no longer active.',\n\t\t\tsymbolsForWatchlist: 'Symbols for Watch List',\n\t\t\tsymbolsInList: 'Symboles dans la liste',\n\t\t\tsymbolDoesNotExist: 'Le symbole que vous essayez de consulter n’existe pas. Veuillez utiliser la fonction Recherche de symbole pour trouver un autre titre.',\n\t\t\tsymbolNotFound: 'Symbole introuvable',\n\t\t\tsymbolNotFoundTryAgain: 'Le symbole n’est pas valide',\n\t\t\tsixMonthTBill: 'Bons du Trésor à 6 mois',\n\t\t\tsilver: 'Argent',\n\t\t\tsilverSr: 'Graphique de l’argent',\n\t\t\tsecDepotsits: 'Security Deposits',\n\t\t\tsecIndbtdRltPrts: 'Sec./Indbtd. of Rlt\\'d Prts',\n\t\t\tsecuritiesHeld: 'Securities Held ',\n\t\t\tsecuritiesSale: 'Securities for Sale',\n\t\t\tsepAccntLiability: 'Sep. Accounts - Liability',\n\t\t\tseperateAcctAssets: 'Separate Accounts - Assets',\n\t\t\tshortTermInvs: 'Short Term Investments',\n\t\t\tshrOutComSktIss2: 'Shr Outs.-Com. Stk. Iss. 2',\n\t\t\tshrOutComSktIss3: 'Shr Outs.-Com. Stk. Iss. 3',\n\t\t\tshrOutComSktIss4: 'Shr Outs.-Com. Stk. Iss. 4',\n\t\t\tshrOutsPrimaryLss: 'Shr Outs.-Com. Primary Iss.',\n\t\t\tshrsOutPrefPrimaryIss: 'Shrs Out-Pref Primary Iss.',\n\t\t\tshrsOutPrefStkIss2: 'Shrs Out-Pref Stk Iss. 2',\n\t\t\tshrsOutPrefStkIss3: 'Shrs Out-Pref Stk Iss. 3',\n\t\t\tshrsOutPrefStkIss4: 'Shrs Out-Pref Stk Iss. 4',\n\t\t\tshrsOutPrefStkIss5: 'Shrs Out-Pref Stk Iss. 5',\n\t\t\tshrsOutPrefStkIss6: 'Shrs Out-Pref Stk Iss. 6',\n\t\t\tstartEtfScreener1: 'Commencez votre recherche de FNB à l’aide de nos ',\n\t\t\tstartEtfScreener2: ', ou effectuez votre propre recherche à l’aide des outils ',\n\t\t\ttobacco: 'Tabac',\n\t\t\ttaxablebond: 'Obligations imposables',\n\t\t\ttaxOnExtraItem: 'Tax on Extraordinary Items',\n\t\t\ttCost: 'des coûts',\n\t\t\ttest: 'test-fr',\n\t\t\ttext: 'Texte',\n\t\t\ttechnicalAnalysis: 'Analyse technique',\n\t\t\tTechnical: 'Technique ',\n\t\t\ttechnicals: 'Paramètres techniques',\n\t\t\t'Technical analysis': 'Analyse technique',\n\t\t\ttechnology: 'Technologie',\n\t\t\tMSDStockSectorTechnology: 'Secteur Technologie',\n\t\t\t'technologyhardware&equipment': 'Matériel et équipement technologique',\n\t\t\ttelecommunications: 'Télécommunications',\n\t\t\ttelecommunicationServices: 'Services Télécommunications',\n\t\t\ttenure: 'Tenure',\n\t\t\ttenYearBond: 'Obligations à 10 ans',\n\t\t\tthe: 'La',\n\t\t\ttheLowerCase: 'la',\n\t\t\tthereAreCurrentlyNoGainers: 'There are currently no gainers today',\n\t\t\tthereAreCurrentlyNoLoser: 'There are currently no losers today',\n\t\t\tthereAreNoReports: 'Aucune nouvelle n\\'est disponible pour ce FNB.',\n\t\t\tthereAreNoNewsReports: 'There are no news reports available for this ETF.',\n\t\t\ttheWeekAhead: 'L’actualité hebdomadaire',\n\t\t\ttheWeekAheadWC: 'L’actualité hebdomadaire',\n\t\t\ttheWeekAheadAnalystReports: 'The week ahead (en anglaise seulement)',\n\t\t\ttheWeekAheadDescription: 'Soyez en avance sur le marché grâce à des analyses des tout derniers développements économiques qui touchent les marchés des titres à revenu fixe, des actions et des changes ainsi qu’à des aperçus des événements attendus pour la semaine suivante.',\n\t\t\ttimeframe: 'Période',\n\t\t\ttheta: 'Theta',\n\t\t\tthirtyYearBond: 'Obligations à 30 ans',\n\t\t\tthisOptionHasExpired: 'Cette option est expirée.',\n\t\t\tthousand: 'mille',\n\t\t\tthreeMonth: 'trois mois',\n\t\t\tthreeMonthTBill: 'Bons du Trésor à 3 mois',\n\t\t\tthreeYearTBill: 'Bons du Trésor à 3 ans',\n\t\t\tto: 'À',\n\t\t\ttools: '',\n\t\t\ttoUpperCase: 'Au',\n\t\t\ttoContextDe: 'de',\n\t\t\ttoLowerCase: 'à',\n\t\t\ttoday: 'Aujourd’hui',\n\t\t\ttodayIndex: 'Indices du jour',\n\t\t\ttodayFunds: 'Fonds du jour',\n\t\t\ttodaysChange: 'Variation de la journée',\n\t\t\ttodaysChangeSr: 'en date d’aujourd’hui',\n\t\t\ttodaysMovers: 'Titres les plus actifs',\n\t\t\ttodaysOpen: 'Ouverture - aujourd\\'hui',\n\t\t\ttodaysRange: 'Fourchette de la journé',\n\t\t\ttodaysRangeButtonSr: 'Agrandir pour afficher les renseignements sur la fourchette des cours sur 52 semaines',\n\t\t\ttopGlobalHoldings: 'Principaux titres mondiaux',\n\t\t\ttopGlobalHoldingsDescription: 'Principaux placements mondiaux d\\'un portefeuille de FCB.',\n\t\t\ttopPerformingBelowAverageMEREquityETFs: 'FNB d\\'actions les plus performants avec RFG inférieur à la moyenne',\n\t\t\ttopPerformingBelowAverageMEREquityETFs_desc: 'FNB qui investissent dans des actions canadiennes, américaines et internationales et affichent un RFG inférieur à la moyenne et un rendement annuel supérieur à la moyenne.',\n\t\t\ttopPerformingEmergingMarketsETFs: 'FNB des marchés émergents les plus performants',\n\t\t\ttopPerformingEmergingMarketsETFs_desc: 'FNB qui investissent dans des marchés émergents et affichent un rendement annuel supérieur à la moyenne.',\n\t\t\ttop10Holdings: '10 principaux titres',\n\t\t\ttop10HoldingsDescription: 'Dix principaux placements d\\'un portefeuille de FCB.',\n\t\t\ttopGlobalHoldingsTooltip: 'La répartition par pays est calculée en utilisant seulement les position longue d\\'actions et d\\'obligations du portfolio selon leur pays d\\'émission',\n\t\t\ttopHoldings: 'Principaux titres',\n\t\t\ttopNMostActive: 'Top {count} Most Active',\n\t\t\ttopNMovers: 'Top {count} Movers',\n\t\t\ttopPctMovers: 'Titres gagnants (%) ',\n\t\t\ttopPerformers: 'Meilleurs rendements',\n\t\t\ttopPriceMovers: 'Titres gagnants ($)',\n\t\t\ttopMovers: 'Titres les plus actifs',\n\t\t\ttopSectorHoldings: 'Principaux titres sectoriels',\n\t\t\ttopSectorHoldingsDescription: 'Principaux placement par secteur d\\'un portefeuille de FCB.',\n\t\t\ttopSectorsByPercent: 'Principaux secteurs (en pourcentage)',\n\t\t\ttopSectorsHeld: 'Principaux secteurs détenus',\n\t\t\ttopSecuritiesHeld: 'Principaux titres détenus',\n\t\t\ttotal: 'Total',\n\t\t\ttotalAdjToNetIncome: 'Total Adjust to Net Income',\n\t\t\ttotalCashDividsPaid: 'Total Cash Dividends Paid',\n\t\t\ttotalCashFinancing: 'Total Cash From Financing',\n\t\t\ttotalCashInvest: 'Total Cash from Investing',\n\t\t\ttotalCashOps: 'Total Cash from Operations',\n\t\t\ttotalDebtIssue: 'Total Debt Issued',\n\t\t\ttotalDebtReduce: 'Total Debt Reduction',\n\t\t\ttotalExtraItem: 'Total Extraordinary Items',\n\t\t\ttotalInterestExpense: 'Total Interest Expense',\n\t\t\ttotalOpExpense: 'Total Operating Expense',\n\t\t\ttotalPremEarned: 'Total Premiums Earned',\n\t\t\ttotalRev: 'Total Revenue',\n\t\t\ttotalReturnPerformance: 'Performance des rendements totaux',\n\t\t\ttotalSpecialItems: 'Total Special Items',\n\t\t\ttotalDebtEquity: 'Ratio total emprunts/capitaux propres',\n\t\t\ttotalAssets: 'Total de l’actif',\n\t\t\ttotalAssetsLowerA: 'Total de l’actif',\n\t\t\ttotalNetAssets: 'Actif net total',\n\t\t\ttotalNetAssetsShort: 'Actif net total',\n\t\t\ttotalNetAssetsDescription: 'On obtient l\\'actif net total en soustrayant le passif d\\'un FCB de son actif.',\n\t\t\ttotalNetAssetsRange0to10M: '< 10M',\n\t\t\ttotalNetAssetsRange10to50M: '10M-50M',\n\t\t\ttotalNetAssetsRange50to500M: '50M-500M',\n\t\t\ttotalNetAssetsRange500to1000M: '500M-1B',\n\t\t\ttotalNetAssetsRangeabove1000M: '> 1B',\n\t\t\ttotalGainLossOf: 'Gain/perte total des {issueType}',\n\t\t\ttrade: 'Négocier',\n\t\t\ttradeSr: 'Négocier {symbol}',\n\t\t\ttrStockReports: 'TR StockReports+',\n\t\t\ttrailingTwelveMonths: 'Douze derniers mois (DDM)',\n\t\t\ttradePricesAndQuotes: 'Les prix des opérations et les cotes ne proviennent pas de tous les marchés.',\n\t\t\ttradingAcctInterest: 'Trading Account Interest',\n\t\t\ttrailingReturnPeriod: '',\n\t\t\ttrailingRollingReturns: 'Rendements anualisés passés',\n\t\t\ttrailingRollingReturnTooltip: 'Le rendement passé est le rendement total d\\'un fonds pendant une période donnée. Par exemple, la dernière barre présente le rendement total d\\'un FCB pendant la période sélectionnée (p. ex. trois mois). La barre précédente indique aussi le rendement pour la période sélectionnée, mais calculé jusqu\\'à la fin du mois précédent plutôt jusqu\\'au mois en cours.',\n\t\t\ttreasuryStock: 'Treasury Stock',\n\t\t\tttm: 'DDM',\n\t\t\tttmLabel: 'bénéfice (période de 12 mois)',\n\t\t\tttm1YrAgo: 'DDM avec DDM voilà 1 an',\n\t\t\ttype: 'Type',\n\t\t\ttypeContextCategory: 'Catégorie',\n\t\t\ttotalCurrentAsst: 'Total Current Assets',\n\t\t\ttotalCurrentLiabili: 'Total Current Liabilities',\n\t\t\ttotalDebt: 'Total Debt',\n\t\t\ttotalDept: 'Total Deposits',\n\t\t\ttotalEquity: 'Total Equity',\n\t\t\ttotalGrossLoan: 'Total Gross Loans',\n\t\t\ttotalInvent: 'Total Inventory',\n\t\t\ttotalInvestSec: 'Total Invest. Securities',\n\t\t\ttotalLibailities: 'Total Liabilities',\n\t\t\ttotalLongTermDebt: 'Total Long Term Debt',\n\t\t\ttotalRcvbleNet: 'Total Receivables, Net',\n\t\t\ttotalSTBorrow: 'Total ST Borrowings',\n\t\t\ttotalShareholdersEquity: 'Total Liabilities & Shareholders' Equity',\n\t\t\ttotalUtilPlantNet: 'Total Utility Plant, Net',\n\t\t\ttradeAcctsRcvbleGross: 'Trade Accts Recvble, Gross',\n\t\t\ttradeAcctsRcvbleShortTerm: 'Trade Accts Recvble, Net',\n\t\t\ttradingAcctAsst: 'Trading Account Assets ',\n\t\t\ttransportation: 'Transport',\n\t\t\t'travel&leisure': 'Voyage et loisirs',\n\t\t\ttreasuryStockCommon: 'Treasury Stock - Common',\n\t\t\ttreasuryStockPref: 'Treasury Stock - Preferred',\n\t\t\ttrsyShrCommIss2: 'Trsy. Shrs-Comm. Iss. 2',\n\t\t\ttrsyShrCommIss3: 'Trsy. Shrs-Comm. Iss. 3',\n\t\t\ttrsyShrCommIss4: 'Trsy. Shrs-Comm. Iss. 4',\n\t\t\ttrsyShrCommPrimaryLss: 'Trsy. Shrs-Comm. Primary Iss.',\n\t\t\ttrsyShrPrefIss1: 'Trsry Shrs-Pref. Iss. 1',\n\t\t\ttrsyShrPrefIss2: 'Trsry Shrs-Pref. Iss. 2',\n\t\t\ttrsyShrPrefIss3: 'Trsry Shrs-Pref. Iss. 3',\n\t\t\ttrsyShrPrefIss4: 'Trsry Shrs-Pref. Iss. 4',\n\t\t\ttrsyShrPrefIss5: 'Trsry Shrs-Pref. Iss. 5',\n\t\t\ttrsyShrPrefIss6: 'Trsry Shrs-Pref. Iss. 6',\n\t\t\tttlCommSharesOuts: 'Ttl Comm. Shares Outs.',\n\t\t\tunits: 'Parts',\n\t\t\tusPrime: 'Taux préférentiel américain',\n\t\t\tusVsCanadianDollars: 'Dollar américain c. dollar canadien',\n\t\t\tUSvsCanadianSrOnly: 'Dollar américain c. dollar canadien',\n\t\t\tunableToLoadPage: 'Nous n\\'avons pas pu charger cette page avec succès',\n\t\t\tunderlying: 'Underlying',\n\t\t\tunderlyingprice: 'Underlying Price',\n\t\t\tunderwritingCommissions: 'Underwriting & Commissions',\n\t\t\tunrealizedGain: 'Unrealized Gains',\n\t\t\tunrealizedGains: 'Unrealized Gains (Losses)',\n\t\t\tunrealizedLoss: 'Unrealized Losses',\n\t\t\tunrealizedLossGains: 'Unrealized Losses (Gains)',\n\t\t\tunusualExpenseIn: 'Unusual Expense (Income)',\n\t\t\tup: 'Hausse de',\n\t\t\tus: 'États-Unis ',\n\t\t\tusGrowthAtReasonablePrice: 'États-Unis – croissance à prix raisonnable',\n\t\t\tusGrowthAtReasonablePrice_desc: 'Actions américaines affichant une croissance raisonnable des cours',\n\t\t\tusLowPEStocks: 'États-Unis – actions à faible ratio C/B',\n\t\t\tusValueStocks: 'États-Unis – actions de valeur',\n\t\t\tusCommodityETFs: 'FNB de marchandises américains',\n\t\t\tusCommodityETFs_desc: 'FNB qui investissent dans des titres liés aux marchandises.',\n\t\t\tusDollars: 'Dollars américains',\n\t\t\tusePreviousSearch: 'Utilisez la recherche précédente pour ajouter des symboles.',\n\t\t\tusequity: 'Actions américaines',\n\t\t\tusEquityETFs: 'FNB d\\'actions américaines',\n\t\t\tusEquityETFs_desc: 'FNB qui investissent dans des actions américaines.',\n\t\t\tusFixedIncomeETFs: 'FNB de titres à revenu fixe américains',\n\t\t\tusFixedIncomeETFs_desc: 'FNB qui investissent dans des titres à revenu fixe américains.',\n\t\t\tusGaapAdj: 'U.S. GAAP Adjustment',\n\t\t\tusNews: 'Nouvelles aux États-Unis',\n\t\t\tususualItems: 'Unusual Items',\n\t\t\tvalue: 'Valeur',\n\t\t\tutilities: 'Services publics',\n\t\t\tMSDStockSectorUtilities: 'Secteur Services aux collectivités',\n\t\t\tunbilledUtilRev: 'Unbilled Utility Revenues',\n\t\t\tunearnedIncome: 'Unearned Income',\n\t\t\tunearnedPremRev: 'Unearned Prem. Or Rev.',\n\t\t\tunrealizedGainLoss: 'Unrealized Gain (Loss)',\n\t\t\tutilPlant: 'Utility Plant',\n\t\t\tutilPlantAccumDeprc: 'Utlty. Plnt. Accum. Deprc.',\n\t\t\tutilPlantNet: 'Utility Plant, Net',\n\t\t\tvacationStop: 'Interruption vacances',\n\t\t\tvaluation: 'Évaluation',\n\t\t\tvega: 'Vega',\n\t\t\tviewAll: 'View All',\n\t\t\tviewMore: 'View more',\n\t\t\tviewTop5: 'Afficher les 5 meilleurs',\n\t\t\tviewTop10: 'Afficher les 10 meilleurs',\n\t\t\tviewBy: 'View By',\n\t\t\tviewMoreReports: 'View More Reports',\n\t\t\tviewMarketMovers: 'View Market Movers',\n\t\t\tviewMoreNewsHeadlines: 'Plus de nouvelles',\n\t\t\tviewOption: 'Liste des options',\n\t\t\tvolume: 'Volume',\n\t\t\tavgVolume: 'Volume moyen',\n\t\t\tthreeMonths: '(3 mois)',\n\t\t\tthreeMonthsSr: '(3 mois)',\n\t\t\tvolatility: 'Volatilité',\n\t\t\tvsSnP500: 'Par rapport à l’indice S&P 500 sur',\n\t\t\tvsSnP5004Week: 'vs S&P 500 sur 1 mois',\n\t\t\tvsSnP50052Week: 'vs S&P 500 sur 1 an',\n\t\t\twarrantsConverted: 'Warrants Converted',\n\t\t\twatchlist: 'listes de surveillance',\n\t\t\twatchlistDeliveryConfigured: 'Vos alertes de la liste de surveillance sont configurées pour être envoyées {period}.',\n\t\t\twatchlistAlerts: 'Alertes de la liste de surveillance',\n\t\t\twatchlistAlertsDescription: 'Recevez par courriel un sommaire de la progression des cours des actions dans vos listes de surveillance. Cette alerte quotidienne, hebdomadaire ou mensuelle comprend les cours de clôture des actions, les volumes et les cours maximum et minimum sur 52 semaines.',\n\t\t\t'Watch list': 'Liste de surveillance',\n\t\t\t'Watch lists': 'Listes de surveillance',\n\t\t\t'Quote lists': 'Listes de cotes',\n\t\t\twarningIcon: 'Attention',\n\t\t\twatchlistDataUnavailable: 'Les données sur les {section} des {type} ne sont pas disponibles',\n\t\t\twatchlistDataUnavailable2: 'Les données sur le {section} des {type} ne sont pas disponibles',\n\t\t\twatchlistDataUnavailable3: 'Les données sur le {section} des {type} ne sont pas disponibles',\n\t\t\twatchlistInsufficientCapacity: 'Il n’y a pas assez d’espace pour ajouter des symboles à la liste.',\n\t\t\twatchlistTotals: 'Totaux des listes de surveillance',\n\t\t\twatchlistNameLenghtError: 'Le nom de la liste de surveillance ne doit pas dépasser 20 caractères.',\n\t\t\twatchlistNews: 'Nouvelles à propos des {watchlist}',\n\t\t\twatchlistSymbolDetail: 'Renseignements sur {symbol}',\n\t\t\twaterOps: 'Water Operations',\n\t\t\tweb: 'Web : ',\n\t\t\tweeksVariable: '{number} semaines',\n\t\t\tweekly: 'Chaque semaine',\n\t\t\tyearly: 'Chaque mois',\n\t\t\tyes: 'Oui',\n\t\t\tyield: 'Rendement',\n\t\t\tyieldLabel: 'des distributions',\n\t\t\tyouMustSelect: 'Sélectionner des symboles à ajouter.',\n\t\t\tyourSelectionAltersData: 'Votre sélection modifie les données connexes',\n\t\t\tytd: 'en cumul annuel',\n\t\t\tytdEtfPerformance: 'Cumul annuel',\n\t\t\tytdPct: 'YTD %',\n\t\t\tytdReturn: 'Rendement cumulatif annuel',\n\t\t\tyourWatchlistEmpty: 'Votre liste de surveillance est actuellement vide.',\n\t\t\tyourPdfDownloaded: 'Votre fichier en format PDF a été téléchargé',\n\n\t\t\t// begin morningstar categories\n\t\t\t'allocation--15%to30%equity': 'Répartition : 15 % à 30 % d’actions',\n\t\t\t'allocation--30%to50%equity': 'Répartition : 30 % à 50 % d’actions',\n\t\t\t'allocation--50%to70%equity': 'Répartition : de 50 % à 70 % d’actions',\n\t\t\t'allocation--70%to85%equity': 'Répartition : de 70 % à 85 % d’actions',\n\t\t\t'allocation--85%+equity': 'Répartition : 85 % ou plus d’actions',\n\t\t\talternativecreditfocused: 'Accent sur les titres de créance non traditionnels',\n\t\t\talternativeequityfocused: 'Accent sur les actions non traditionnelles',\n\t\t\talternativemarketneutral: 'Neutre au marché non traditionnel',\n\t\t\t'alternativemulti-strategy': 'Stratégies multiples non traditionnelles',\n\t\t\t'alternativemulti–strategy': 'Stratégies multiples non traditionnelles',\n\t\t\talternativeother: 'Autre non traditionnel',\n\t\t\tasiapacificequity: 'Actions d’Asie-Pacifique',\n\t\t\tbankloan: 'Prêts bancaires',\n\t\t\tbearmarket: 'Marché baissier',\n\t\t\tcanada: 'Canada',\n\t\t\tMSDRegionCanada: 'Région Canada',\n\t\t\tcanadaAndUS: 'Canada et États-Unis',\n\t\t\tcanadiancorporatefixedincome: 'Titres à revenu fixe de sociétés canadiennes',\n\t\t\t'canadiandividend&incomeequity': 'Actions canadiennes à dividendes et à revenu',\n\t\t\tcanadianequity: 'Actions canadiennes',\n\t\t\tcanadianequitybalanced: 'Équilibré actions canadiennes',\n\t\t\tcanadianFixedIncomeETFs: 'FNB de titres à revenu fixe canadiens',\n\t\t\tcanadianFixedIncomeETFs_desc: 'FNB qui investissent dans des titres à revenu fixe canadiens.',\n\t\t\tcanadianfixedincome: 'Titres à revenu fixe canadiens',\n\t\t\tcanadianfixedincomebalanced: 'Équilibré titres à revenu fixe canadiens',\n\t\t\t'canadianfocusedsmall/midcapequity': 'Actions en majorité canadiennes à petite/moyenne capitalisation',\n\t\t\tcanadianinflationprotectedfixedincome: 'Revenu fixe canadien indexé à l’inflation',\n\t\t\tcanadianlongtermfixedincome: 'Titres à revenu fixe canadiens à long terme',\n\t\t\tcanadianmoneymarket: 'Marché monétaire canadien',\n\t\t\tcanadianneutralbalanced: 'Équilibré neutre canadien',\n\t\t\tcanadianshorttermfixedincome: 'Titres à revenu fixe canadiens à court terme',\n\t\t\t'canadiansmall/midcapequity': 'Actions canadiennes à petite/moyenne capitalisation',\n\t\t\tchinaregion: 'Région de la Chine',\n\t\t\tcommoditiesbroadbasket: 'Vaste panier de titres du secteur des marchandises',\n\t\t\tcommoditiesenergy: 'Marchandises relatives à l’énergie',\n\t\t\tcommoditiesfocused: 'Accent sur les marchandises',\n\t\t\tcommunications: 'Communications',\n\t\t\tconvertibles: 'Titres convertibles',\n\t\t\tcorporatebond: 'Obligations de sociétés',\n\t\t\tdaily: 'Chaque jour',\n\t\t\tdailyVolume: 'Volume journalier',\n\t\t\tdiversifiedemergingmarkets: 'Marchés émergents diversifiés',\n\t\t\t'diversifiedpacific/asia': 'Pacifique et Asie diversifiés',\n\t\t\temergingmarketsbond: 'Obligations des marchés émergents',\n\t\t\temergingmarketsequity: 'Actions des marchés émergents',\n\t\t\temergingmarketsfixedincome: 'Titres à revenu fixe des marchés émergents',\n\t\t\temergingmarketslocalcurrencybond: 'Obligations de pays émergents libellées en monnaie locale',\n\t\t\tenergyequity: 'Actions de l’énergie',\n\t\t\tenergylimitedpartnership: 'Société en commandite du secteur de l’énergie',\n\t\t\tequityenergy: 'Actions de l’énergie',\n\t\t\tequitypreciousmetals: 'Actions de métaux précieux',\n\t\t\teuropestock: 'Actions de la zone Europe',\n\t\t\teuropeanequity: 'Actions européennes',\n\t\t\tfinancial: 'Finances',\n\t\t\tfinancialservicesequity: 'Actions de services financiers',\n\t\t\tfloatingrateloans: 'Prêts à taux variable',\n\t\t\tforeignlargeblend: 'Titres étrangers à grande capitalisation, mixte',\n\t\t\tforeignlargegrowth: 'Titres étrangers à grande capitalisation, croissance',\n\t\t\tforeignlargevalue: 'Titres étrangers à grande capitalisation, valeur',\n\t\t\t'foreignsmall/midblend': 'Titres étrangers à faible ou moyenne capitalisation, mixte',\n\t\t\t'foreignsmall/midgrowth': 'Titres étrangers à faible ou moyenne capitalisation, croissance',\n\t\t\t'foreignsmall/midvalue': 'Titres étrangers à faible ou moyenne capitalisation, valeur',\n\t\t\tgeographicequity: 'Actions par régions',\n\t\t\tglobalcorporatefixedincome: 'Titres à revenu fixe de sociétés mondiales',\n\t\t\tglobalequity: 'Actions mondiales',\n\t\t\tglobalequitybalanced: 'Équilibré actions mondiales',\n\t\t\tglobalfixedincome: 'Titres à revenu fixe mondiaux',\n\t\t\tglobalfixedincomebalanced: 'Équilibré titres à revenu fixe mondiaux',\n\t\t\tglobalinfrastructureequity: 'Actions d’infrastructures mondiales',\n\t\t\tglobalneutralbalanced: 'Équilibré neutre mondial',\n\t\t\tglobalrealestate: 'Titres immobiliers mondiaux',\n\t\t\t'globalsmall/midcapequity': 'Actions mondiales à petite/moyenne capitalisation',\n\t\t\tgreaterchinaequity: 'Actions de la Chine élargie',\n\t\t\thealth: 'Santé',\n\t\t\thighDistributionEquityETFs: 'FNB d\\'actions à distribution élevée',\n\t\t\thighDistributionEquityETFs_desc: 'FNB qui investissent dans des actions canadiennes produisant un rendement de distributions supérieur à la moyenne.',\n\t\t\thighyieldbond: 'Obligations à rendement élevé',\n\t\t\thighyieldfixedincome: 'Titres à revenu fixe à rendement élevé',\n\t\t\thighyieldmuni: 'Obligations municipales à rendement élevé',\n\t\t\thighYieldFixedIncomeETFs: 'FNB de titres à revenu fixe à rendement élevé',\n\t\t\thighYieldFixedIncomeETFs_desc: 'FNB qui investissent dans des titres à revenu fixe canadiens à rendement élevé.',\n\t\t\tindiaequity: 'Actions indiennes',\n\t\t\t'inflation-protectedbond': 'Obligations indexées sur l’inflation',\n\t\t\tinfrastructure: 'Infrastructure',\n\t\t\tintermediatecorebond: 'Obligations de base à moyen terme',\n\t\t\t'intermediatecore-plusbond': 'Obligations de base plus à moyen terme',\n\t\t\tintermediategovernment: 'Obligations d’État à moyen terme',\n\t\t\tinternationalequity: 'Actions internationales',\n\t\t\tinternationalEquityETFs: 'FNB d\\'actions internationales',\n\t\t\tinternationalEquityETFs_desc: 'FNB qui investissent dans des placements en actions internationales.',\n\t\t\tjapanstock: 'Actions japonaises',\n\t\t\tlargeblend: 'Grande capitalisation, mixte',\n\t\t\tlargegrowth: 'Grande capitalisation, croissance',\n\t\t\tlargevalue: 'Grande capitalisation, valeur',\n\t\t\tlatinamericastock: 'Actions latino-américaines',\n\t\t\tlonggovernment: 'Obligations d’État à long terme',\n\t\t\t'long-shortcredit': 'Positions acheteur/vendeur sur titres de créance',\n\t\t\t'long-shortequity': 'Positions acheteur/vendeur sur actions',\n\t\t\t'long-shortbond': 'Positions acheteur/vendeur sur obligations',\n\t\t\tmanagedfutures: 'Contrats à terme gérés',\n\t\t\tmarketneutral: 'Neutre au marché',\n\t\t\t'mid-capblend': 'Moyenne capitalisation, mixte',\n\t\t\t'mid-capgrowth': 'Moyenne capitalisation, croissance',\n\t\t\t'mid-capvalue': 'Moyenne capitalisation, valeur',\n\t\t\t'miscellaneous--incomeandrealproperty': 'Divers – revenu et biens immobiliers',\n\t\t\t'miscellaneous-incomeandrealproperty': 'Divers – revenu et biens immobiliers',\n\t\t\t'miscellaneous--other': 'Divers – autres',\n\t\t\t'miscellaneous-other': 'Divers – autres',\n\t\t\tmiscellaneousregion: 'Régions diverses',\n\t\t\tmiscellaneoussector: 'Secteurs divers',\n\t\t\tmultialternative: 'À multiples placements non traditionnels',\n\t\t\tmulticurrency: 'Multidevises',\n\t\t\tmultisectorbond: 'Obligations multisectorielles',\n\t\t\tmunicalifornialong: 'Obligations municipales à long terme d’émetteurs californiens',\n\t\t\tmuninationalinterm: 'Obligations municipales à moyen terme d’émetteurs nationaux',\n\t\t\tmuninationallong: 'Obligations municipales à long terme d’émetteurs nationaux',\n\t\t\tmuninationalshort: 'Obligations municipales à court terme d’émetteurs nationaux',\n\t\t\tmuninewyorkintermediate: 'Obligations municipales à moyen terme d’émetteurs new-yorkais',\n\t\t\tmuninewyorklong: 'Obligations municipales à long terme d’émetteurs new-yorkais',\n\t\t\tmunitargetmaturity: 'Obligations municipales à échéance cible',\n\t\t\tnaturalresources: 'Ressources naturelles',\n\t\t\tnaturalresourcesequity: 'Actions liées aux ressources naturelles',\n\t\t\tnontraditionalbond: 'Obligations non traditionnelles',\n\t\t\tnorthamericanequity: 'Actions nord-américaines',\n\t\t\t'options-based': 'Fondées sur les options',\n\t\t\t'pacific/asiaex-japanstock': 'Actions du Pacifique et de l’Asie (hors Japon)',\n\t\t\t'pacific/asiaex-japanstk': 'Actions du Pacifique et de l’Asie (hors Japon)',\n\t\t\t'passiveinverse/leveraged': 'Gestion passive à rendement inverse ou à levier financier',\n\t\t\tpreciousmetalsequity: 'Actions liées aux métaux précieux',\n\t\t\tpreferredsharefixedincome: 'Actions privilégiées à revenu fixe',\n\t\t\tpreferredstock: 'Actions privilégiées',\n\t\t\trealestateequity: 'Actions de sociétés immobilières',\n\t\t\tsectorequity: 'Actions sectorielles',\n\t\t\tshortgovernment: 'Obligations d’État à court terme',\n\t\t\t'short-termbond': 'Obligations à court terme',\n\t\t\tsinglecurrency: 'Devise unique',\n\t\t\tsmallblend: 'Faible capitalisation, mixte',\n\t\t\tsmallgrowth: 'Faible capitalisation, croissance',\n\t\t\tsmallvalue: 'Faible capitalisation, valeur',\n\t\t\ttacticalallocation: 'Répartition tactique de l’actif',\n\t\t\ttacticalbalanced: 'Équilibré tactique',\n\t\t\ttargetmaturity: 'Échéance cible',\n\t\t\t'trading--inversecommodities': 'Marchandises négociées avec effet de levier inversé',\n\t\t\t'trading--inversedebt': 'Titres de créance négociés avec effet de levier inversé',\n\t\t\t'trading--inverseequity': 'Actions négociées avec effet de levier inversé',\n\t\t\t'trading--leveragedcommodities': 'Marchandises négociées avec effet de levier',\n\t\t\t'trading--leverageddebt': 'Titres de créance négociés avec effet de levier',\n\t\t\t'trading--leveragedequity': 'Actions négociées avec effet de levier',\n\t\t\t'trading--miscellaneous': 'Négociation – divers',\n\t\t\tultrashortbond: 'Obligation à très court terme',\n\t\t\t'usdividend&incomeequity': 'Actions américaines à dividence et à revenu',\n\t\t\tusmoneymarket: 'Titres des marchés monétaires américains',\n\t\t\t'ussmall/midcapequity': 'Actions américaines à petite/moyenne capitalisation',\n\t\t\tworldallocation: 'Répartition mondiale',\n\t\t\tworldbond: 'Obligations mondiales',\n\t\t\t'worldbond-usdhedged': 'Obligations mondiales couvertes ($ US)',\n\t\t\tworldlargestock: 'Actions mondiales à forte capitalisation',\n\t\t\t'worldsmall/midstock': 'Actions mondiales à faible/moyenne capitalisation',\n\t\t\tyear: 'an',\n\t\t\tyieldAndDate: 'yield & date',\n\t\t\tyourSelectionDidNotYieldResult: 'Votre recherche n’a donné aucun résultat. Veuillez réessayer avec un critère de recherche différent.',\n\t\t\t// end morningstar cateogires\n\n\t\t\t// Earnings Chart\n\t\t\tactualEarnings: 'Les bénéfices réels de ',\n\t\t\tearningSurprise: 'a {surprise} of ',\n\t\t\tpriceEarnings1: 'Le prix {symbol}\\'s est {priceDirection} ',\n\t\t\tpriceEarnings2: ' to {finalPrice} two days after the',\n\t\t\tpriceEarnings3: ' après l\\'annonce du {date}.',\n\t\t\tearningEstimate1: 'The consensus long term growth estimate is ',\n\t\t\tearningEstimate2: ' with a high estimate of ',\n\t\t\tearningEstimate3: ' and a low estimate of ',\n\t\t\tearningEstimate4: ' with {numOfAnalysts} analysts reporting.',\n\t\t\trose: 'est monté de',\n\t\t\tfell: 'est tombé de',\n\t\t\tpositiveSurprise: ' correspondent à une hausse de ',\n\t\t\tnegativeSurprise: ' correspondent à une baisse de ',\n\t\t\tearningsAnnouncement: 'La prochaine annonce de bénéfices de {symbol} n\\'est pas encore publié(e).',\n\t\t\texceededExp: 'supérieur aux prévisions',\n\t\t\tmissedExp: 'inférieur aux prévisions',\n\t\t\tstockEarningsChartTooltip: 'Sélectionnez un trimestre ou une année pour en savoir plus',\n\t\t\testimatesLabel: 'Prévisions',\n\t\t\tqtrEarningsChartCaption: 'Estimations pour l’{quarter} exercice {year}',\n\t\t\tyrEarningsChartCaption: 'Estimations pour l’exercice {year}',\n\t\t\tearningsChartCaptionSr: 'Données de l’{quarter} exercice {year} selon la sélection du tableau précédent',\n\n\t\t\t// Analyst Recommendations Ratings\n\t\t\tstrongBuy: 'Achat solide',\n\t\t\t'Strong Buy': 'Achat solide',\n\t\t\tbuy: 'Achat',\n\t\t\tBuy: 'Achat',\n\t\t\thold: 'Retenue',\n\t\t\tHold: 'Retenue',\n\t\t\tsell: 'Vente',\n\t\t\tSell: 'Vente',\n\t\t\tstrongSell: 'Vente forte',\n\t\t\t'Strong Sell': 'Vente forte',\n\t\t\tUnderperform: 'Rendement inférieur',\n\t\t\tupwardTrend: 'tendance à la hausse',\n\t\t\tdownwardTrend: 'tendance à la baisse',\n\t\t\tunchangedTrend: 'inchangé',\n\t\t\tanalystRatingText1: 'C\\'est une {trendText} depuis la dernière éstimation de ',\n\t\t\tanalystRatingText2: '. Au ',\n\t\t\tnoAnaylystOpinions: 'Il n\\'y a pas d\\'opinion d\\'analyste disponible pour la période demandée.',\n\n\t\t\t// Dividend Information (Distribution Information)\n\t\t\tlatestXdDate: 'Date ex-dividende la plus récente',\n\t\t\tdividendTaxationCode: 'Code d\\'imposition des dividendes',\n\t\t\tdistributionInformationMF: 'Renseignements sur les distributions',\n\t\t\tnoDistributionInformation: 'Aucun renseignement disponible sur les distributions.',\n\t\t\tupdatedAsOf: 'Mise à jour le',\n\n\t\t\t// Lipper Leader Ratings\n\t\t\tlipperLeaderRatings: 'Cotes Lipper Leaders',\n\t\t\tlipperLeaderTooltip: 'Les cotes de rendement total reflètent le rendement historique total du fonds par rapport aux pairs. Les cotes de rendement constant reflètent les rendements ajustés au risque antérieurs du fonds par rapport aux pairs. Les notes Lipper pour la préservation du capital sont relatives plutôt qu’absolues. Les cotes Lipper Leader NE TIENNENT PAS COMPTE des répercussions des frais d’acquisition. Les notes globales sont fondées sur une moyenne équipondérée des rangs centiles pour chaque mesure sur des périodes de 3, 5 et 10 ans (s’il y a lieu).',\n\t\t\toverallRating: 'Classement globale',\n\t\t\toverallRatingDescription: 'Le système de notation exclusif de Morningstar classifie les FCB en fonction de leur rendement ajusté au risque. La cote globale correspond à la moyenne pondérée des cotes du FCB sur trois, cinq et dix ans. Les FCB sont notés au moyen d\\'un système d\\'étoiles où un classement de 5 étoiles correspond à la cote maximale et un classement de 1 étoile, à la cote la plus faible.',\n\t\t\t'3YearRating': 'Classement 3 ans',\n\t\t\t'5YearRating': 'Classement 5 ans',\n\t\t\t'10YearRating': 'Classement 10 ans',\n\t\t\ttotalReturn: 'Total rendement',\n\t\t\tconsistentReturn: 'Constant rendement',\n\t\t\tpreservation: 'Protection du capital',\n\t\t\tlipperLeaderKey: 'Clé de notation Lipper Leader',\n\t\t\tlipperLogoAlt: 'Les notes Leader Lipper de Refinitiv sont sur une échelle de 5, 5 étant la note la plus élevée, et 1, la plus faible.',\n\t\t\tlipperLeaderContent1: 'Le système d\\'évaluation Lipper Leader peut vous aider à choisir les fonds qui correspondent à votre style et à vos objectifs de gestion.',\n\t\t\tlipperLeaderContent2: 'Ce système applique vos critères pour vous donner une description simple et claire de la réalisation de certains objectifs par un fonds, comme la protection du capital ou son accroissement au moyen de rendements solides et constants.',\n\t\t\tlipperLeaderCaption: 'Les notes Leader Lipper sont sur une échelle de 5, 5 étant la note la plus élevée, et 1, la plus faible.',\n\n\t\t\t// Fund Distribution Chart\n\t\t\tincomeDistributionbyDollar: 'Revenu de distributions par dollar',\n\t\t\tsumofCalendarYear: 'Total des années civiles {year1} to {year2}',\n\t\t\tfundUpdateDisclaimer: 'Les données sur le rendement du fonds et de l\\'indice (à moins d\\'avis contraire) ont été mises à jour le {updateDate}. Les données sur la valeur du fonds (actif net total) ont été mises à jour le {updateDate}. Toutes les autres données, y compris celles sur les valeurs Lipper, ont été mises à jour le {updateDate} sauf avis contraire.',\n\n\t\t\t// Compare ETF section\n\t\t\tcompareEtf: 'Comparer les FNB',\n\t\t\tfindAndCompare: 'Trouver et comparer jusqu’à 4 FNB',\n\t\t\t'52-WeekRange': 'Période de 52 semaines',\n\t\t\tavg10Day: 'Volume moyen (10 jours)',\n\t\t\tetfObjective: 'Objectif de placement ',\n\t\t\tannualReturns: 'Rendements annualisés',\n\t\t\tcalendarYearReturnsSr: 'Calendar year returns data to follow',\n\t\t\tannualReturnsSr: 'Annualized returns data to follow',\n\t\t\tetfSimilarTo: 'ETFs similar to ',\n\t\t\t'1yearRisk': 'Cote de risque 1 an',\n\t\t\t'1yearRiskSr': 'Les données sur le risque sur un an suivront',\n\t\t\t'3yrRisk': 'Cote de risque 3 ans',\n\t\t\t'3yearRiskSr': 'Les données sur le risque sur trois ans suivront',\n\t\t\t'5yrRisk': 'Cote de risque 5 ans',\n\t\t\t'5yearRiskSr': 'Les données sur le risque sur cinq ans suivront',\n\t\t\t'10yrRisk': 'Cote de risque 10 ans',\n\t\t\t'10yearRiskSr': 'Les données sur le risque sur dix ans suivront',\n\t\t\tAlpha: 'Alpha',\n\t\t\tBeta: 'Bêta',\n\t\t\tRSquared: 'R au carré',\n\t\t\tpremiumDiscount3Month: 'À prime / à escompte (3 mois)',\n\t\t\tnumOfDaysPremium: 'No. de jours avec prime',\n\t\t\tnumOfDaysNAV: 'No. de jours à la valeur liquidative',\n\t\t\tnumOfDaysDiscount: 'No. de jours avec escompte',\n\t\t\tnumOfDays5Pct: 'No. de jours dans une fourchette variant de 0,5 % par rapport à la valeur liquidative',\n\t\t\toverAll: 'Globale',\n\t\t\tsector: 'Secteur',\n\t\t\tsectorBtnSr: 'Sector data to follow',\n\t\t\tassetAllocSr: 'Asset allocation data to follow',\n\t\t\tglobalExposureSr: 'Global exposure data to follow',\n\t\t\tsectorSr: 'Sector data to follow',\n\t\t\tholdingsSr: 'Holdings data to follow',\n\t\t\tfindSimilarEtfs: 'Trouver des FNB semblables',\n\t\t\tsimilarEtfTooltipIntro: 'Pour trouver des FNB semblables, nous commençons par repérer les FNB de la même catégorie Morningstar. Nous créons ensuite une note totale pour chacun d’eux en accordant la priorité (dans l’ordre) aux éléments suivants:',\n\t\t\tsimilarEtfTooltipPoint1: '1) Le R au carré sur 3 ans se rapprochant le plus du principal indice Morningstar',\n\t\t\tsimilarEtfTooltipPoint2: '2) Le ratio Sharpe le plus élevé',\n\t\t\tsimilarEtfTooltipPoint3: '3) Le ratio des frais le plus faible',\n\t\t\tsimilarEtfTooltipConclusion: 'Les FNB ayant la meilleure note totale sont considérés comme les plus semblables.',\n\t\t\toverallRatingSr: 'Les données globales sur la cote Morningstar suivront',\n\t\t\t'3yearRatingSr': 'Les données sur la cote Morningstar sur trois ans suivront',\n\t\t\t'5yearRatingSr': 'Les données sur la cote Morningstar sur cinq ans suivront',\n\t\t\t'10yearRatingSr': 'Les données sur la cote Morningstar sur dix ans suivront',\n\t\t\tnoDataForETF: 'Pas de données disponibles pour ce FNB.',\n\t\t\ttopSectors: 'Meilleurs secteurs',\n\t\t\tcanadian: 'Canadien',\n\t\t\tunitedStates: 'États Unis',\n\t\t\tMSDRegionUnitedStates: 'Région États Unis',\n\t\t\tcompareWarningText: 'Vous avez déjà sélectionné des FNB dans l’onglet Comparaison. Sélectionnez OK pour remplacer tous les FNB actuellement sélectionnés dans l’onglet Comparaison par les FNB que vous avez sélectionnés à la page actuelle. Sélectionnez Annuler pour retourner à la page actuelle.',\n\n\t\t\t// Alerts\n\t\t\tmanageAlerts: 'Manage alerts',\n\t\t\tmarketAlert: 'Alerte liée aux marchés',\n\t\t\tmarketAlerts: 'Alertes liées aux marchés',\n\t\t\tmarketAlertsDescription: 'Les alertes liées aux marchés fournissent des mises à jour définies par l’utilisateur qui sont envoyées à des moments établis ou en fonction d’événements déclencheurs précis.',\n\t\t\tmodifyMarketAlerts: 'Modifier les alertes liées aux marchés',\n\t\t\texchange: 'Bourse',\n\t\t\texchangeTradedFunds: 'Fonds négociés en bourse (FNB)',\n\t\t\tdailyListOfMostActiveStocks: 'Liste quotidienne des actions les plus actives',\n\t\t\ttoBeSentAt: 'À envoyer',\n\t\t\tpercentage: 'Pourcentage',\n\t\t\tgainers: 'Plus performants',\n\t\t\tlosers: 'Moins performants',\n\t\t\tgainersAndLosers: 'Plus performants et moins performants',\n\t\t\ttimeframe1024: 'À l’ouverture des marchés, de 10 h à 11 h (HNE)',\n\t\t\ttimeframe4096: 'En milieu de journée, de 12 h à 13 h (HNE)',\n\t\t\ttimeframe65536: 'Après la clôture des marchés, de 16 h à 17 h (HNE)',\n\t\t\tdailyListOf52week: 'Liste quotidienne des nouveaux cours maximum et minimum sur 52 semaines',\n\t\t\tnew52week: 'Nouveaux cours sur 52 semaines',\n\t\t\thighs: 'Maximum',\n\t\t\tlows: 'Minimum',\n\t\t\thighsAndLows: 'Maximum et minimum',\n\t\t\thighAndLow: 'Maximum et minimum',\n\t\t\tdailyListOfVolumeChanges: 'Liste quotidienne des variations de volume',\n\t\t\tstocksWithTheLargest: 'Actions ayant enregistré leur plus forte',\n\t\t\tincreases: 'Augmentation',\n\t\t\tdecreases: 'Diminution',\n\t\t\tincreasesAndDecreases: 'Augmentation et diminution',\n\t\t\tdailyListOfGaps: 'Liste quotidienne des écarts',\n\t\t\tstocksThatOpenedAtLeast: 'Actions ayant ouvert d’au moins 1 %',\n\t\t\thigher: 'À la hausse',\n\t\t\tlower: 'À la baisse',\n\t\t\thigherAndLower: 'À la hausse et à la baisse ',\n\t\t\tdailyListOfBreakouts: 'Liste quotidienne des cassures',\n\t\t\tstocksWhose: 'Actions dont',\n\t\t\tlowPriceAboveYesterdaysHigh: 'Le faible cours est supérieur au cours maximum d’hier ',\n\t\t\thighPriceAboveYesterdaysLow: 'Le cours élevé est supérieur au cours minimum d’hier ',\n\t\t\tlowHighPriceAboveBelowYesterdaysHighLow: 'Le cours faible/élevé est supérieur/inférieur au cours maximum/minimum d’hier ',\n\t\t\tdailyListOfStockSplits: 'Liste quotidienne des fractionnements d’actions',\n\t\t\tpleaseNoteAlert: 'Veuillez noter ',\n\t\t\tnoEmailProvidedModal: 'Aucune adresse de courriel n’a été fournie pour recevoir des alertes. Les alertes créées ne seront pas envoyées.',\n\t\t\tnoEmailProvidedModalPrefs: 'Vous avez retiré toutes les adresses de courriel pour recevoir des alertes. Les alertes enregistrées ne seront pas supprimées, mais ne pourront pas être envoyées tant qu’au moins une adresse de courriel n’aura pas été fournie.',\n\t\t\tsetEmailAlerts: 'Configurer des alertes par courriel',\n\t\t\ttsx: 'TSX',\n\t\t\ttsxVenture: 'Bourse de croissance TSX',\n\t\t\tnyse: 'NYSE',\n\t\t\tnasdaq: 'NASDAQ',\n\t\t\tamex: 'AMEX',\n\t\t\taddAlert: 'Ajouter une alerte',\n\t\t\tstockAlerts: 'Alertes liées aux actions',\n\t\t\tpriceAndVolumeAlerts: 'Alertes liées aux cours et aux volumes',\n\t\t\tstockAlertsFor: 'Alertes liées aux actions pour {symbol}',\n\t\t\tpriceDropsBelow: 'Le cours chute sous',\n\t\t\torRisesAbove: 'ou augmente au-dessus de',\n\t\t\tpriceDropPoint: 'Point de chute du cours',\n\t\t\tpriceRisePoint: 'Point de hausse du cours',\n\t\t\tpriceGap: 'Écart de cours',\n\t\t\tatOpeningTrade: 'à l’ouverture',\n\t\t\tdropDownOptions: 'Options déroulantes :',\n\t\t\tgapUp: 'En hausse',\n\t\t\tgapDown: 'En baisse',\n\t\t\tlastPriceAlert: 'Dernier cours :',\n\t\t\tpeRatioAlert: 'Ratio C/B',\n\t\t\tpeDropPoint: 'Point de chute du ratio C/B ',\n\t\t\tpeRisePoint: 'Point de hausse du ratio C/B',\n\t\t\treachesANew52Weekp1: 'Atteint un nouveau cours',\n\t\t\treachesANew52Weekp2: 'sur 52 semaines.',\n\t\t\tsymbolIsOfIts52WeekHighOfOn: '{symbol} est à {percent} de son cours maximum sur 52 semaines, qui était de {high52Week} le {date}',\n\t\t\t'52WeekValue': 'Cours sur 52 semaines ',\n\t\t\tpriceChange1Week: 'Variation du cours sur 1 semaine',\n\t\t\tpriceChange4Week: 'Variation du cours sur 1 mois',\n\t\t\tpriceChanges: 'Variation du cours de',\n\t\t\tfromPreviousClose: 'depuis la clôture précédente',\n\t\t\tcloseOnDate: '({previousClose} le {date}) ',\n\t\t\tpriceChangeValue: 'Valeur de la variation du cours',\n\t\t\tcrossed: 'est passé',\n\t\t\tcrossesIts: 'S’intersecte avec sa moyenne mobile sur',\n\t\t\tmovingAverage: '',\n\t\t\tcrossesItsMovingAverage: 'Crosses its {30 day} moving average',\n\t\t\tmovingAverageValue: 'Valeur de la moyenne mobile ',\n\t\t\t'15day': '15 jours',\n\t\t\t'30day': '30 jours',\n\t\t\t'60day': '60 jours',\n\t\t\tchangesAlert: 'Variations de',\n\t\t\tfasterThanThe: 'plus rapides que celles de',\n\t\t\toverTheLast: 'au cours des derniers',\n\t\t\tchangeValue: 'Change value',\n\t\t\tmarketAlertLabel: 'Marché',\n\t\t\tspTsxComposite: 'Indice composé S&P/TSX',\n\t\t\tdjia: 'DJIA',\n\t\t\tchangePeriod: 'Période de variation',\n\t\t\ttradingVolumeExceeds10DayAverageBy: 'Le volume d’opérations excède de',\n\t\t\ttradingVolumeExceeds10DayAverageBy2: 'la moyenne sur 10 jours',\n\t\t\trsiOverBoughtSold: 'L’IFR indique un surachat ou une survente',\n\t\t\trsiUnderBoughtSold: 'L’IFR indique un sous-achat ou une sous-vente',\n\t\t\tstockSplitAnnounced: 'Annonce de fractionnement d’actions',\n\t\t\tearningEstimates: 'Estimations des bénéfices',\n\t\t\tquarterlyEarningsEstimatesAnnounced: 'Annonce des estimations des bénéfices trimestriels',\n\t\t\tannualEarningsEstimatesAnnounced: 'Annonce des estimations des bénéfices annuels',\n\t\t\tmostRecentDate: '(Plus récente : {date}) ',\n\t\t\tnewsAlerts: 'Nouvelles alertes',\n\t\t\tnewsStoriesFromReuters: 'Nouvelles de Reuters',\n\t\t\tinDepthStories: '(Récits détaillés, nouvelles de dernière heure et analyses par courriel)',\n\t\t\tanalystReportsAlerts: 'Alertes liées aux rapports d’analystes',\n\t\t\tanalystReportsForAllProviders: 'Rapports d’analystes de tous les fournisseurs',\n\t\t\tcompanyBasedAnalystSearch: '(Recherche analytique en entreprise)',\n\t\t\tpleaseSetTheLowPrice: 'Laissez le faible cours sous le cours actuel. ',\n\t\t\tpleaseSetTheHighPrice: 'Établissez le cours élevé au-dessus du cours actuel. ',\n\t\t\tpleaseSetTheLowPe: 'Établissez le champ du faible ratio C/B sous le ratio C/B actuel. ',\n\t\t\tpleaseSetTheHighPe: 'Établissez le champ du ratio C/B élevé au-dessus du ratio C/B actuel.',\n\t\t\tpleaseInputValues: 'Entrez les valeurs de l’alerte sélectionnée. ',\n\t\t\teditMarketAlert: 'Modifier {name} dans markets tab',\n\t\t\teditStockAlert: 'Modifier {name} dans stocks tab',\n\t\t\tdeleteAlert: 'Supprimer {name}',\n\t\t\tpeDropsBelow: 'Le ratio C/B chute sous',\n\t\t\tinputValueToContinue: 'Entrez les valeurs de l’alerte sélectionnée.',\n\n\t\t\t// Market alert descriptions\n\t\t\talert_52: 'Liste quotidienne des actions plus performants les plus actives',\n\t\t\talert_53: 'Liste quotidienne des actions moins performants les plus actives',\n\t\t\talert_56: 'Liste quotidienne des actions plus performants et moins performants les plus actives',\n\t\t\talert_57: 'Liste quotidienne des nouveaux cours maximum sur 52 semaines',\n\t\t\talert_58: 'Liste quotidienne des nouveaux cours minimum sur 52 semaines',\n\t\t\talert_65: 'Liste quotidienne des nouveaux cours maximum et minimum sur 52 semaines',\n\t\t\talert_66: 'Liste quotidienne des augmentation de volume',\n\t\t\talert_86: 'Liste quotidienne des diminution de volume',\n\t\t\talert_87: 'Liste quotidienne des augmentation et diminution de volume',\n\t\t\talert_88: 'Liste quotidienne des écarts (À la hausse)',\n\t\t\talert_89: 'Liste quotidienne des écarts (À la baisse)',\n\t\t\talert_90: 'Liste quotidienne des écarts (À la hausse et à la baisse)',\n\t\t\talert_91: 'Liste quotidienne des cassures (Le faible cours est supérieur au cours maximum d’hier)',\n\t\t\talert_92: 'Liste quotidienne des cassures (Le cours élevé est supérieur au cours minimum d’hier)',\n\t\t\talert_93: 'Liste quotidienne des cassures (Le cours faible/élevé est supérieur/inférieur au cours maximum/minimum d’hier)',\n\t\t\talert_289: 'Liste quotidienne des fractionnements d’actions',\n\n\t\t\t// Stock alert descriptions\n\t\t\talert_1: 'Le cours descend au-dessous la {price} en dollars',\n\t\t\talert_2: 'Le cours s\\'élève au-dessus la {price} en dollars',\n\t\t\talert_3: 'Atteint un nouveau cours haut sur 52 semaines.',\n\t\t\talert_4: 'Atteint un nouveau cours bas sur 52 semaines.',\n\t\t\talert_5: 'Atteint un nouveau cours maximum et minimum sur 52 semaines.',\n\t\t\talert_6: 'Variation du cours à la clôture précédente +/- {pricePercentChange}',\n\t\t\talert_49: 'Le ratio C/B chute sous {peLimit}',\n\t\t\talert_50: 'Le ratio C/B de hausse {peLimit}',\n\t\t\talert_168: 'Nouvelles de Reuters',\n\t\t\talert_201: 'L’IFR indique un surachat ou une survente',\n\t\t\talert_202: 'L’IFR indique un sous-achat ou une sous-vente',\n\t\t\talert_309: 'Estimations des bénéfices (annuellement)',\n\t\t\talert_310: 'Estimations des bénéfices (trimestriellement)',\n\t\t\talert_311: 'Earnings Estimates (Quarterly or Annual)',\n\t\t\talert_376: 'Annonce du fractionnement d’actions',\n\t\t\talert_381: 'Cours supérieurs à la moyenne mobile',\n\t\t\talert_430: 'Le volume d’opérations excède de {percent} % la moyenne sur 10 jours',\n\t\t\talert_434: 'Écart de cours en baisse à l’ouverture',\n\t\t\talert_435: 'Écart de cours en hausse à l’ouverture',\n\n\t\t\talert_436: 'Le cours a augmenté ou baissé {percentChange} % plus rapidement que le {index} au cours des {days} derniers jours',\n\n\t\t\t// Upgrades & Downgrades\n\t\t\tupgrades: 'Surclassements',\n\t\t\tupgradesSr: 'Afficher les surclassements dans le tableau correspondant',\n\t\t\tupgradesAndDowngrades: 'Surclassements et déclassements',\n\t\t\tdowngrades: 'Déclassements',\n\t\t\tdowngradesSr: 'Afficher les déclassements dans le tableau correspondant',\n\t\t\tnumOfUpgrades: '# de surclassements',\n\t\t\tnumOfDowngrades: '# de déclassements',\n\t\t\tnumOfTotalViews: '# total de points de vue',\n\t\t\tpctUpgrades: '% de surclassements',\n\t\t\tpctDowngrades: '% de déclassements',\n\t\t\tconsensusRating: 'Cote consensuelle',\n\t\t\tanalystsViews: 'Points de vue des analystes (dans les 4 dernières semaines)',\n\t\t\tupgradesBtnSr: 'Afficher les surclassements dans le tableau correspondant',\n\t\t\tdowngradesBtnSr: 'Afficher les déclassements dans le tableau correspondant',\n\n\t\t\t// Screener\n\t\t\tselectAllSr: 'Sélectionner l’ensemble pour inclure tous les critères de la liste correspondante.',\n\t\t\tselectCustomSr: 'Sélectionner l’option de personnalisation pour choisir vos critères de la liste correspondante.',\n\t\t\tselectAllSrIndustry: 'Sélectionner l’ensemble pour inclure tous les critères de la liste correspondante. Les critères de l’industrie sont fondés sur la sélection précédente des critères du secteur',\n\t\t\tholdControlKeyToSelect: 'Maintenir la touche Ctrl enfoncée pour sélectionner plusieurs options.',\n\t\t\tMSDDomicileCountry: 'Pays',\n\t\t\tMSDCIBCETFType: 'Type de fonds',\n\t\t\tMSDMorningstarCategoryName: 'Catégorie de fonds',\n\t\t\tcanadaEquity: 'Actions canadiennes',\n\t\t\tincludeStandardETFs: 'Inclure les FNB standard',\n\t\t\tincludeLeveragedETFs: 'Inclure les FNB à effet de levier ',\n\t\t\tincludeInverseETFs: 'Inclure les FNB à effet de levier inverse',\n\t\t\tcustom: 'Personnaliser',\n\t\t\tcriteria: 'Critères',\n\t\t\teventDate: 'Date de l’activité',\n\t\t\tSTXOverSMA15SMA50: 'Croisement MM (15-day SMA/50-day SMA)',\n\t\t\tmovingAverageOver: 'Croisement MM ({over}-day {overType}/ {under}-day {underType})',\n\t\t\tmovingAverageOverNone: 'Croisement MM',\n\t\t\taddCriteriaToStart: 'Ajoutez les critères ci-dessus pour démarrer une recherche personnalisée sur les FNB.',\n\t\t\tminimizeCriteria: 'Réduire la sélection de critères',\n\t\t\texpandCriteria: 'Réduire la sélection de critères',\n\t\t\tcriteriaMatches: 'Résultats correspondant aux critères',\n\t\t\tscreenMatches: 'Sélections correspondantes',\n\t\t\tremoveCriteriaCategory: 'Supprimer la catégorie de critères',\n\t\t\tresetCriteria: 'Réinitialiser le critère',\n\t\t\tresetAllCriteria: 'Réinitialiser tous les critères',\n\t\t\taddCriteriaToStartACustomSearch: 'Ajoutez les critères ci-dessus pour démarrer une recherche personnalisée sur les FNB.',\n\t\t\tshowCriteriaMatchesToolTip: '

Afficher les résultats correspondant aux critères

Lorsque vous sélectionnez une option dans le menu déroulant pour un critère précis, la colonneAfficher les résultats correspondant aux critères présentera uniquement le nombre de FNB qui répondent aux critères de cette sélection. Les autres critères que vous sélectionnez n’auront aucune incidence sur le nombre affiché.

La colonne Sélections correspondantes affiche les résultats cumulatifs pour tous les critères sélectionnés.

',\n\t\t\tbottom20: '20 % les plus faibles',\n\t\t\tbelowAvg20: '20 % inférieurs à la moyenne',\n\t\t\tavg20: '20 % conformes à la moyenne',\n\t\t\taboveAvg20: '20 % supérieurs à la moyenne',\n\t\t\ttop20: '20 % les plus élevés',\n\t\t\tfrom: 'Évaluation précédente',\n\t\t\tcurrentlyAbove52WeekHigh: 'Se négocie actuellement à un cours supérieur au dernier sommet de 52 semaines',\n\t\t\tnew52WeekLow: 'Se négocie actuellement à un cours inférieur au dernier bas de 52 semaines',\n\t\t\tgreaterThanEqualTo: 'Égaux ou supérieurs à',\n\t\t\tgreaterThanSymbolVariable: '> {number}',\n\t\t\tgreaterThanEqualToSymbolVariable: '>= {number}',\n\t\t\tlessThanEqualTo: 'Égaux ou inférieurs à',\n\t\t\tlessThanSymbolVariable: '< {number}',\n\t\t\tbetween: 'Se situent entre',\n\t\t\tand: ' et ',\n\t\t\tspecificRange: 'Fourchette précise: ',\n\t\t\tspecificRangeSRPerformance: 'Sélectionnez le bouton d’option Fourchette de base pour choisir des valeurs, ou le bouton d’option Fourchette précise pour entrer une ou plusieurs valeurs.',\n\t\t\tnonNumericError: 'Veuillez entrer des caractères numériques seulement.',\n\t\t\tfundStructureTooltip: '

Structure du fonds
Un FNB peut être classé comme un FNB standard, à effet de levier ou à effet de levier inverse.

FNB à effet de levier
Les FNB à effet de levier utilisent quotidiennement des instruments dérivés pour amplifier les rendements d’un indice sous-jacent ou d’un panier de titres. Ces FNB doivent être négociés avec prudence et sont destinés aux négociateurs avancés ayant une compréhension approfondie des risques qui y sont associés.

FNB à effet de levier inverse
Les FNB à effet de levier inverse sont conçus pour tirer parti des fluctuations des cours qui s’opposent à celles de l’indice sous-jacent ou du panier de titres.

',\n\t\t\texchangeCountryTooltip: 'Toutes les valeurs en dollars liées aux critères sont traitées à l’aide de la devise du pays sélectionné.',\n\t\t\tremoveSymbol: 'Remove {symbol} from criteria',\n\t\t\tremoveAllCriteria: 'Effacer les critères',\n\t\t\tglobalHoldingSR: 'Sélectionnez une région, puis le bouton d’option Fourchette de base pour choisir des valeurs ou le bouton d’option Fourchette précise pour entrer une ou plusieurs valeurs.',\n\t\t\tregion: 'Région',\n\t\t\tasia: 'Asie',\n\t\t\tMSDRegionAsia: 'Région Asie',\n\t\t\teurope: 'Europe',\n\t\t\tMSDRegionEurope: 'Région Europe',\n\t\t\tyourResults: 'Vos résultats',\n\t\t\tstandard: 'Standard',\n\t\t\tleveraged: 'Leveraged',\n\t\t\tinverse: 'Inverse',\n\t\t\tbullish: 'Baissier',\n\t\t\tbearish: 'Haussier',\n\t\t\tasOfDatPreviousDayMonthEnd: 'Données du marché établies à la clôture du marché le jour ouvrable précédent. Toutes les autres données sont établies à la fin du mois précédent',\n\t\t\tstartACustomScreenWithTheseCriteria: 'Créez une sélection personnalisée selon ce critère',\n\t\t\tsaveScreen: 'Enregistrer la sélection',\n\t\t\tsaveAsNewScreen: 'Enregistrer comme nouvelle sélection',\n\t\t\tsaveScreener: 'Enregistrer la sélection',\n\t\t\tenterScreenName: 'Entrer le nom de la sélection',\n\t\t\tnameFieldMustBe3Characters: 'Le champ Nom de la sélection doit contenir au moins trois caractères.',\n\t\t\tnameMustNotbeMoreThan22: 'Le nom de la sélection ne doit pas contenir plus de 22 caractères.',\n\t\t\tdescriptionLongerThan100: 'La description ne doit pas contenir plus de 100 caractères.',\n\t\t\tdeleteScreen: 'Supprimer la sélection',\n\t\t\tdoYouWantToDeleteScreen: 'Voulez-vous supprimer cette sélection?',\n\t\t\tthisNameAlreadyExists: 'Ce nom existe déjà dans vos sélections enregistrées.',\n\t\t\toverYourSavedSCreenLimit: 'Vous avez dépassé la limite d’enregistrement des sélections. Supprimer une sélection enregistrée avant d’effectuer un nouvel enregistrement.',\n\t\t\tcompareSelectedEtfs: 'Comparez les FNB que vous avez sélectionnés dans le tableau correspondant.',\n\t\t\terror: 'Erreur',\n\t\t\tSTRSIPeriod2: '2 jours IFR',\n\t\t\tSTRSIPeriod14: '14 jours IFR',\n\t\t\tSTRSIPeriod20: '20 jours IFR',\n\t\t\treviewFundSnapshot: 'Passer en revue l’instantané ({symbol})',\n\t\t\tpleaseSelectCompareSymbols: 'Veuillez sélectionner les symboles à comparer.',\n\t\t\tyouCanOnlySelect4: 'Vous ne pouvez sélectionner que 4 symboles à comparer.',\n\t\t\tpreScreeners: 'Présélections',\n\t\t\tsavedScreeners: 'Sélections enregistrées',\n\t\t\treviewScreen: 'Examiner',\n\t\t\tsaveSearch: 'Sauvegarder la recherche',\n\t\t\tsaveSearchSrOnly: 'Enregistrer la recherche dans une nouvelle boîte de dialogue.',\n\t\t\tstockScreenMatches: '{results} correspondances',\n\t\t\tsectorCurrency: 'Secteur/devise',\n\t\t\tyearChange: 'Variation sur 1 an',\n\t\t\tstockCriteria: 'Critères relatifs aux actions',\n\t\t\texpandStockCriteria: 'Élargir les critères des types de fonds',\n\t\t\tminimizeStockCriteria: 'Réduire les critères des types de fonds',\n\t\t\tcanadaLowPEStocks_desc: 'Actions canadiennes à faibles ratios cours/bénéfice (ratio C/B)',\n\t\t\tusLowPEStocks_desc: 'États-Unis – actions à faible ratio C/B',\n\t\t\tcanadaValueStocks_desc: 'Actions canadiennes à grande capitalisation avec un rendement des capitaux propres élevé ',\n\t\t\tusValueStocks_desc: 'Actions américaines à grande capitalisation avec un rendement des capitaux propres élevé ',\n\t\t\tcumulativeMatches: 'Correspondances cumulatives:',\n\t\t\tpayoutRatioPercent: 'Ratio dividendes/bénéfice (%)',\n\t\t\tdividendYieldPercent: 'Rendement en dividendes (%)',\n\t\t\tpriceEarningRatio: 'Ratio cours/bénéfice',\n\t\t\tgrowthRate5yearEps: 'Taux de croissance/BPA sur 5 ans',\n\t\t\trevenueMillions: 'Revenus (M$)',\n\t\t\troePercent: 'RCP (%)',\n\t\t\troaPercent: 'RA (%)',\n\t\t\tnetProfitMargin: 'Marge bénéficiaire nette',\n\t\t\tgreaterThan: 'Plus de',\n\t\t\tlessThan: 'Moins de',\n\t\t\tminimizeFundamentals: 'Réduire au minimum les critères relatifs aux données fondamentales',\n\t\t\texpandFundamentals: 'Élargir les critères relatifs aux données fondamentales',\n\t\t\treutersConsensusEstimates: 'Consensus et prévisions I/B/E/S de Refinitiv',\n\t\t\tminimizeReutersConsensusEstimates: 'Réduire au minimum les critères I/B/E/S de Refinitiv',\n\t\t\texpandReutersConsensusEstimates: 'Élargir les critères I/B/E/S de Refinitiv',\n\t\t\trecommendations: 'Recommandations',\n\t\t\tannualRevenueInMillions: 'Revenus annuels (M$)',\n\t\t\ttwoYearSingularEnglishOnly: '2 ans',\n\t\t\tthreeYearSingularEnglishOnly: '3 ans',\n\t\t\tfiveYearSingularEnglishOnly: '5 ans',\n\t\t\ttenYearSingularEnglishOnly: '10 ans',\n\t\t\tannualEarningsPerShare: 'Résultat annuel par action ($)',\n\t\t\tquarterlyRevenue: 'Revenus trimestriels (M$)',\n\t\t\tquarterlyEarningsPerShare: 'Résultat trimestriel par action ($)',\n\t\t\t'1qtr': '1 trim',\n\t\t\t'2qtr': '2 trim',\n\t\t\t'3qtr': '3 trim',\n\t\t\t'5qtr': '5 trim',\n\t\t\t'10qtr': '10 trim',\n\n\t\t\t// Keywords search tooltip content\n\t\t\tkeywordSearchHeading: 'Recherche améliorée de mots clés prédéterminés',\n\t\t\tkeywordSearchDescription: 'À la page Recherche avancée, les utilisateurs peuvent désormais filtrer la recherche de mots clés en sélectionnant un bouton d’option pour trouver l’ \"Expression exacte\", \"Tous les mots clés\" ou \"N’importe quel mot clé\".',\n\t\t\tkeywordSearchP1: 'La recherche par \"Expression exacte\" exécute la recherche de tous les mots qui se trouvent en ordre consécutif. Par exemple, la recherche de nouvelle économie, l’aide du bouton Expression exacte, ne donnera que des résultats contenant l’expression nouvelle économie',\n\t\t\tkeywordSearchP2: 'La recherche par \"Tous les mots clés\" exécute la recherche dans les documents qui contiennent tous les mots clés, mais pas nécessairement en ordre consécutif. Ainsi, une recherche de nouvelle économie l’aide du bouton Tous les mots clés donnera des résultats dans lesquels les deux mots nouveau et économie se trouvent n’importe où dans le document.',\n\t\t\tkeywordSearchP3: 'La recherche l’aide du bouton \"N’importe quel mot clé\" exécute une recherche de documents qui contiennent n’importe quel mot clé inclus dans la recherche par mots clés. Ainsi, une recherche de nouvelle économie l’aide du bouton N’importe quel mot clé donnera des résultats dans lesquels le mot nouvelle ou le mot économie se trouve n’importe où dans le document.',\n\t\t\tkeywordSearchP4: 'En sélectionnant le bouton \"Manchettes seulement\", vous pouvez limiter n’importe laquelle de ces recherches aux manchettes des documents seulement.',\n\t\t\tkeywordSearchP5: 'Fonctionnement de ces recherches prédéfinies :',\n\t\t\tkeywordSearchTable1H1: 'Critère des mot clés',\n\t\t\tkeywordSearchTable1H2: 'Recherches',\n\t\t\tkeywordSearchTable1H3: 'Résultats',\n\t\t\tkeywordSearchTable1R1C1: 'Expression exacte',\n\t\t\tkeywordSearchTable1R1C2: 'Nouvelle économie',\n\t\t\tkeywordSearchTable1R1C3: 'Seulement les documents contenant l’expression nouvelle écononomie',\n\t\t\tkeywordSearchTable1R2C1: 'Tous les mots clés',\n\t\t\tkeywordSearchTable1R2C3: 'Seulement les documents contenant le terme nouveau et le terme économie',\n\t\t\tkeywordSearchTable1R3C1: 'N’importe quel mot clé',\n\t\t\tkeywordSearchTable1R3C3: 'Seulement les documents contenant soit nouveau soit économie',\n\t\t\tadditionalKeywordSearchHeading: 'Autres exemples de recherche par mots clés',\n\t\t\tadditionalKeywordSearchDescription: 'Pour mieux préciser la recherche de mots clés, qui n’est pas fournie avec l’interface standard, les utilisateurs peuvent rechercher des combinaisons de mots ou d’expressions en ajoutant des opérateurs logiques booléens. Par exemple, si vous recherchez des documents contenant l’expression \"rapport annuel\" et \"bilan\", vous pouvez taper:',\n\t\t\tadditionalKeywordSearchP1: '\"rapport annuel\" & \"bilan\"',\n\t\t\tadditionalKeywordSearchP2: 'dans le champ de la recherche par mots clés. Remarquez les guillemets. Ils indiquent que l’expression entière constitue l’objet de la recherche, non les mots séparément. Les recherches de',\n\t\t\tadditionalKeywordSearchP3: 'pince papiers',\n\t\t\tadditionalKeywordSearchP4: 'et',\n\t\t\tadditionalKeywordSearchP5: '\"pince papiers\"',\n\t\t\tadditionalKeywordSearchP6: 'donnent des résultats différents. La première demande renvoie des documents contenant soit le mot \"papiers\", soit le mot \"pince\". La seconde demande ne renvoie que les documents contenant l’expression \"pince papiers\".',\n\t\t\tadditionalKeywordSearchP7: 'Exemples d’élaboration de recherches plus complexes :',\n\t\t\tkeywordSearchTable2H1: 'En tapant...',\n\t\t\tkeywordSearchTable2H2: 'On obtient les documents contenant...',\n\t\t\tkeywordSearchTable2R1C1: 'DEC',\n\t\t\tkeywordSearchTable2R1C2: '...DEC, dec, Dec, etc.',\n\t\t\tkeywordSearchTable2R2C1_1: 'DEC & IBM',\n\t\t\tkeywordSearchTable2R2C1_2: 'ou',\n\t\t\tkeywordSearchTable2R2C1_3: 'DEC et IBM',\n\t\t\tkeywordSearchTable2R2C2: '...la fois DEC et IBM',\n\t\t\tkeywordSearchTable2R3C1_1: 'DEC | IBM',\n\t\t\tkeywordSearchTable2R3C1_2: 'ou',\n\t\t\tkeywordSearchTable2R3C1_3: 'DEC ou IBM',\n\t\t\tkeywordSearchTable2R3C2: '...soit DEC soit IBM.',\n\t\t\tkeywordSearchTable2R4C1: 'DEC IBM',\n\t\t\tkeywordSearchTable2R4C2: '...soit DEC soit IBM.',\n\t\t\tkeywordSearchTable2R5C1: 'DEC & IBM | GE',\n\t\t\tkeywordSearchTable2R5C2: '...soit DEC et IBM, soit GE.',\n\t\t\tkeywordSearchTable2R6C1: 'DEC & ( IBM | GE )',\n\t\t\tkeywordSearchTable2R6C2: '... la fois DEC et soit IBM soit GE.',\n\t\t\tkeywordSearchTable2R7C1: '\"rapport annuel\" ',\n\t\t\tkeywordSearchTable2R7C2: '...l’expression \"rapport annuel\".',\n\t\t\tkeywordSearchTable2R8C1: 'rapport annuel',\n\t\t\tkeywordSearchTable2R8C2: '...soit \"rapport\", soit \"annuel\".',\n\t\t\tkeywordSearchTable2R9C1: 'logiciel & \"rapports annuels\"',\n\t\t\tkeywordSearchTable2R9C2: '...le mot logiciel et l’expression rapports annuels.',\n\t\t\tkeywordSearchTable2R10C1: 'logiciel & ^ chiffrier',\n\t\t\tkeywordSearchTable2R10C2: '...logiciel, mais non chiffrier.',\n\t\t\tkeywordSearchTable2R11C1: 'Java &^ (cafe | Indonesie)',\n\t\t\tkeywordSearchTable2R11C2: '...java, mais non café ni Indonésie.',\n\t\t\tkeywordSearchTable2R12C1: 'Coca-Cola NEAR/5 PepsiCo',\n\t\t\tkeywordSearchTable2R12C2: '...Coca-Cola moins de 5 caractères de PepsiCo.',\n\t\t\tkeywordSearchTable2R13C1: 'Coca-Cola NEAR PepsiCo. (Remarque : sans un nombre de caractères, le nombre de caractères par défaut sera 64). ',\n\t\t\tkeywordSearchTable2R13C2: '...Coca-Cola adjacent PepsiCo.',\n\t\t\tkeywordSearchTable2R14C1: 'mer*',\n\t\t\tkeywordSearchTable2R14C2: '...mer, Merrill, merry, etc. L’astérisque remplace n’importe quel nombre de lettres la fin du mot.',\n\t\t\tkeywordSearchTable2R15C1: 'm?cro',\n\t\t\tkeywordSearchTable2R15C2: '...micro, macro, m3cro, etc. Le \"?\" remplace n’importe quelle lettre ou n’importe quel chiffre.',\n\t\t\tkeywordSearchTable2R16C1: 'Jane\\'s >',\n\t\t\tkeywordSearchTable2R16C2: '...Jane’s. L’apostrophe n’est pas considérée comme un guillemet simple.',\n\t\t\tkeywordSearchTable2R17C1: '\"nouvelle de la journée\"',\n\t\t\tkeywordSearchTable2R17C2: '...les expressions \"nouvelle & journée\", \"nouvelle @ journée\" \"nouvelle journée\". Les caractères spéciaux (pas les lettres et les chiffres) sont considérés comme étant interchangeables.',\n\t\t\tkeywordSearchTable2R18C1: '\"nouvelle & journée\"',\n\t\t\tkeywordSearchTable2R18C2: '...les expressions \"nouvelle & journée\", \"nouvelle @ journée\" \"nouvelle journée\". Les caractères spéciaux (pas les lettres et les chiffres) sont considérés comme étant interchangeables.',\n\n\t\t\tyear1: '1 an',\n\t\t\ttwoYears: '2 ans ',\n\t\t\t// -- START Industries --\n\t\t\tAdvertising: 'La publicité',\n\t\t\tAerospace: 'Aérospatial',\n\t\t\t'Aerospace & Defense': 'Aérospatiale et défense',\n\t\t\t'Agricultural Crop Production': 'Crop production agricole',\n\t\t\t'Agricultural Livestock': 'Élevage agricole',\n\t\t\tAgriculture: 'Agriculture',\n\t\t\t'Agricultural Chemicals': 'Produits chimiques d’usage agricole',\n\t\t\t'Airlines/Air Freight': 'Compagnies aériennes et fret aérien',\n\t\t\taluminum: 'Aluminum',\n\t\t\t'Apparel, Footwear & Accessories': 'Vêtements, chaussures et accessoires',\n\t\t\t'Appliances & Electronics': 'Appareils et électronique',\n\t\t\t'Auto Parts': 'Pièces d’automobiles',\n\t\t\t'Autos & Auto Parts': 'Automobiles et pièces d’automobiles',\n\t\t\t'Autos- Manufacturing': 'Fabrication autos',\n\t\t\tBanking: 'Bancaire',\n\t\t\t'Banking & Savings': 'Services bancaires et d\\'épargne',\n\t\t\tBeverages: 'Boissons',\n\t\t\tBiotechnology: 'Biotechnologie',\n\t\t\t'Brokers & Intermediaries': 'Courtiers & intermédiaires',\n\t\t\tBuilders: 'Constructeurs',\n\t\t\t'Business Services': 'Les services aux entreprises',\n\t\t\tChemicals: 'Produits chimiques',\n\t\t\t'Commercial Services & Supplies': 'Services et fournitures commerciaux',\n\t\t\tCommunications: 'Communications',\n\t\t\t'Computer Hardware & Equipment': 'Ordinateurs, composants et équipement',\n\t\t\t'Construction Services': 'Services de construction',\n\t\t\t'Consumer Goods': 'Biens de consommation',\n\t\t\t'Consumer Products': 'Les produits de consommation',\n\t\t\t'Consumer Services': 'Services aux consommateurs',\n\t\t\t'Containers & Packaging': 'Contenants et emballages',\n\t\t\t'Credit & Lending': 'Crédit et prêt',\n\t\t\tDefense: 'La défense',\n\t\t\t'Diagnostic & Health Related Services': 'Diagnostic & Services de santé connexes',\n\n\t\t\t'Educational Services': 'Services éducatifs',\n\t\t\t'Electric Utilities': 'Electric utilities',\n\t\t\t'Electrical Equipment': 'Équipement électrique',\n\t\t\t'Electronic Instruments & Related Products': 'Instruments électroniques et produits connexes',\n\t\t\tEnergy: 'Énergie',\n\t\t\tEntertainment: 'Divertissement',\n\t\t\t'Equipment & Services': 'Equipement et Services',\n\t\t\tETFs: 'FNB',\n\t\t\t'Finance Intermediaries & Services': 'Finance Intermédiaires et Services',\n\t\t\tFinancials: 'Services financiers',\n\t\t\t'Fishing & Gaming': 'Pêche et chasse',\n\t\t\tFood: 'Aliments',\n\t\t\t'Food & Beverage': 'Nourriture et boissons',\n\t\t\tForestry: 'Sylviculture',\n\t\t\tFurniture: 'Meubles',\n\t\t\t'Gas Utilities': 'Services publics de gaz',\n\t\t\t'General Insurance': 'Assurances générales',\n\t\t\t'Health Care': 'Soins de santé',\n\t\t\t'Health Care Equipment': 'Équipement de soins de santé',\n\t\t\t'Health Care Services': 'Services de santé',\n\t\t\t'Holding and other Investment Offices': 'Sociétés de portefeuille et autres bureaux de placement',\n\t\t\t'Hospitals & Health Care Facilities': 'Installations hôpitaux et centres de soins',\n\t\t\t'Hotels, Restaurants & Travel': 'Hôtels, restaurants et agences de voyages',\n\t\t\t'Household & Personal Products': 'Produits ménagers et personnels',\n\t\t\t'Household Appliances, Electronics & Goods': 'Electroménager, electronique & goods',\n\t\t\t'Industrial Machinery & Equipment': 'Machines & équipement industriel',\n\t\t\tIndustrials: 'Produits industriels',\n\t\t\tInsurance: 'Assurance',\n\t\t\t'Internet & Software': 'Internet et logiciels',\n\t\t\t'Investments & Brokers': 'Investissements & courtiers',\n\t\t\t'IT & Communications': 'Technologie de l\\'information et communications',\n\t\t\t'IT Hardware': 'Matériel informatique',\n\t\t\t'IT Services': 'Services informatiques',\n\t\t\t'IT Services & Software': 'Services et logiciels',\n\t\t\t'Leisure Equipment': 'Equipement de loisirs',\n\t\t\t'Life & Health': 'Vie et santé',\n\t\t\tMachinery: 'Machinerie',\n\t\t\tManufacturing: 'Fabrication',\n\t\t\tMaterials: 'Matériaux',\n\t\t\tMedia: 'Médias',\n\t\t\t'Medical Instruments & Equipment': 'Instruments et équipements médicaux',\n\t\t\t'Metal Products': 'Des produits métalliques',\n\t\t\t'Metals & Mining': 'Metals & mining',\n\t\t\tMining: 'Exploitation minière',\n\t\t\tMiscellaneous: 'Divers',\n\t\t\t'Miscellaneous Consumer Goods': 'Biens de consommation divers',\n\t\t\t'Miscellaneous Consumer Services': 'Divers services aux consommateurs',\n\t\t\t'Miscellaneous Transportation Services': 'Divers transports services',\n\t\t\tmiscellaneouseducationalserviceproviders: 'Fournisseurs de services d’éducation divers',\n\t\t\t'Non-Precious Metals': 'Métaux non-précieux',\n\t\t\t'Office Equipment & Furniture': 'Équipement et ameublement de bureau',\n\t\t\t'Oil & Gas': 'Gaz de pétrole',\n\t\t\t'Oil Royalty Traders': 'Huile libres traders',\n\t\t\t'Paper & Forest Products': 'Papier et produits forestiers',\n\t\t\t'Patent Owners & Lessors': 'Propriétaires et bailleurs brevets',\n\t\t\tPeripherals: 'Périphériques',\n\t\t\tPharmaceuticals: 'Médicaments',\n\t\t\t'Pharmaceuticals & Biotechnology': 'Pharmacie et biotechnologie',\n\t\t\tPlastics: 'Matières plastiques',\n\t\t\t'Precious Metals': 'Métaux précieux',\n\t\t\tPrinting: 'Impression',\n\t\t\t'Production & Extraction': 'Production et extraction',\n\t\t\t'Property, Real Estate & Development': 'Immobilier, immobilier & développement',\n\t\t\tPublishing: 'Édition',\n\t\t\t'Radio & Television': 'Radio et télévision',\n\t\t\tRail: 'Transport ferroviaire',\n\t\t\t'Real Estate': 'Immobilier',\n\t\t\t'Refining & Marketing': 'Raffinage et commercialisation',\n\t\t\tREITs: 'REITs',\n\t\t\tRetail: 'Vente au détail',\n\t\t\t'Retail - Apparel and Accessories': 'Vente au détail - vêtements et accessoires',\n\t\t\t'Retail - Appliances and Electronics': 'Commerce de détail - appareils électroménagers et électroniques',\n\t\t\t'Retail - Automotive': 'Vente au détail - automobile',\n\t\t\t'Retail - Food & Beverage, Drug & Tobacco': 'Retail - food & beverage, drug & tobacco',\n\t\t\t'Retail - Furniture & Home Furnishings': 'Vente au détail - meubles et ameublement',\n\t\t\t'Retail - General Merchandise/Department Stores': 'Vente au détail - general merchandise / grands magasins',\n\t\t\t'Retail - Hardware & Home Improvement': 'Commerce de détail - articles de quincaillerie et de rénovations domiciliaires',\n\t\t\t'Retail - Specialty': 'Commerce de détail - articles spécialisés',\n\t\t\t'Rubber Products': 'Produits en caoutchouc',\n\t\t\t'Sanitation Services': 'Services d\\'assainissement',\n\t\t\tSemiconductors: 'Semi-conducteurs',\n\t\t\tServices: 'Prestations de service',\n\t\t\tShipping: 'Livraison',\n\t\t\t'Specialty Chemicals': 'Produits chimiques spécialisés',\n\t\t\t'Sporting & Recreational': 'Sports et loisirs',\n\t\t\t'Synthetic Materials': 'Matériaux synthétiques',\n\t\t\tTextiles: 'Textiles',\n\t\t\t'Textiles & Apparel': 'Textiles et vêtements',\n\t\t\tTobacco: 'Le tabac',\n\t\t\t'Tobacco Products': 'Produits du tabac',\n\t\t\tTransport: 'Transport',\n\t\t\tTrucking: 'Camionnage',\n\t\t\tUtilities: 'Utilitaires',\n\t\t\t'Venture Capital': 'Capital de risque',\n\t\t\t'Water Utilities': 'Services publics d’eau',\n\t\t\t'Wealth Management': 'Gestion de patrimoine',\n\t\t\t// -- END Industries --\n\t\t\tscreenDescription: 'Description de la sélection',\n\t\t\trenameScreenerSr: 'Renommez la fenêtre de dialogue ouverte de la sélection',\n\t\t\teditScreenerSr: 'Modifier la fenêtre de dialogue ouverte de la sélection',\n\t\t\tdeleteScreenerSr: 'Supprimer la fenêtre de dialogue ouverte de la sélection',\n\t\t\tcustomSearchResults: 'Résultats de la recherche',\n\t\t\teditScreener: 'Modifier la sélection',\n\t\t\tcibcPreScreens: 'Présélections CIBC',\n\t\t\treviewPrescreens: 'Examiner les vérifications préalables',\n\n\t\t\t// Fund Screener\n\t\t\tcibcSeriesD: 'Série D CIBC',\n\t\t\tcibcSeriesDDescription: 'Série D CIBC dans le tableau correspondant',\n\t\t\tcibcMutualFunds: 'Fonds mutuels CIBC',\n\t\t\tcibcMutualFundsDescription: 'Liste de Fonds mutuels CIBC',\n\t\t\trenaissance: 'Renaissance',\n\t\t\trenaissanceDescription: 'Liste de fonds communs de placement Renaissance',\n\t\t\taxiomFunds: 'Axiom',\n\t\t\taxiomFundsDescription: 'Liste de fonds communs de placement Axiom',\n\t\t\ttechnicalAnalysisAndRisk: 'Analyse technique et risque',\n\t\t\t'1mo': '1 mois',\n\t\t\t'3mo': '3 mois',\n\t\t\t'1yr': '1 an',\n\t\t\t'3yr': '3 an',\n\t\t\tPriceBookRatio: 'Ratio cours/valeur comptable',\n\t\t\talpha3Yr: 'Alpha (3 ans)',\n\t\t\tbeta3Yr: 'Bêta (3 ans)',\n\t\t\tinformationRatio: 'Ratio d’information',\n\t\t\tannulaizedStdDev: 'Écart-type annualisé',\n\t\t\tconsistentReturnLiteral: 'Constant rendement',\n\t\t\tcustomizeScreenerAction: 'Personnalisation de la sélection',\n\t\t\tfundTypes: 'Types de fonds',\n\t\t\tadditionalFundAttributes: 'Caractéristiques supplémentaires des fonds',\n\t\t\tscreenNameLabel: 'Nom de la sélection',\n\t\t\tscreenerList: 'Liste des sélections',\n\t\t\t// begin stock screener industries\n\t\t\t// -- Begin Academic & Education services\n\t\t\t'academic&educationalservices': 'Services de formation et d’enseignement',\n\t\t\tprofessionalbusinesseducation: 'Formation professionnelle en administration des affaires',\n\t\t\tschoolcollegeuniversity: 'Écoles, collèges, universités',\n\t\t\t// -- End Academic..\n\t\t\t// -- Begin Industries - BASIC Materials\n\t\t\tagriculturalchemicals: 'Produits chimiques d’usage agricole',\n\t\t\tcommoditychemicals: 'Produits chimiques de base',\n\t\t\tconstructionmaterials: 'Matériaux de construction',\n\t\t\tdiversifiedchemicals: 'Produits chimiques diversifiés',\n\t\t\tdiversifiedmining: 'Exploitation minière diversifiée',\n\t\t\tforestwoodproducts: 'Foresterie et produits du bois',\n\t\t\tminingsupportservicesequipment: 'Équipements annexes de l’extraction',\n\t\t\tnongoldpreciousmetalsminerals: 'Minéraux de métaux précieux autres que l’or',\n\t\t\tnonpapercontainerspackaging: 'Contenants et emballages autres qu’en papier',\n\t\t\tpaperpackaging: 'Emballages en papier',\n\t\t\tpaperproducts: 'Produits de papier',\n\t\t\tspecialtychemicals: 'Produits chimiques spécialisés',\n\t\t\tchemicalmanufacturing: 'Fabrication de produits chimiques',\n\t\t\tchemicalsplasticrubber: 'Produits chimiques – plastique et caoutchouc',\n\t\t\tcontainerspackaging: 'Contenants et emballages',\n\t\t\tfabricatedplasticrubber: 'Produits fabriqués en plastique et en caoutchouc',\n\t\t\tforestrywoodproducts: 'Foresterie et produits du bois',\n\t\t\tgoldsilver: 'Or et argent',\n\t\t\tironsteel: 'Fer et acier',\n\t\t\tmetalmining: 'Mines de métaux',\n\t\t\tmiscfabricatedproducts: 'Produits fabriqués divers',\n\t\t\tnonmetallicmining: 'Exploitation minière non métallique',\n\t\t\tpaperpaperproducts: 'Papier et produits du papier',\n\t\t\tspecialtyminingmetals: 'Mines et métaux spécialisés',\n\t\t\t// -- End Basic materials\n\t\t\t// -- Begin Capital goods\n\t\t\taerospacedefense: 'Aéronautique et défense',\n\t\t\tconstragricmachinery: 'Construction – machines agricoles',\n\t\t\tconstrsuppliesfixtures: 'Construction – meubles et accessoires',\n\t\t\tconstructionrawmaterials: 'Construction – matières premières',\n\t\t\tconstructionservices: 'Services de construction',\n\t\t\tmisccapitalgoods: 'Biens d’équipement divers',\n\t\t\tmobilehomesrvs: 'Maisons mobiles et VR',\n\t\t\t// -- End Capital goods\n\t\t\t// -- Begin Consumer cyclical\n\t\t\tapparelaccessories: 'Vêtements et accessoires',\n\t\t\tapparelaccessoriesretailers: 'Détaillants de Vêtements et accessoires',\n\t\t\tappliancetool: 'Appareils et outils',\n\t\t\tappliancestoolshousewares: 'Appareils et outils',\n\t\t\taudiovideoequipment: 'Matériel audio et vidéo',\n\t\t\tautotruckmanufacturers: 'Constructeurs d’automobiles et de camions',\n\t\t\tautotruckparts: 'Pièces d’automobiles et de camions',\n\t\t\tautotruckmotorcycleparts: 'Pièces d’automobiles, de motocyclette et de camions',\n\t\t\tautovehiclespartsserviceretailers: 'Détaillants de véhicules et de pièces automobiles',\n\t\t\tadvertisingmarketing: 'Marketing publicitaire',\n\t\t\tcomputerelectronicsretailers: 'Détaillants d’ordinateurs et d’appareils électroniques',\n\t\t\tconstructionsuppliesfixtures: 'Meubles et accessoires de construction',\n\t\t\tconsumerpublishing: 'Publication pour les consommateurs',\n\t\t\tdepartmentstores: 'Grands magasins',\n\t\t\tdiscountstores: 'Magasins de rabais',\n\t\t\tentertainmentproduction: 'Production de divertissement',\n\t\t\tfootwear: 'Chaussures',\n\t\t\tfurniturefixtures: 'Meubles et accessoires',\n\t\t\thomebuilding: 'Construction individuelle',\n\t\t\thomefurnishings: 'Ameublement',\n\t\t\thomefurnishingsretailers: 'Détaillants de meubles',\n\t\t\thomeimprovementproductsservicesretailers: 'Détaillants de produits et services de rénovation domiciliaire',\n\t\t\thotelsmotelscruiselines: 'Hôtels, motels et croisiéristes',\n\t\t\tjewelrysilverware: 'Bijoux et argenterie',\n\t\t\tleisurerecreation: 'Loisirs',\n\t\t\totherspecialtyretailers: 'Autres détaillants spécialisés',\n\t\t\tphotography: 'Photographie',\n\t\t\trecreationalproducts: 'Produits récréatifs',\n\t\t\trestaurantsbars: 'Restaurants et bars',\n\t\t\ttextilenonapparel: 'Textile – autre que vêtements',\n\t\t\ttextilesleathergoods: 'Textiles et produits de cuir',\n\t\t\ttires: 'Pneus',\n\t\t\ttiresrubberproducts: 'Pneus et produits en caoutchouc',\n\t\t\ttoysjuvenileproducts: 'Jouets et produits pour enfants en bas âge',\n\t\t\t// -- End Consumer cyclical\n\t\t\t// -- Begin Consumer non-cyclial\n\t\t\tbeveragesalcoholic: 'Boissons (alcoolisées)',\n\t\t\tbeveragesnonalcoholic: 'Boissons (non alcoolisées)',\n\t\t\tbrewers: 'Brasseries',\n\t\t\tcrops: 'Productions agricoles',\n\t\t\tconsumergoodsconglomerates: 'Conglomérats de biens de consommation',\n\t\t\tdistillerswineries: 'Distilleries et établissements vinicoles',\n\t\t\tdrugretailers: 'Détaillants de médicaments',\n\t\t\tfishlivestock: 'Poisson et bétail',\n\t\t\tfishingfarming: 'Pêche et agriculture',\n\t\t\tfoodprocessing: 'Transformation des aliments',\n\t\t\tfoodretaildistribution: 'Commerce de détail et distribution alimentaire',\n\t\t\thouseholdproducts: 'Produits ménagers',\n\t\t\tnonalcoholicbeverages: 'Boissons non alcoolisées',\n\t\t\tofficesupplies: 'Fournitures de bureau',\n\t\t\tpersonalproducts: 'Produits personnels',\n\t\t\tpersonalhouseholdprods: 'Produits personnels et domestiques',\n\t\t\t// -- End of Consumer non-cyclical\n\t\t\t// -- Begin Energy\n\t\t\tcoal: 'Charbon',\n\t\t\tintegratedoilgas: 'Pétrole et gaz – sociétés intégrées',\n\t\t\toilgasdrilling: 'Pétrole et gaz Forage',\n\t\t\toilgasexplorationandproduction: 'Pétrole et gaz – Sociétés d’exploration et de production',\n\t\t\toilgasintegrated: 'Pétrole et gaz – sociétés intégrées',\n\t\t\toilgasoperations: 'Pétrole et gaz – exploitation',\n\t\t\toilgasrefiningandmarketing: 'Raffinage et commercialisation de pétrole et de gaz',\n\t\t\toilwellservicesequipment: 'Entretien des puits de pétrole et équipement',\n\t\t\toilgastransportationservices: 'Services de transport de pétrole et de gaz',\n\t\t\toilrelatedservicesandequipment: 'Services et équipement liés au pétrole',\n\t\t\trenewableenergyequipmentservices: 'Équipements liés à l’énergie renouvelable',\n\t\t\trenewablefuels: 'Combustibles renouvelables',\n\t\t\t// -- End Energy\n\t\t\t// -- Begin Financial\n\t\t\tconsumerfinancialservices: 'Services financiers aux consommateurs',\n\t\t\tinsuranceaccidenthealth: 'Assurance (accidents et santé)',\n\t\t\tinsurancelife: 'Assurance (vie)',\n\t\t\tinsurancemiscellaneous: 'Assurance (divers)',\n\t\t\tinsurancepropcasualty: 'Assurance (dommages)',\n\t\t\tinvestmentservices: 'Services de placement',\n\t\t\tmiscfinancialservices: 'Services financiers divers',\n\t\t\tmoneycentrebanks: 'Banques installées sur les principales places financières',\n\t\t\tregionalbanks: 'Banques régionales',\n\t\t\tslssavingsbanks: 'Banques d’épargne et de crédit',\n\t\t\tclosedendfunds: 'Fonds de placement à capital fixe',\n\t\t\tconsumerlending: 'Prêts à la consommation',\n\t\t\tcorporatefinancialservices: 'Services financiers aux entreprises',\n\t\t\tdiversifiedinvestmentservices: 'Services de placement diversifiés',\n\t\t\tfinancialcommoditymarketoperators: 'Opérateurs de marchés financiers et des marchandises',\n\t\t\tinvestmentbankingbrokerageservices: 'Services de banque d’investissement et de courtage',\n\t\t\tinvestmentholdingcompanies: 'Sociétés de portefeuille de placements',\n\t\t\tinvestmentmanagementfundoperators: 'Gestion de placements et opérateurs de fonds',\n\t\t\tinvestmenttrusts: 'Fiducies de placement',\n\t\t\tlifehealthinsurance: 'Assurance vie et assurance maladie',\n\t\t\tmutualfunds: 'Fonds communs de placement',\n\t\t\tmultilineinsurancebrokers: 'Assurance multirisque et courtiers',\n\t\t\tpropertycasualtyinsurance: 'Assurance de dommages',\n\t\t\treinsurance: 'Réassurance',\n\t\t\t// -- End Financial\n\t\t\t// -- Begin Healthcare\n\t\t\tbiotechnologydrugs: 'Biotechnologie et médicaments',\n\t\t\thealthcarefacilities: 'Établissements de soins de santé',\n\t\t\tmajordrugs: 'Principaux médicaments',\n\t\t\tmedicalequipmentsupplies: 'Équipement et fournitures médicaux',\n\t\t\tadvancedmedicalequipmenttechnology: 'Technologies et équipements médicaux de pointe',\n\t\t\tbiotechnologymedicalresearch: 'Biotechnologie et recherche médicale',\n\t\t\thealthcarefacilitiesservices: 'Établissements et services de soins de santé',\n\t\t\tmanagedhealthcare: 'Soins de santé gérés',\n\t\t\tmedicalequipmentsuppliesdistribution: 'Fournitures et équipements médicaux, et distribution',\n\t\t\tpharmaceuticals: 'Produits pharmaceutiques',\n\t\t\t// -- End Healthcare\n\t\t\t// -- Begin Services\n\t\t\tadvertising: 'Publicité',\n\t\t\tbroadcastingcabletv: 'Services de diffusion et câblodistribution',\n\t\t\tbroadcasting: 'Services de diffusion',\n\t\t\tbusinessservices: 'Services aux entreprises',\n\t\t\tcasinosgaming: 'Casinos et jeux de hasard',\n\t\t\tcommunicationsservices: 'Services de communication',\n\t\t\thotelsmotels: 'Industries de l’hébergement',\n\t\t\tmotionpictures: 'Cinéma',\n\t\t\tpersonalservices: 'Services personnels',\n\t\t\tprintingpublishing: 'Impression et édition',\n\t\t\tprintingservices: 'Services d’impression',\n\t\t\trealestateoperations: 'Activités immobilières',\n\t\t\trecreationalactivities: 'Activités récréatives',\n\t\t\trentalleasing: 'Location et crédit-bail',\n\t\t\trestaurants: 'Restaurants',\n\t\t\tretailapparel: 'Détail (vêtements)',\n\t\t\tretailcatalogmailorder: 'Détail (catalogue et commande postale)',\n\t\t\tretaildepartmentdiscount: 'Détail (service et rabais)',\n\t\t\tretaildrugs: 'Détail (médicaments)',\n\t\t\tretailgrocery: 'Détail (épicerie)',\n\t\t\tretailhomeimprovement: 'Détail (rénovations domiciliaires)',\n\t\t\tretailspeciality: 'Détail (spécialité)',\n\t\t\tretailtechnology: 'Détail (technologie)',\n\t\t\tschools: 'Écoles',\n\t\t\tsecuritysystemsservices: 'Systèmes et services de sécurité',\n\t\t\twastemanagementservices: 'Services de gestion des déchets',\n\t\t\t// -- End Services\n\t\t\t// -- Begin Industrials\n\t\t\tairfreightlogistics: 'Fret aérien et services logistiques',\n\t\t\tairlines: 'Transporteurs aériens',\n\t\t\tairportservices: 'Services aéroportuaires',\n\t\t\tbusinesssupportservices: 'Services de soutien opérationnel',\n\t\t\tbusinesssupportsupplies: 'Fournitures de soutien opérationnel',\n\t\t\tcommercialprintingservices: 'Services d’impression commerciale',\n\t\t\tconstructionengineering: 'Construction et ingénierie',\n\t\t\tdiversifiedindustrialgoodswholesale: 'Commerce de gros de biens industriels diversifiés',\n\t\t\telectricalcomponentsequipment: 'Composants et équipement électriques',\n\t\t\temploymentservices: 'Services d’emploi',\n\t\t\tenvironmentalservicesequipment: 'Services et équipement environnementaux',\n\t\t\tgroundfreightlogistics: 'Fret terrestre et services logistiques',\n\t\t\theavyelectricalequipment: 'Équipements électriques lourds',\n\t\t\theavymachineryvehicles: 'Machineries et véhicules lourds',\n\t\t\thighwaysrailtracks: 'Autoroutes et voies ferrées',\n\t\t\tindustrialmachineryequipment: 'Machines et matériel industriels',\n\t\t\tmarinefreightlogistics: 'Fret maritime et services logistiques',\n\t\t\tmarineportservices: 'Ports et services maritimes',\n\t\t\tpassengertransportationgroundsea: 'Transport de passagers par voie terrestre et maritime',\n\t\t\tprofessionalinformationservices: 'Services d’information professionnelle',\n\t\t\tshipbuilding: 'Construction de navires',\n\t\t\t// -- End Industrials\n\t\t\t// -- Begin Technology\n\t\t\tcommunicationsequipment: 'Équipement de communication',\n\t\t\tcomputerhardware: 'Matériel informatique',\n\t\t\tcomputernetworks: 'Réseaux informatiques',\n\t\t\tcomputerperipherals: 'Périphériques d’ordinateur',\n\t\t\tcomputerservices: 'Services informatiques',\n\t\t\tcomputerstoragedevices: 'Dispositifs de stockage informatique',\n\t\t\telectronicinstrcontrols: 'Instruments et contrôles électroniques',\n\t\t\tofficeequipment: 'Matériel de bureau',\n\t\t\tscientifictechnicalinstr: 'Instruments scientifiques et techniques',\n\t\t\tsemiconductors: 'Semiconducteurs',\n\t\t\tsoftwareprogramming: 'Logiciels et programmes',\n\t\t\tblockchaincryptocurrency: 'Chaînes de blocs et cryptomonnaies',\n\t\t\tcommunicationsnetworking: 'Communications et réseautage',\n\t\t\telectronicequipmentparts: 'Matériel et pièces électroniques',\n\t\t\tfinancialtechnologyfintech: 'Technologie financière (Fintech)',\n\t\t\thouseholdelectronics: 'Appareils électroniques ménagers',\n\t\t\tintegratedhardwaresoftware: 'Matériel et logiciels intégrés',\n\t\t\tintegratedtelecommunicationsservices: 'Services de télécommunications intégrés',\n\t\t\tinternetservices: 'Services Internet',\n\t\t\titservicesconsulting: 'Services et services-conseils en TI',\n\t\t\tmiscellaneousfintechinfrastructure: 'Infrastructure de technologies financières diverses',\n\t\t\tphoneshandhelddevices: 'Téléphones et appareils portatifs',\n\t\t\tsemiconductorequipmenttesting: 'Semiconducteurs, équipement et testeurs',\n\t\t\tsoftware: 'Logiciels',\n\t\t\twirelesstelecommunicationsservices: 'Services de télécommunications sans fil',\n\t\t\t// -- End Technology\n\t\t\t// -- Begin Real estate\n\t\t\tcommercialreits: 'FPI commerciales',\n\t\t\tdiversifiedreits: 'FPI diversifiées',\n\t\t\trealestatedevelopmentoperations: 'Promotion et exploitation immobilières',\n\t\t\trealestateservices: 'Services immobiliers',\n\t\t\tresidentialreits: 'FPI résidentielles',\n\t\t\tspecializedreits: 'FPI spécialisées',\n\t\t\t// -- End Real estate\n\t\t\t// -- Begin Transportation\n\t\t\taircourier: 'Messagerie aérienne',\n\t\t\tairline: 'Compagnies aériennes',\n\t\t\tmisctransportation: 'Transport divers',\n\t\t\trailroads: 'Chemins de fer',\n\t\t\ttrucking: 'Camionnage',\n\t\t\twatertransportation: 'Transport par eau',\n\t\t\t// -- End Transportation\n\t\t\t// -- Begin Utilities\n\t\t\telectricutilities: 'Services publics d’électricité',\n\t\t\tnaturalgasutilities: 'Services publics de gaz naturel',\n\t\t\twaterutilities: 'Services publics d’eau',\n\t\t\tindependentpowerproducers: 'Producteurs d’électricité indépendants',\n\t\t\tmultilineutilities: 'Services publics diversifiés',\n\t\t\t// -- End Utilities\n\t\t\tsearchByKeywords: 'Recherche par mots-clés',\n\t\t\tselectSources: 'Sélectionner les sources',\n\t\t\tselectIndustries: 'Sélectionner les secteurs',\n\t\t\tindustrySection: 'Secteur',\n\t\t\t// end stock screener industries\n\t\t\ttrue: 'Vrai',\n\t\t\tfalse: 'Faux',\n\t\t\teditCriteria: 'Modifier les critères',\n\t\t\trenameScreen: 'Renommer la sélection',\n\t\t\tallFundFamilies: 'Toutes les familles de fonds',\n\t\t\tallEtfTypes: 'Tous les types de FNB',\n\t\t\tbrowseByEtf: 'Parcourir par FNB',\n\t\t\treportPdf: 'Rapport (PDF)',\n\t\t\tsourceCriterion: 'Critère d’origine',\n\t\t\tindustryCriterion: 'Critère du secteur',\n\t\t\tthereAreNoSavedSearches: 'Il n’y a aucune recherche sauvegardée.',\n\t\t\tnewAdvancedSearch: 'Nouvelle recherche avancée',\n\t\t\tsavedAnalystReportsSearchButtonSR: 'Affichage dans le tableau correspondant des rapports : {searchName}',\n\t\t\tdeleteSearch: 'Supprimer la recherche',\n\t\t\teditSearchInNewDialog: 'Modifier dans une nouvelle boîte de dialogue la recherche sur : {searchName}',\n\t\t\trenameSearchInNewDialog: 'Ouvrir dans une nouvelle boîte de dialogue la recherche sur : {searchName}',\n\t\t\teditSavedSearch: 'Modifier la recherche sur : {searchName}',\n\t\t\trenameSearch: 'Renommer la recherche',\n\t\t\tdeleteSavedSearch: 'Supprimer la recherche sauvegardée',\n\t\t\tdoYouWantToDelete: 'Voulez-vous supprimer cette recherche sauvegardée?',\n\t\t\teditCustomSearchName: 'Modifier le nom de la recherche personnalisée',\n\t\t\tsaveCustomSearch: 'Enregistrer la recherche personnalisée',\n\t\t\tcustomSearchNameOver32: 'Les noms de la recherche personnalisée ne doivent pas dépasser 32 caractères.',\n\t\t\tsetAlert: 'Configurer une alerte',\n\t\t\tsetAlertSr: 'Configurer une alerte liée au rapport {searchName}',\n\t\t\tanalystReportAlertsHeader: 'Alertes liées aux rapports d’analystes',\n\t\t\trecieveDailyEmail: 'Recevez chaque jour une alerte par courriel des plus récents rapports d’analystes selon des critères de recherche précis.',\n\t\t\tsetAnalystReportAlerts: 'Configurer des alertes liées aux rapports d’analystes',\n\t\t\tsavedSearch: 'Recherche sauvegardée',\n\t\t\tsavedSearchResults: 'Résultats de la recherche {searchName}',\n\t\t\talreadySearchingSymbol: 'Ce symbole figure déjà dans la liste.',\n\t\t\tnoResultsFoundPleaseChooseDiff: 'Aucun résultat trouvé. Sélectionner un critère de recherche différent.',\n\t\t\tnameExistsAlready: 'Il y a déjà une recherche sauvegardée pour ce nom. Renommer.',\n\t\t\tsaveAsNewSearch: 'Enregistrer comme nouvelle recherche',\n\t\t\tsearchName: 'Nom de la recherche',\n\t\t\tequityFunds: 'Fonds d’actions',\n\t\t\tmixedEquityFunds: 'Fonds mixtes d’actions',\n\t\t\tfixedIncomeFunds: 'Fonds à revenu fixe',\n\t\t\tmoneyMarketFunds: 'Fonds du marché monétaire',\n\t\t\tbondFunds: 'Fonds d’obligations',\n\t\t\trealEstateFunds: 'Fonds immobiliers',\n\t\t\totherFunds: 'Autres fonds',\n\t\t\tLFFundType: 'Types de fonds',\n\t\t\tLFAssetType: 'Type d’actifs',\n\t\t\tLFFundPromotor: 'Promoteur de fonds',\n\t\t\tLFLipperClassification: 'Catégorie de fonds',\n\t\t\tLFTotalReturns1m: 'Montants des rendements (%)',\n\t\t\tlessThanZero: '< 0%',\n\t\t\tzeroToFive: '0-5%',\n\t\t\tfiveToTen: '5-10%',\n\t\t\ttenToFifteen: '10-15%',\n\t\t\tgreaterThanFifteen: '15%+',\n\t\t\ttimePeriod: 'Période',\n\t\t\t'<$1K': '<$1K',\n\t\t\t'$1K-2K': '$1K-2K',\n\t\t\t'$2K-10K': '$2K-10K',\n\t\t\t'>$10K': '>$10K',\n\t\t\tminimumInitialInvestmentScreener: 'Placement initial minimal',\n\t\t\t'<$100M': '< $100M',\n\t\t\t'$100M-500M': '$100M-500M',\n\t\t\t'$500M-1B': '$500M-1B',\n\t\t\t'$1B+': '$1B+',\n\t\t\tmgmtExpenseRatio: 'Ratio des frais de gestion',\n\t\t\t'0-1%': '0-1%',\n\t\t\t'1-2%': '1-2%',\n\t\t\t'2-3%': '2-3%',\n\t\t\t'3-4%': '3-4%',\n\t\t\t'4%+': '4%+',\n\t\t\tLFLoadType: 'Types de chargement',\n\t\t\tnoLoad: 'Aucun chargement',\n\t\t\tfront: 'Avant',\n\t\t\tback: 'Arrière',\n\t\t\tlevel: 'Niveau',\n\t\t\toriginalAmount: 'Montant initial',\n\t\t\tmarketValueLabel: 'Valeur marchande',\n\t\t\tnoSavedScreeners: 'Vous n’avez actuellement aucune sélection enregistrée.',\n\t\t\tcreateNewScreener: 'Créer un nouvel écran.',\n\t\t\treviewScreener: 'Examiner les sélections',\n\t\t\tminimizeFundTypeCriteria: 'Réduire les critères des types de fonds',\n\t\t\texpandFundTypeCriteria: 'Élargir les critères des types de fonds',\n\t\t\tlipperInstructions: 'Choisir la note Lipper Leader parmi les catégories connexes qui correspondent à vos objectifs de placement. Vous pouvez faire plusieurs choix.',\n\t\t\tPreservationCriteria: 'Préservation',\n\t\t\tLFNoLoad: 'Aucun chargement',\n\t\t\tLFFrontLoad: 'Avant',\n\t\t\tLFBackLoad: 'Arrière',\n\t\t\tLFLevelLoad: 'Niveau',\n\t\t\tLFDeferredLoadOrigAmt: 'Montant initial',\n\t\t\tLFDeferredLoadMktValue: 'Valeur marchande',\n\t\t\tequalTo: 'Égal à',\n\t\t\tanotherDifferentTranslationOfAll: 'Ensemble',\n\t\t\ttotalNetAssetsScreener: 'Valeur liquidative totale',\n\t\t\tminimizeTotalReturnPerformance: 'Réduire les critères de rendement total',\n\t\t\texpandTotalReturnPerformance: 'Élargir les critères de rendement total',\n\t\t\tscreenerTotalReturnPerformance: 'Rendement total',\n\t\t\tminimizeAdditionalFund: 'Réduire les critères des caractéristiques supplémentaires des fonds',\n\t\t\texpandAdditionalFund: 'Élargir les critères des caractéristiques supplémentaires des fonds',\n\t\t\tminimizeLipperCriteria: 'Réduire les critères des notes Lipper Leader ',\n\t\t\texpandLipperCriteria: 'Élargir les critères des notes Lipper Leader',\n\t\t\tlipperLeaderRatingsScreener: 'Notes Lipper Leader',\n\t\t\tcanadianMFs: 'Fonds commun de placement canadiens',\n\t\t\tcanadianETFs: 'FNB canadiens',\n\t\t\tusETFs: 'FNB américains',\n\t\t\tpageIsLoading: 'Chargement de la page en cours',\n\t\t\t// WebDrawer Top Holdings\n\t\t\ttop5Holdings: '5 principaux placements',\n\t\t\ttop5HoldingsTooltip: 'Les principaux placements sont les actifs détenus dans un portefeuille dont la pondération est la plus élevée.',\n\t\t\tentity: 'Entité',\n\t\t\tshowSectorHoldings: 'Show sector holdings',\n\t\t\tshowEntityHoldings: 'Show entity holdings',\n\t\t\t// Account Holdinfs\n\t\t\taccountHoldings: {\n\t\t\t\tbuy: 'Acheter',\n\t\t\t\thold: 'Détenir',\n\t\t\t\tsell: 'Vendre'\n\t\t\t}\n\t\t}\n\t}\n};\n\nexport { translations as default };\n","/* global localStorage */\nimport { getLangFromQueryString } from '../Utils/pathUtils';\n\nconst validateLang = lang => {\n\treturn lang && (lang === 'en' || lang === 'fr');\n};\n\nconst getLanguage = defaultLanguage => {\n\t// Look in the query string if we have one save it for later and return it\n\tconst languageFromQueryString = getLangFromQueryString();\n\tif (languageFromQueryString && validateLang(languageFromQueryString)) {\n\t\tlocalStorage.setItem('language', languageFromQueryString);\n\t\treturn languageFromQueryString;\n\t}\n\n\t// Check local storage if we have a language set return it\n\tconst languageFromLocalStorage = localStorage.getItem('language');\n\tif (languageFromLocalStorage) {\n\t\treturn languageFromLocalStorage;\n\t}\n\n\t// if a default was passed in return that else return english\n\treturn defaultLanguage || 'en';\n};\n\nexport default getLanguage;\n","/* global CSS, document */\nconst cssDetect = {};\n\ncssDetect.supportsFlex = () => {\n\treturn typeof CSS !== 'undefined' && CSS && CSS.supports && CSS.supports('display', 'flex');\n};\n\ncssDetect.isIe = () => {\n\treturn document && !!document.documentMode;\n};\n\nexport default cssDetect;\n","/* eslint-disable max-len */\n/* eslint-disable no-extra-boolean-cast */\n/* global window */\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { matchPath } from 'react-router';\nimport {\n\tBrowserRouter as Router,\n\tRoute,\n\tRedirect,\n\tSwitch\n} from 'react-router-dom';\nimport { IntlActions } from 'react-redux-multilingual';\nimport { requestPostProfile } from 'Actions/AlertsActions';\nimport getLanguage from 'services/languageService';\nimport { areas } from 'SiteConfigs/pages-config';\nimport cssDetect from 'Utils/cssHelper';\nimport accessTokenService from 'services/accessTokenService';\nimport asyncComponent from './asyncComponent';\n\nconst Routes = props => {\n\tconst {\n\t\tuser,\n\t\tfetchingUserInfo,\n\t\tsetAlertsLang,\n\t\tsetLocale\n\t} = props;\n\n\tconst { tier, language } = user || {};\n\tconst { iframeCommunication, location, format } = window;\n\tlet content = null;\n\tconst areasToRoute = [\n\t\tareas.marketsCentre,\n\t\tareas.stockCentre,\n\t\tareas.stocks,\n\t\tareas.quotelists,\n\t\tareas.etfCentre,\n\t\tareas.etfCentreIndividualHolding,\n\t\tareas.fundCentreIndividualHolding,\n\t\tareas.fundCentre,\n\t\tareas.alerts,\n\t\tareas.analystReports,\n\t\tareas.pdfDownload,\n\t\tareas.pageNotFound\n\t];\n\n\t// look in query string first\n\tlet foundUserLang = getLanguage();\n\t// if the user has a lang and its not the default of en then switch to french\n\tif (language && language.toLowerCase().indexOf('f') > -1) {\n\t\tfoundUserLang = 'fr';\n\t}\n\n\tif (foundUserLang) {\n\t\tsetLocale(foundUserLang);\n\t\tsetAlertsLang(foundUserLang.toUpperCase());\n\t\tformat.myLocale(foundUserLang);\n\t\tformat.setDocumentLocale(foundUserLang);\n\t}\n\n\tfunction removeTokenFlag() {\n\t\tconst exists = window.localStorage.getItem('skip_token_request');\n\t\tif (exists) {\n\t\t\tsetTimeout(() => { window.localStorage.removeItem('skip_token_request'); }, 3000);\n\t\t}\n\t}\n\n\tconst lang = foundUserLang === 'fr' ? 'fr' : 'en';\n\tconst hasToken = accessTokenService.getPreviousToken();\n\tconst skipTokenRequest = window.localStorage.getItem('skip_token_request');\n\tif (!hasToken) {\n\t\tif (skipTokenRequest) {\n\t\t\t// session ended error tracking object\n\t\t\tremoveTokenFlag();\n\t\t\tconst SessionEnded = asyncComponent(() => { return import('../Views/SessionEnded/SessionEnded'); });\n\t\t\tiframeCommunication.tokenExpired(location.pathname);\n\t\t\tcontent = ;\n\t\t} else {\n\t\t\tiframeCommunication.requestToken();\n\t\t}\n\t} else if (user && tier) {\n\t\tconst {\n\t\t\ttechAnalysis,\n\t\t\tfundCentreETFs,\n\t\t\tallowedAlerts,\n\t\t\tallowedFundCentre,\n\t\t\tcode\n\t\t} = tier;\n\n\t\tconst { userId } = user;\n\t\tremoveTokenFlag();\n\n\t\tconst routesCollection = [];\n\n\t\tareasToRoute.forEach(area => {\n\t\t\tarea.forEach(page => {\n\t\t\t\tif ((page.checkTechAnalysis && !techAnalysis)\n\t\t\t\t\t|| (page.checkFundCentreETFs && !fundCentreETFs)\n\t\t\t\t\t|| (page.checkAlerts && !allowedAlerts)\n\t\t\t\t\t|| (page.checkFundCentre && !allowedFundCentre)) {\n\t\t\t\t\troutesCollection.push(\n\t\t\t\t\t\t\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\t// check for matching route\n\t\t\t\t\tif (!!matchPath(window.location.pathname, page.route)) {\n\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\tname, heirarchy, addParams, tabNameMapping\n\t\t\t\t\t\t} = page;\n\t\t\t\t\t\tconst updatedHeirarchy = (heirarchy && [...heirarchy]) || [];\n\t\t\t\t\t\tlet pageName = name;\n\t\t\t\t\t\tlet url = window.location.href;\n\t\t\t\t\t\tif (addParams) {\n\t\t\t\t\t\t\tconst { params } = matchPath(window.location.pathname, page.route);\n\t\t\t\t\t\t\tconst { tab } = params;\n\t\t\t\t\t\t\tpageName = (tabNameMapping && tabNameMapping[tab]) || tab;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (window.sessionStorage.getItem('currentPage') !== window.location.pathname) {\n\t\t\t\t\t\t\tif (fundCentreETFs && updatedHeirarchy.indexOf('etf-centre') > -1) {\n\t\t\t\t\t\t\t\tupdatedHeirarchy.pop();\n\t\t\t\t\t\t\t\tupdatedHeirarchy.push('fund-centre');\n\t\t\t\t\t\t\t\turl = url.replace('etfcentre', 'fundcentre');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twindow.sessionStorage.setItem('currentPage', window.location.pathname);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\troutesCollection.push(\n\t\t\t\t\t\t { return import(`Views/${page.componentPath}`); })} />\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\tcontent = (\n\t\t\t\n\t\t\t\t iframeCommunication.handleKeepAlive(event)}\n\t\t\t\t\tclassName={`${cssDetect.supportsFlex() ? '' : 'safari-fix'} ${cssDetect.isIe() ? 'ie-fix' : ''}`}>\n\t\t\t\t\t\n\t\t\t\t\t\t{routesCollection}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t} else if ((!user || !tier) && !fetchingUserInfo) {\n\t\tremoveTokenFlag();\n\t\tconst SessionEnded = asyncComponent(() => { return import('../Views/SessionEnded/SessionEnded'); });\n\t\tiframeCommunication.tokenExpired(location.pathname);\n\t\tcontent = ;\n\t}\n\n\treturn (\n\t\tcontent\n\t);\n};\n\nconst mapStateToProps = state => ({\n\tuser: state.userData.user,\n\tfetchingUserInfo: state.userData.fetchingUserInfo,\n\tlocale: state.Intl.locale\n});\n\nconst mapDispatchToProps = dispatch => ({\n\tsetLocale: lang => dispatch(IntlActions.setLocale(lang)),\n\tsetAlertsLang: lang => dispatch(requestPostProfile({ languageCode: lang }))\n});\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Routes);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingNewsData: false,\n\tnewsData: {},\n\tetfNewsData: {},\n\tfetchingNewsArticle: false,\n\tfetchingNewsLink: false,\n\tnewsArticleData: {},\n\tfetchingNewsInsights: false,\n\tinsightsData: {},\n\tfetchingPdf: false,\n\tfetchingEtfNewsData: false\n};\n\nconst requestMarketNews = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingNewsData: true\n\t});\n};\n\nconst receiveMarketNews = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingNewsData: false,\n\t\tnewsData: Object.assign({}, action.response)\n\t});\n};\n\nconst requestEtfNews = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingEtfNewsData: true\n\t});\n};\n\nconst receiveEtfNews = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingEtfNewsData: false,\n\t\tetfNewsData: Object.assign({}, action.response)\n\t});\n};\n\nconst requestNewsLink = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingNewsLink: true,\n\t\tnewsArticleData: {}\n\t});\n};\n\nconst requestNewsArticle = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingNewsArticle: true,\n\t\tnewsArticleData: {}\n\t});\n};\n\nconst receiveNewsArticle = (state, action) => {\n\tconst data = action.response;\n\treturn Object.assign({}, state, {\n\t\tfetchingNewsArticle: false,\n\t\tnewsArticleData: data\n\t});\n};\n\nconst requestInsights = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingNewsInsights: true\n\t});\n};\n\nconst receiveInsights = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingNewsArticle: false,\n\t\tinsightsData: Object.assign({}, state.insightsData, {\n\t\t\t[action.newsId]: action.response.data\n\t\t})\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_REQUEST_MARKET_NEWS]: requestMarketNews,\n\t[Types.API_RECEIVE_MARKET_NEWS]: receiveMarketNews,\n\t[Types.API_REQUEST_ETF_NEWS]: requestEtfNews,\n\t[Types.API_RECEIVE_ETF_NEWS]: receiveEtfNews,\n\t[Types.API_REQUEST_NEWS_LINK]: requestNewsLink,\n\t[Types.API_REQUEST_NEWS_ARTICLE]: requestNewsArticle,\n\t[Types.API_RECEIVE_NEWS_ARTICLE]: receiveNewsArticle,\n\t[Types.API_REQUEST_NEWS_INSIGHTS]: requestInsights,\n\t[Types.API_RECEIVE_NEWS_INSIGHTS]: receiveInsights,\n\t[Types.API_HANDLE_NEWS_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingPriceChartData: false,\n\tdata: {}\n};\n\nconst requestPriceChart = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingPriceChartData: true\n\t});\n};\n\nconst receivePriceChart = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingPriceChartData: false,\n\t\tdata: Object.assign({}, action.response.data)\n\n\t});\n};\n\nconst receiveMultiplePriceChart = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingPriceChartData: false,\n\t\tdata: Object.assign({}, state.data, { [action.response.data.venueXid]: action.response.data })\n\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_CIBC_SINGLE_REQUEST_PRICECHART]: requestPriceChart,\n\t[Types.API_CIBC_REQUEST_PRICECHART]: requestPriceChart,\n\t[Types.API_CIBC_RECEIVE_PRICECHART]: receivePriceChart,\n\t[Types.API_CIBC_RECEIVE_MULTIPLE_PRICECHART]: receiveMultiplePriceChart,\n\t[Types.API_CIBC_HANDLE_PRICECHART_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingQuoteData: false,\n\tfetchingLegacyQuoteData: false,\n\tlegacyQuote: {},\n\tquotesByXid: {},\n\tdata: {}\n};\n\nconst requestQuotes = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingQuoteData: true\n\t});\n};\n\nconst receiveQuotes = (state, action) => {\n\tconst byXid = {};\n\n\tif (action.response\n\t\t&& action.response.data\n\t\t&& action.response.data.quotes\n\t\t&& action.response.data.quotes.length > 0) {\n\t\taction.response.data.quotes.forEach(quote => {\n\t\t\tconst { data, error } = quote || {};\n\t\t\tif (data && data.lastTrade && data.lastTrade.open === 0) {\n\t\t\t\tdata.lastTrade.open = null;\n\t\t\t}\n\n\t\t\tif (!error) {\n\t\t\t\tbyXid[data.venueXid] = data;\n\t\t\t}\n\t\t});\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingQuoteData: false,\n\t\tdata: Object.assign({}, action.response),\n\t\tquotesByXid: Object.assign({}, state.quotesByXid, byXid)\n\t});\n};\n\nconst requestLegacyQuotes = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingLegacyQuoteData: true,\n\t\tlegacyQuote: {}\n\t});\n};\n\nconst receiveLegacyQuotes = (state, action) => {\n\tlet data = {};\n\n\tif (action.response && action.response.data) {\n\t\tdata = action.response.data;\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingLegacyQuoteData: false,\n\t\tlegacyQuote: data\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_REQUEST_QUOTE]: requestQuotes,\n\t[Types.API_RECEIVE_QUOTE]: receiveQuotes,\n\t[Types.API_CIBC_REQUEST_LEGACY_QUOTE]: requestLegacyQuotes,\n\t[Types.API_CIBC_RECEIVE_LEGACY_QUOTE]: receiveLegacyQuotes,\n\t[Types.API_HANDLE_QUOTE_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingUserInfo: false,\n\tuser: {}\n};\n\nconst requestUserInfo = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingUserInfo: true\n\t});\n};\n\nconst receiveUserInfo = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingUserInfo: false,\n\t\tuser: Object.assign({}, action.response.data)\n\t});\n};\n\nconst receiveUserInfoFail = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingUserInfo: false,\n\t\tuser: Object.assign({})\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_CIBC_SINGLE_REQUEST_USER_INFO]: requestUserInfo,\n\t[Types.API_CIBC_RECEIVE_USER_INFO]: receiveUserInfo,\n\t[Types.API_CIBC_RECEIVE_USER_INFO_FAIL]: receiveUserInfoFail,\n\t[Types.API_CIBC_HANDLE_USER_INFO]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\n};\n\nconst apiRequest = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetching: action.isFetching,\n\t\tname: action.name\n\t});\n};\n\nconst failure = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\terror: true,\n\t\tmessage: action\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_REQUEST]: apiRequest,\n\t[Types.API_FAILURE]: failure\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingCommoditiesData: false,\n\tcommoditiesQuoteData: {}\n};\n\nconst requestCommoditiesQuotes = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingCommoditiesData: true\n\t});\n};\n\nconst receiveCommoditiesQuotes = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingCommoditiesData: false,\n\t\tcommoditiesQuoteData: Object.assign({}, action.response)\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_REQUEST_COMMODITIES_QUOTES]: requestCommoditiesQuotes,\n\t[Types.API_RECEIVE_COMMODITIES_QUOTES]: receiveCommoditiesQuotes,\n\t[Types.API_HANDLE_COMMODITIES_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingCommoditiesChartData: false,\n\tdata: {}\n};\n\nconst requestCommoditiesChart = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingCommoditiesChartData: true\n\t});\n};\n\nconst receiveCommoditiesChart = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingCommoditiesChartData: false,\n\t\tdata: Object.assign({}, action.response.data)\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_CIBC_REQUEST_COMMODITIESCHART]: requestCommoditiesChart,\n\t[Types.API_CIBC_RECEIVE_COMMODITIESCHART]: receiveCommoditiesChart,\n\t[Types.API_CIBC_HANDLE_COMMODITIESCHART_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tcurrencyChartData: {}\n};\n\nconst requestCurrencyChart = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingCurrencyChartData: true\n\t});\n};\n\nconst receiveCurrencyChart = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingCurrencyChartData: false,\n\t\tcurrencyChartData: action.currencyChartData.data\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_CIBC_REQUEST_CURRENCYCHART]: requestCurrencyChart,\n\t[Types.API_CIBC_RECEIVE_CURRENCYCHART]: receiveCurrencyChart,\n\t[Types.API_CIBC_HANDLE_CURRENCYCHART_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingIndexData: false,\n\tindexData: {}\n};\n\nconst requestIndexQuotes = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingIndexData: true\n\t});\n};\n\nconst recieveIndexQuotes = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingIndexData: false,\n\t\tindexData: Object.assign({}, action.response.data)\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_REQUEST_INDEX_QUOTES]: requestIndexQuotes,\n\t[Types.API_RECIEVE_INDEX_QUOTES]: recieveIndexQuotes,\n\t[Types.API_HANDLE_INDEX_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingMarketRankings: false,\n\tdata: {}\n};\n\nconst requestMarketRankings = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingMarketRankings: true\n\t});\n};\n\nconst receiveMarketRankings = (state, action) => {\n\tconst { data } = state;\n\n\tif (action.response.data && action.response.data.marketRankings) {\n\t\tdata[action.rankingType] = action.response.data.marketRankings;\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingMarketRankings: false,\n\t\tdata: Object.assign({}, data)\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_REQUEST_MARKET_RANKINGS]: requestMarketRankings,\n\t[Types.API_RECEIVE_MARKET_RANKINGS]: receiveMarketRankings,\n\t[Types.API_HANDLE_MARKET_RANKINGS_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingSymbolSearch: false,\n\tdata: {},\n\tclassificationIds: [\n\t\t{\n\t\t\tid: 1,\n\t\t\tname: 'Debt'\n\t\t},\n\t\t{\n\t\t\tid: 2,\n\t\t\tname: 'Derivative'\n\t\t},\n\t\t{\n\t\t\tid: 3,\n\t\t\tname: 'Equity'\n\t\t},\n\t\t{\n\t\t\tid: 5,\n\t\t\tname: 'Fund'\n\t\t},\n\t\t{\n\t\t\tid: 18,\n\t\t\tname: 'ETF'\n\t\t},\n\t\t{\n\t\t\tid: 84,\n\t\t\tname: 'Closed End Funds'\n\t\t}\n\t]\n};\n\nconst requestSymbolSearch = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingSymbolSearch: true,\n\t\tdata: {}\n\t});\n};\n\nconst receiveSymbolSearch = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingSymbolSearch: false,\n\t\tdata: action.response.data\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_SINGLE_REQUEST_SYMBOL_SEARCH]: requestSymbolSearch,\n\t[Types.API_RECEIVE_SYMBOL_SEARCH]: receiveSymbolSearch,\n\t[Types.API_HANDLE_SYMBOL_SEARCH_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from 'Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingTechnicalAnalysis: false,\n\tdata: {}\n};\n\nconst requestTechnicalAnalysis = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingTechnicalAnalysis: true\n\t});\n};\n\nconst receiveTechnicalAnalysis = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingTechnicalAnalysis: false,\n\t\tdata: Object.assign({}, action.response)\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_CIBC_REQUEST_TECHNICAL_ANALYSIS]: requestTechnicalAnalysis,\n\t[Types.API_CIBC_RECEIVE_TECHNICAL_ANALYSIS]: receiveTechnicalAnalysis,\n\t[Types.API_CIBC_HANDLE_TECHNICAL_ANALYSIS_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable no-param-reassign */\n/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport lodash from 'lodash';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingXrefByVenueXids: false,\n\trecentEtfs: [],\n\tdata: {},\n\tbyLegacyCompany: {},\n\tsymbolInContext: {},\n\tunderlayingData: {},\n\tfetchingSymbolInContext: false,\n\tfetchingXidsByCompanyID: false,\n\tcompanyXids: []\n};\n\nconst requestXrefByVenueXids = (state, action) => {\n\tconst currentXids = Object.keys(state.data);\n\tconst filterXids = action.newXids.filter(xid => currentXids.indexOf(`${xid}`) === -1);\n\n\tif (filterXids.length === 0) {\n\t\taction.abort = true;\n\t} else {\n\t\taction.params.venueXids = filterXids.join(',');\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingXrefByVenueXids: true\n\t});\n};\n\nconst receiveXrefByVenueXids = (state, action) => {\n\tconst newXrefData = {};\n\tconst byLegacyCompanyMap = {};\n\tif (action.response.data && action.response.data.items) {\n\t\tconst { items } = action.response.data;\n\n\t\titems.forEach(xrefResult => {\n\t\t\tif (!xrefResult.error) {\n\t\t\t\tconst { xids } = xrefResult || {};\n\t\t\t\tconst { venue, legacyCompany } = xids || {};\n\t\t\t\tnewXrefData[venue] = xrefResult;\n\t\t\t\tbyLegacyCompanyMap[legacyCompany] = xrefResult;\n\t\t\t}\n\t\t});\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingXrefByVenueXids: false,\n\t\tdata: { ...state.data, ...newXrefData },\n\t\tbyLegacyCompany: { ...state.byLegacyCompany, ...byLegacyCompanyMap }\n\t});\n};\n\nconst receiveSymbolInContext = (state, action) => {\n\tconst { response } = action;\n\tconst { data } = response || {};\n\tconst { items } = data || {};\n\tconst previousEtfsList = state.recentEtfs;\n\tconst foundSymbols = [];\n\tlet newEtfsList = [];\n\n\tif (items && items.length > 0) {\n\t\titems.forEach(symbol => {\n\t\t\tif (!symbol.error) {\n\t\t\t\tfoundSymbols.push(symbol);\n\t\t\t}\n\t\t});\n\t}\n\tconst addSymbol = {};\n\tconst addCompany = {};\n\tconst hasSymbols = foundSymbols.length > 0;\n\n\tif (hasSymbols) {\n\t\tconst symbol = foundSymbols[0];\n\t\tconst { classification, xids } = symbol || {};\n\t\tconst { venue, legacyCompany } = xids || {};\n\t\tconst { id } = classification || {};\n\n\t\tif (venue) {\n\t\t\taddSymbol[venue] = symbol;\n\t\t}\n\n\t\tif (legacyCompany) {\n\t\t\taddCompany[legacyCompany] = symbol;\n\t\t}\n\n\t\tconst prevousIndex = lodash.findLastIndex(previousEtfsList, x => {\n\t\t\treturn x.xids.venue === symbol.xids.venue;\n\t\t});\n\n\t\tif (id === 18) {\n\t\t\t// adding the etf type\n\t\t\tnewEtfsList.push(symbol);\n\t\t}\n\n\t\tif (prevousIndex > -1) {\n\t\t\t// was in the list already so remove it\n\t\t\tpreviousEtfsList.splice(prevousIndex, 1);\n\t\t}\n\n\t\tnewEtfsList = newEtfsList.concat(previousEtfsList);\n\t\t// limit the list to 5 but the first(most recent) is always hidden\n\t\tif (newEtfsList.length >= 6) {\n\t\t\tnewEtfsList = newEtfsList.slice(0, 6);\n\t\t}\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingSymbolInContext: false,\n\t\trecentEtfs: Object.assign([], newEtfsList),\n\t\tsymbolInContext: hasSymbols ? foundSymbols[0] : false,\n\t\tdata: { ...state.data, ...addSymbol },\n\t\tbyLegacyCompany: { ...state.byLegacyCompany, ...addCompany }\n\t});\n};\n\nconst requestExchanges = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingSymbolInContext: true\n\t});\n};\n\nconst requestSymbolInContext = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingSymbolInContext: true\n\t});\n};\n\nconst requestXidsByWsodCompany = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingXidsByCompanyID: true,\n\t\tcompanyXids: []\n\t});\n};\n\nconst receiveXidsByWsodCompany = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingXidsByCompanyID: false,\n\t\tcompanyXids: action.response.data\n\t});\n};\n\nconst requestUnderlayingXrefByVenueXids = (state, action) => {\n\tconst currentXids = Object.keys(state.underlayingData);\n\tconst filterXids = action.newXids.filter(xid => currentXids.indexOf(`${xid}`) === -1);\n\n\tif (filterXids.length === 0) {\n\t\taction.abort = true;\n\t} else {\n\t\taction.params.xids = filterXids.join(',');\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingUnderlayingXrefByVenueXids: true\n\t});\n};\n\nconst receiveUnderlayingXrefByVenueXids = (state, action) => {\n\tconst underlayingData = {};\n\tconst { response } = action || {};\n\tconst { data } = response || {};\n\n\tif (data && data.length) {\n\t\tdata.forEach(xref => {\n\t\t\tunderlayingData[xref.xid] = xref;\n\t\t});\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingUnderlayingXrefByVenueXids: false,\n\t\tunderlayingData: { ...state.underlayingData, ...underlayingData }\n\t});\n};\n\nconst setSymbolInContext = (state, action) => {\n\tconst { xref } = action;\n\tconst { xids } = xref || {};\n\tconst { venue, legacyCompany } = xids || {};\n\tconst addCompany = {};\n\n\tif (legacyCompany) {\n\t\taddCompany[legacyCompany] = xref;\n\t}\n\n\treturn {\n\t\t...state,\n\t\tsymbolInContext: xref,\n\t\tdata: { ...state.data, ...{ [venue]: xref } },\n\t\tbyLegacyCompany: { ...state.byLegacyCompany, ...addCompany }\n\t};\n};\n\nconst setSymbolByXid = (state, action) => {\n\tconst { xref } = action;\n\tconst { xids } = xref || {};\n\tconst { venue, legacyCompany } = xids || {};\n\tconst newXrefData = {\n\t\t[venue]: xref\n\t};\n\tconst addCompany = {};\n\n\tif (legacyCompany) {\n\t\taddCompany[legacyCompany] = xref;\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingXrefByVenueXids: false,\n\t\tdata: { ...state.data, ...newXrefData },\n\t\tbyLegacyCompany: { ...state.byLegacyCompany, ...addCompany }\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_REQUEST_XREF_BY_VENUE_XIDS]: requestXrefByVenueXids,\n\t[Types.API_RECEIVE_XREF_BY_VENUE_XIDS]: receiveXrefByVenueXids,\n\t[Types.API_RECEIVE_SYMBOL_IN_CONTEXT]: receiveSymbolInContext,\n\t[Types.API_REQUEST_SYMBOL_IN_CONTEXT]: requestSymbolInContext,\n\t[Types.API_REQUEST_EXCHANGES]: requestExchanges,\n\t[Types.API_HANDLE_XREF_BY_VENUE_XIDS_LOADER]: handleLoader,\n\t[Types.API_CIBC_RECEIVE_XIDS_BY_COMPANYID]: receiveXidsByWsodCompany,\n\t[Types.API_CIBC_REQUEST_XIDS_BY_COMPANYID]: requestXidsByWsodCompany,\n\t[Types.SET_SYMBOL_IN_CONTEXT]: setSymbolInContext,\n\t[Types.API_CIBC_REQUEST_UNDERLAYING_BY_XIDS]: requestUnderlayingXrefByVenueXids,\n\t[Types.API_CIBC_RECEIVE_UNDERLAYING_BY_XIDS]: receiveUnderlayingXrefByVenueXids,\n\t[Types.SET_SYMBOL_BY_XID]: setSymbolByXid,\n\t[Types.API_CIBC_HANDLE_XIDS_BY_COMPANYID_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingOptionData: false,\n\tfetchingStrategyChart: false,\n\tstrategyChart: {},\n\texpDateData: {},\n\toptionChainData: {},\n\tquoteList: [],\n\tstrikeCount: 20,\n\tviewStrikeCounts: [\n\t\t20,\n\t\t40,\n\t\t80,\n\t\t160,\n\t\t'all'\n\t],\n\tselectedOptionsList: []\n};\n\nconst requestSetStrikeCount = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tstrikeCount: action.strikeCount\n\t});\n};\n\nconst receiveOptionChain = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingOptionData: false,\n\t\toptionChainData: action.response.data,\n\t\toptionChainByStrikeData: {}\n\t});\n};\n\nconst receiveOptionChainByStrike = (state, action) => {\n\tconst optionsByStrike = {};\n\tconst { underlyingQuote } = action.response.data;\n\tif (action.response.data && action.response.data.items) {\n\t\tconst { items } = action.response.data;\n\n\t\titems.forEach(item => {\n\t\t\tconst { expirationDate, options } = item;\n\n\t\t\toptions.forEach(option => {\n\t\t\t\tconst { strikePrice } = option;\n\n\t\t\t\tif (optionsByStrike[strikePrice]) {\n\t\t\t\t\toptionsByStrike[strikePrice].push({\n\t\t\t\t\t\texpirationDate, ...option\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\toptionsByStrike[strikePrice] = [{\n\t\t\t\t\t\texpirationDate, ...option\n\t\t\t\t\t}];\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tconst orderedByStrikePrice = optionsByStrike;\n\n\treturn Object.assign({}, state, {\n\t\tfetchingOptionData: false,\n\t\toptionChainData: {},\n\t\toptionChainByStrikeData: {\n\t\t\torderedByStrikePrice,\n\t\t\tunderlyingQuote\n\t\t}\n\t});\n};\n\nconst requestOptionChain = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingOptionData: true,\n\t\tstrikeCount: action.strikeCount\n\t});\n};\n\nconst requestExpirationDates = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingExpData: true,\n\t\texpDateData: Object.assign({}, {})\n\t});\n};\n\nconst receiveExpirationDates = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingExpData: false,\n\t\texpDateData: action.response.data\n\t});\n};\n\nconst addOptionToQuoteList = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tquoteList: Object.assign([], state.quoteList, [action.option])\n\t});\n};\n\nconst requestStrategyChart = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingStrategyChart: true,\n\t\tstrategyChart: Object.assign({}, {})\n\t});\n};\n\nconst receiveStrategyChart = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tstrategyChart: Object.assign({}, state.strategyChart, action.response.data)\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\nconst addToSelectedOptionsList = (state, action) => {\n\tconst { selectedOptionsList } = state;\n\tconst { data } = action;\n\treturn Object.assign({}, state, {\n\t\tselectedOptionsList: [...selectedOptionsList, data]\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_REQUEST_OPTION_CHAIN]: requestOptionChain,\n\t[Types.API_REQUEST_OPTION_CHAIN_WITH_QUOTES]: requestOptionChain,\n\t[Types.API_REQUEST_OPTION_EXPIRATION_DATES]: requestExpirationDates,\n\t[Types.API_RECEIVE_OPTION_EXPIRATION_DATES]: receiveExpirationDates,\n\t[Types.API_RECEIVE_OPTION_CHAIN]: receiveOptionChain,\n\t[Types.API_RECEIVE_OPTION_CHAIN_BY_STRIKE]: receiveOptionChainByStrike,\n\t[Types.ADD_OPTION_TO_QUOTE_LIST]: addOptionToQuoteList,\n\t[Types.API_CIBC_REQUEST_STRATEGY_CHART]: requestStrategyChart,\n\t[Types.API_CIBC_RECEIVE_STRATEGY_CHART]: receiveStrategyChart,\n\t[Types.SET_OPTION_CHAIN_STRIKE_COUNT]: requestSetStrikeCount,\n\t[Types.API_HANDLE_OPTION_LOADER]: handleLoader,\n\t[Types.ADD_SELECTED_OPTION]: addToSelectedOptionsList\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport lodash from 'lodash';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tquoteList: {},\n\ttotalOptions: 0,\n\tshowError: false\n};\n\nconst addOptionToQuoteList = (state, action) => {\n\tconst {\n\t\toptionObject\n\t} = action;\n\n\tconst byUnderlyingXid = state.quoteList;\n\n\tlet totalOptions = 0;\n\tObject.keys(byUnderlyingXid).forEach(key => {\n\t\tconst list = byUnderlyingXid[key];\n\t\tif (list.length) {\n\t\t\ttotalOptions += list.length;\n\t\t}\n\t});\n\n\tif (totalOptions === 20) {\n\t\tconsole.log('just returning the state');\n\t\treturn Object.assign({}, state, { totalOptions, showError: true });\n\t}\n\n\tif (byUnderlyingXid[optionObject.underlyingXid]) {\n\t\tconst existingIndex = lodash.findLastIndex(byUnderlyingXid[optionObject.underlyingXid],\n\t\t\to => { return o.xid === optionObject.xid; });\n\t\tif (existingIndex === -1) {\n\t\t\tbyUnderlyingXid[optionObject.underlyingXid].push(optionObject);\n\t\t}\n\t} else {\n\t\tbyUnderlyingXid[optionObject.underlyingXid] = [optionObject];\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tquoteList: Object.assign({}, byUnderlyingXid),\n\t\ttotalOptions,\n\t\tshowError: false\n\t});\n};\n\nconst removeOptionsFromQuoteList = (state, action) => {\n\tconst { xids } = action;\n\tconst newList = state.quoteList;\n\n\txids.forEach(xid => {\n\t\tif (newList[xid]) {\n\t\t\tdelete newList[xid];\n\t\t}\n\n\t\tObject.keys(newList).forEach(underlyingXid => {\n\t\t\tconst options = newList[underlyingXid];\n\t\t\tconst index = lodash.findLastIndex(options, o => o.xid === xid);\n\n\t\t\tif (index > -1) {\n\t\t\t\toptions.splice(index, 1);\n\t\t\t}\n\n\t\t\tif (options.length === 0) {\n\t\t\t\tdelete newList[underlyingXid];\n\t\t\t} else {\n\t\t\t\tnewList[underlyingXid] = options;\n\t\t\t}\n\t\t});\n\t});\n\n\treturn Object.assign({}, state, {\n\t\tquoteList: Object.assign({}, newList),\n\t\tshowError: false\n\t});\n};\n\nconst clearOptionsQuoteList = state => {\n\treturn Object.assign({}, state, {\n\t\tquoteList: Object.assign({}, {}),\n\t\tshowError: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.ADD_OPTION_TO_QUOTE_LIST]: addOptionToQuoteList,\n\t[Types.REMOVE_OPTIONS_FROM_QUOTE_LIST]: removeOptionsFromQuoteList,\n\t[Types.CLEAR_OPTIONS_QUOTELIST]: clearOptionsQuoteList\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable no-use-before-define */\n/* eslint-disable no-undef */\n/* eslint-disable no-param-reassign */\n/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport lodash from 'lodash';\nimport Types from '../Actions/Types';\nimport { holdingsGroups } from '../Actions/watchlistActions';\n\nexport const INITIAL_STATE = {\n\tlimits: {\n\t\tlists: 21,\n\t\tholdings: 20\n\t},\n\tfetchingWatchlist: false,\n\tfetchingWatchlistNames: false,\n\twatchlist: {},\n\twatchlists: [],\n\tcurrentCurrency: 'CAD',\n\tactiveWatchlistId: null,\n\tactiveWatchlistTab: null,\n\tholdingsByIssueType: {},\n\tfetchingWatchlistQuoteData: false,\n\tfetchingUpdateTransaction: false,\n\tfetchingCreateNewWatchlist: false,\n\tfetchingDeleteHoldings: false,\n\tfetchingDeleteWatchlist: false,\n\thasUserLists: false,\n\tmaxListsReached: false,\n\tmaxHoldingsReached: false\n};\n\nconst requestWatchlistNames = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingWatchlistNames: true\n\t});\n};\n\nconst receiveWatchlistNames = (state, action) => {\n\tconst watchlists = action.response.data;\n\tif (watchlists && watchlists.length > 1) {\n\t\tlet recentIndex = -1;\n\t\tconst { length } = watchlists;\n\t\tfor (let i = 0; i < length; i += 1) {\n\t\t\tif (watchlists[i].name === '__RECENT__') {\n\t\t\t\trecentIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (recentIndex > 0) {\n\t\t\tconst recentWatchlist = watchlists[recentIndex];\n\t\t\tfor (let i = recentIndex; i > 0; i -= 1) {\n\t\t\t\twatchlists[i] = watchlists[i - 1];\n\t\t\t}\n\t\t\twatchlists[0] = recentWatchlist;\n\t\t}\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingWatchlistNames: false,\n\t\twatchlists: Object.assign([], watchlists),\n\t\tmaxListsReached: action.response.data\n\t\t\t&& action.response.data.length\n\t\t\t&& action.response.data.length >= state.limits.lists\n\t});\n};\n\nconst requestWatchlist = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingWatchlist: true,\n\t\tcurrentCurrency: action.params.currency,\n\t\tactiveWatchlistId: action.activeWatchlistId,\n\t\tactiveWatchlistTab: action.activeWatchlistTab\n\t});\n};\n\nconst receiveWatchlist = (state, action) => {\n\tconst mappedByIssueType = {\n\t\tetfs: [],\n\t\tmutualFunds: [],\n\t\toptions: [],\n\t\tstocks: []\n\t};\n\n\tif (action.response && action.response.data && action.response.data.holdings) {\n\t\tconst { holdings } = action.response.data;\n\t\tholdings.forEach(holding => {\n\t\t\tlet { issueType } = holding;\n\t\t\tif (issueType) {\n\t\t\t\tissueType = issueType.toLowerCase();\n\t\t\t} else {\n\t\t\t\tissueType = null;\n\t\t\t}\n\n\t\t\tswitch (issueType) {\n\t\t\t\tcase 'etf':\n\t\t\t\tcase 'etn':\n\t\t\t\t\tmappedByIssueType.etfs.push(holding);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'mf':\n\t\t\t\tcase 'mmf':\n\t\t\t\t\tmappedByIssueType.mutualFunds.push(holding);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'op':\n\t\t\t\t\tmappedByIssueType.options.push(holding);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tmappedByIssueType.stocks.push(holding);\n\t\t\t}\n\t\t});\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingWatchlist: false,\n\t\twatchlist: Object.assign({}, action.response.data),\n\t\tmaxHoldingsReached: action.response.data\n\t\t\t&& action.response.data.holdings\n\t\t\t&& action.response.data.holdings.length\n\t\t\t&& action.response.data.holdings.length >= state.limits.holdings,\n\t\tholdingsByIssueType: Object.assign({}, mappedByIssueType)\n\t});\n};\n\nconst requestWatchlistQuotes = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingWatchlistQuoteData: true\n\t});\n};\n\nconst receiveWatchlistQuotes = (state, action) => {\n\tconst {\n\t\toptions,\n\t\tetfs,\n\t\t// mutualFunds,\n\t\tstocks\n\t} = state.holdingsByIssueType;\n\tconst quotesData = action.response.data;\n\tlet newEtfs = etfs;\n\t// let newMutualFunds = mutualFunds;\n\tlet newOptions = options;\n\tlet newStocks = stocks;\n\tconst byXid = {};\n\n\tif (quotesData && quotesData.quotes && quotesData.quotes.length > 0) {\n\t\tquotesData.quotes.forEach(quote => {\n\t\t\tconst { data, error } = quote || {};\n\t\t\tif (data && data.lastTrade && data.lastTrade.open === 0) {\n\t\t\t\tdata.lastTrade.open = null;\n\t\t\t}\n\t\t\tif (!error) {\n\t\t\t\tbyXid[data.venueXid] = data;\n\t\t\t}\n\t\t});\n\t}\n\n\tif (options && options.length) {\n\t\tnewOptions = options.map(option => {\n\t\t\tconst quote = byXid[option.xid];\n\n\t\t\tif (quote) {\n\t\t\t\toption.strikePrice = quote.strikePrice;\n\t\t\t\toption.currency = quote.currency.isoCode;\n\t\t\t\toption.putCall = quote.putCall;\n\t\t\t\toption.lastPrice = quote.lastTrade.last;\n\t\t\t\toption.lastDate = quote.lastTrade.date;\n\t\t\t\toption.priceChange = quote.lastTrade.change;\n\t\t\t\toption.percentChange = quote.changePercent.today;\n\t\t\t\toption.bid = quote.bid.price;\n\t\t\t\toption.bidSize = quote.bid.size;\n\t\t\t\toption.ask = quote.ask.price;\n\t\t\t\toption.askSize = quote.ask.size;\n\t\t\t\toption.volume = quote.volume.last;\n\t\t\t\toption.high = quote.lastTrade.high;\n\t\t\t\toption.low = quote.lastTrade.low;\n\t\t\t\toption.open = quote.lastTrade.open === 0 ? null : quote.lastTrade.open;\n\t\t\t\toption.price52WeekHigh = quote.price52Week.high;\n\t\t\t\toption.price52WeekLow = quote.price52Week.low;\n\t\t\t\toption.isRealTime = quote.realTimeQuoteIndicator;\n\t\t\t\toption.expirationDate = quote.expirationDate;\n\t\t\t}\n\t\t\treturn option;\n\t\t});\n\t}\n\n\tif (etfs && etfs.length) {\n\t\tnewEtfs = etfs.map(etf => {\n\t\t\tconst quote = byXid[etf.xid];\n\t\t\tif (quote) {\n\t\t\t\tetf.strikePrice = quote.strikePrice;\n\t\t\t\tetf.currency = quote.currency.isoCode;\n\t\t\t\tetf.putCall = quote.putCall;\n\t\t\t\tetf.lastPrice = quote.lastTrade.last;\n\t\t\t\tetf.lastDate = quote.lastTrade.date;\n\t\t\t\tetf.priceChange = quote.lastTrade.change;\n\t\t\t\tetf.percentChange = quote.changePercent.today;\n\t\t\t\tetf.bid = quote.bid.price;\n\t\t\t\tetf.bidSize = quote.bid.size;\n\t\t\t\tetf.ask = quote.ask.price;\n\t\t\t\tetf.askSize = quote.ask.size;\n\t\t\t\tetf.volume = quote.volume.last;\n\t\t\t\tetf.high = quote.lastTrade.high;\n\t\t\t\tetf.low = quote.lastTrade.low;\n\t\t\t\tetf.open = quote.lastTrade.open === 0 ? null : quote.lastTrade.open;\n\t\t\t\tetf.price52WeekHigh = quote.price52Week.high;\n\t\t\t\tetf.price52WeekLow = quote.price52Week.low;\n\t\t\t\tetf.isRealTime = quote.realTimeQuoteIndicator;\n\t\t\t\tetf.financialStatusIndicator = quote.financialStatusIndicator;\n\t\t\t}\n\t\t\treturn etf;\n\t\t});\n\t}\n\n\tif (stocks && stocks.length) {\n\t\tnewStocks = stocks.map(stock => {\n\t\t\tconst quote = byXid[stock.xid];\n\n\t\t\tif (quote) {\n\t\t\t\tstock.strikePrice = quote.strikePrice;\n\t\t\t\tstock.currency = quote.currency.isoCode;\n\t\t\t\tstock.exchange = quote.currency.isoCode === 'CAD' ? 'CA' : 'US';\n\t\t\t\tstock.putCall = quote.putCall;\n\t\t\t\tstock.lastPrice = quote.lastTrade.last;\n\t\t\t\tstock.lastDate = quote.lastTrade.date;\n\t\t\t\tstock.priceChange = quote.lastTrade.change;\n\t\t\t\tstock.percentChange = quote.changePercent.today;\n\t\t\t\tstock.bid = quote.bid.price;\n\t\t\t\tstock.bidSize = quote.bid.size;\n\t\t\t\tstock.ask = quote.ask.price;\n\t\t\t\tstock.askSize = quote.ask.size;\n\t\t\t\tstock.volume = quote.volume.last;\n\t\t\t\tstock.high = quote.lastTrade.high;\n\t\t\t\tstock.low = quote.lastTrade.low;\n\t\t\t\tstock.open = quote.lastTrade.open === 0 ? null : quote.lastTrade.open;\n\t\t\t\tstock.price52WeekHigh = quote.price52Week.high;\n\t\t\t\tstock.price52WeekLow = quote.price52Week.low;\n\t\t\t\tstock.isRealTime = quote.realTimeQuoteIndicator;\n\t\t\t\tstock.financialStatusIndicator = quote.financialStatusIndicator;\n\t\t\t}\n\t\t\treturn stock;\n\t\t});\n\t}\n\n\t// NEED TO GET THE MUTUAL FUND QOUTE DATA\n\n\treturn Object.assign({}, state, {\n\t\tfetchingWatchlist: false,\n\t\tholdingsByIssueType: Object.assign({}, state.holdingsByIssueType, {\n\t\t\tetfs: [...newEtfs],\n\t\t\t// mutualFunds: { ...newMutualFunds },\n\t\t\toptions: [...newOptions],\n\t\t\tstocks: [...newStocks]\n\t\t})\n\t});\n};\n\nconst sortHoldingsGroup = (state, action) => {\n\tconst { holdingsByIssueType } = state;\n\tconst { field, direction } = action;\n\tlet sortDirection = direction;\n\n\tlet groupSortDirection = direction;\n\tlet groupSortField = null;\n\tlet sortData = null;\n\tlet fieldName = null;\n\tlet directionName = null;\n\tswitch (action.holdingGroup) {\n\t\tcase holdingsGroups.ETFS:\n\t\t\t{\n\t\t\t\tconst { etfsSortDirection, etfsSortField } = state;\n\t\t\t\tconst { etfs } = holdingsByIssueType;\n\n\t\t\t\tgroupSortDirection = etfsSortDirection;\n\t\t\t\tgroupSortField = etfsSortField;\n\t\t\t\tsortData = etfs;\n\t\t\t\tfieldName = 'etfsSortField';\n\t\t\t\tdirectionName = 'etfsSortDirection';\n\t\t\t} break;\n\t\tcase holdingsGroups.MUTUALFUNDS:\n\t\t\t{\n\t\t\t\tconst { mutualFundsSortDirection, mutualFundsSortField } = state;\n\t\t\t\tconst { mutualFunds } = holdingsByIssueType;\n\n\t\t\t\tgroupSortDirection = mutualFundsSortDirection;\n\t\t\t\tgroupSortField = mutualFundsSortField;\n\t\t\t\tsortData = mutualFunds;\n\t\t\t\tfieldName = 'mutualFundsSortField';\n\t\t\t\tdirectionName = 'mutualFundsSortDirection';\n\t\t\t} break;\n\t\tcase holdingsGroups.OPTIONS:\n\t\t\t{\n\t\t\t\tconst { optionsSortDirection, optionsSortField } = state;\n\t\t\t\tconst { options } = holdingsByIssueType;\n\n\t\t\t\tgroupSortDirection = optionsSortDirection;\n\t\t\t\tgroupSortField = optionsSortField;\n\t\t\t\tsortData = options;\n\t\t\t\tfieldName = 'optionsSortField';\n\t\t\t\tdirectionName = 'optionsSortDirection';\n\t\t\t} break;\n\t\tcase holdingsGroups.STOCKS:\n\t\t\t{\n\t\t\t\tconst { stocksAndIndicesSortDirection, stocksAndIndicesSortField } = state;\n\t\t\t\tconst { stocks } = holdingsByIssueType;\n\n\t\t\t\tgroupSortDirection = stocksAndIndicesSortDirection;\n\t\t\t\tgroupSortField = stocksAndIndicesSortField;\n\t\t\t\tsortData = stocks;\n\t\t\t\tfieldName = 'stocksAndIndicesSortField';\n\t\t\t\tdirectionName = 'stocksAndIndicesSortDirection';\n\t\t\t} break;\n\t\tdefault:\n\t\t\t// NOTE(rick): Intentionally left empty\n\t\t\tbreak;\n\t}\n\n\tif (sortData) {\n\t\tif ((groupSortDirection && groupSortField === field)\n\t\t\t|| (groupSortDirection === direction && groupSortField === field)) {\n\t\t\tsortDirection = groupSortDirection === 'asc' ? 'desc' : 'asc';\n\t\t}\n\n\t\tconst dataToSortByField = [];\n\t\tconst dataToSortBySymbol = [];\n\t\tsortData.forEach(item => {\n\t\t\tif ((item.active === true) && (item[field] === undefined)) {\n\t\t\t\tdataToSortBySymbol.push(item);\n\t\t\t} else {\n\t\t\t\tdataToSortByField.push(item);\n\t\t\t}\n\t\t});\n\n\t\tconst dataSortedByField = lodash.orderBy(dataToSortByField, field, [sortDirection]);\n\t\tconst dataSortedBySymbol = lodash.orderBy(dataToSortBySymbol, 'symbol', ['asc']);\n\t\tconst newData = [...dataSortedByField, ...dataSortedBySymbol];\n\t\tconst newHoldingsByIssueType = {};\n\t\tnewHoldingsByIssueType[action.holdingGroup] = [...newData];\n\n\t\tconst newStateObject = {};\n\t\tnewStateObject[fieldName] = field;\n\t\tnewStateObject[directionName] = sortDirection;\n\t\tnewStateObject.holdingsByIssueType = Object.assign({},\n\t\t\tstate.holdingsByIssueType, newHoldingsByIssueType);\n\n\t\treturn Object.assign({}, state, newStateObject);\n\t}\n\n\treturn state;\n};\n\nconst setWatchlistTableSortIndicators = (state, action) => {\n\tconst { field, direction } = action;\n\tlet fieldName = null;\n\tlet directionName = null;\n\tswitch (action.holdingGroup) {\n\t\tcase holdingsGroups.ETFS:\n\t\t\tfieldName = 'etfsSortField';\n\t\t\tdirectionName = 'etfsSortDirection';\n\t\t\tbreak;\n\t\tcase holdingsGroups.OPTIONS:\n\t\t\tfieldName = 'optionsSortField';\n\t\t\tdirectionName = 'optionsSortDirection';\n\t\t\tbreak;\n\t\tcase holdingsGroups.STOCKS:\n\t\t\tfieldName = 'stocksAndIndicesSortField';\n\t\t\tdirectionName = 'stocksAndIndicesSortDirection';\n\t\t\tbreak;\n\t\tcase holdingsGroups.MUTUALFUNDS:\n\t\t\tfieldName = 'mutualFundsSortField';\n\t\t\tdirectionName = 'mutualFundsSortDirection';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\t// NOTE(rick): Intentionally left empty\n\t\t\tbreak;\n\t}\n\n\tif (fieldName && directionName) {\n\t\tconst newStateObject = {};\n\t\tnewStateObject[fieldName] = field;\n\t\tnewStateObject[directionName] = direction;\n\n\t\treturn Object.assign({}, state, newStateObject);\n\t}\n\n\treturn state;\n};\n\nconst requestUpdateTransaction = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingWatchlist: false,\n\t\tfetchingUpdateTransaction: true\n\t});\n};\n\nconst receiveUpdateTransaction = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingWatchlist: false,\n\t\tfetchingUpdateTransaction: false\n\t});\n};\n\nconst requestCreateNewWatchlist = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingCreateNewWatchlist: true\n\t});\n};\n\nconst receiveCreateNewWatchlist = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingCreateNewWatchlist: true,\n\t\tfetchingWatchlist: false,\n\t\twatchlists: Object.assign([], action.response.data),\n\t\tactiveWatchlistId: action.portfolioId\n\t});\n};\n\nconst requestAddHoldings = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingWatchlist: false,\n\t\tfetchingAddHoldings: true\n\t});\n};\n\nconst receiveAddHoldings = state => {\n\tconst {\n\t\tfetchingDeleteHoldings,\n\t\tfetchingRenameWatchlist\n\t} = state;\n\n\tif (!fetchingDeleteHoldings && !fetchingRenameWatchlist) {\n\t\tnavigateToWatchlist();\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingAddHoldings: false\n\t});\n};\n\nconst requestDeleteHoldings = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingDeleteHoldings: true\n\t});\n};\n\nconst receiveDeleteHoldings = state => {\n\tconst {\n\t\tfetchingAddHoldings,\n\t\tfetchingRenameWatchlist\n\t} = state;\n\n\tif (!fetchingAddHoldings && !fetchingRenameWatchlist) {\n\t\tnavigateToWatchlist();\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingDeleteHoldings: false\n\t});\n};\n\nconst requestRenameWatchlist = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingRenameWatchlist: true,\n\t\trenameWatchlistError: false\n\t});\n};\n\nconst receiveRenameWatchlist = state => {\n\tconst {\n\t\tfetchingAddHoldings,\n\t\tfetchingDeleteHoldings\n\t} = state;\n\n\tif (!fetchingAddHoldings && !fetchingDeleteHoldings) {\n\t\tnavigateToWatchlist();\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingRenameWatchlist: false,\n\t\trenameWatchlistError: false\n\t});\n};\n\nconst setRenameWatchlistError = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingRenameWatchlist: false,\n\t\trenameWatchlistError: action.value\n\t});\n};\n\nconst requestDeleteWatchlist = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingDeleteWatchlist: true\n\t});\n};\n\nconst receiveDeleteWatchlist = state => {\n\tlet newId = null;\n\tif (state.watchlists && state.watchlists.length > 0) {\n\t\tconst foundDefaultIndex = lodash.findLastIndex(state.watchlists,\n\t\t\to => { return o.defaultPortfolio === true; });\n\n\t\tif (foundDefaultIndex !== -1\n\t\t\t&& state.watchlists[foundDefaultIndex].portfolioId !== state.activeWatchlistId) {\n\t\t\tnewId = state.watchlists[foundDefaultIndex].portfolioId;\n\t\t} else {\n\t\t\tnewId = state.watchlists[0].portfolioId;\n\t\t}\n\t}\n\twindow.setTimeout(() => {\n\t\tnavigateToWatchlist();\n\t}, 500);\n\treturn Object.assign({}, state, {\n\t\tactiveWatchlistId: newId,\n\t\tfetchingDeleteWatchlist: false\n\t});\n};\n\nconst navigateToWatchlist = () => {\n\tconst { location } = window;\n\tconst { pathname } = location || {};\n\n\tif (pathname !== '/quotelists/watchlist') {\n\t\twindow.location.href = '/quotelists/watchlist';\n\t}\n};\n\nconst receiveAddToRecentQuotes = (state, action) => {\n\tconst mostRecentXid = lodash.get(action, ['response', 'data', 'holdings', '0', 'xid']);\n\treturn Object.assign({}, state, {\n\t\tfetchingAddToRecentQuotes: false,\n\t\tmostRecentRecentQuoteXid: mostRecentXid\n\t});\n};\n\nconst requestAddToRecentQuotes = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingAddToRecentQuotes: true\n\t});\n};\n\nconst setActiveWatchilistId = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tactiveWatchlistId: action.activeWatchlistId\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_CIBC_REQUEST_WATCHLIST_NAMES]: requestWatchlistNames,\n\t[Types.API_CIBC_RECEIVE_WATCHLIST_NAMES]: receiveWatchlistNames,\n\t[Types.API_CIBC_REQUEST_WATCHLIST]: requestWatchlist,\n\t[Types.API_CIBC_RECEIVE_WATCHLIST]: receiveWatchlist,\n\t[Types.API_REQUEST_WATCHLIST_QUOTE]: requestWatchlistQuotes,\n\t[Types.API_RECEIVE_WATCHLIST_QUOTE]: receiveWatchlistQuotes,\n\t[Types.API_CIBC_REQUEST_WATCHLIST_UPDATE_TRANSACTION]: requestUpdateTransaction,\n\t[Types.API_CIBC_RECEIVE_WATCHLIST_UPDATE_TRANSACTION]: receiveUpdateTransaction,\n\t[Types.API_CIBC_REQUEST_WATCHLIST_CREATE_WATCHLIST]: requestCreateNewWatchlist,\n\t[Types.API_CIBC_RECEIVE_WATCHLIST_CREATE_WATCHLIST]: receiveCreateNewWatchlist,\n\t[Types.API_CIBC_REQUEST_WATCHLIST_ADD_HOLDINGS]: requestAddHoldings,\n\t[Types.API_CIBC_RECEIVE_WATCHLIST_ADD_HOLDINGS]: receiveAddHoldings,\n\t[Types.API_CIBC_RECEIVE_WATCHLIST_DELETE_HOLDINGS]: receiveDeleteHoldings,\n\t[Types.API_CIBC_REQUEST_WATCHLIST_DELETE_HOLDINGS]: requestDeleteHoldings,\n\t[Types.API_CIBC_RECEIVE_WATCHLIST_RENAME]: receiveRenameWatchlist,\n\t[Types.API_CIBC_SET_WATCHLIST_RENAME_ERROR]: setRenameWatchlistError,\n\t[Types.API_CIBC_REQUEST_WATCHLIST_RENAME]: requestRenameWatchlist,\n\t[Types.API_CIBC_RECEIVE_WATCHLIST_DELETE]: receiveDeleteWatchlist,\n\t[Types.API_CIBC_REQUEST_WATCHLIST_DELETE]: requestDeleteWatchlist,\n\t[Types.SORT_WATCHLIST]: sortHoldingsGroup,\n\t[Types.API_HANDLE_WATCHLIST_LOADER]: handleLoader,\n\t[Types.SORT_WATCHLIST_SETINDICATORS]: setWatchlistTableSortIndicators,\n\t[Types.API_CIBC_RECEIVE_ADD_TO_RECENT_QUOTES]: receiveAddToRecentQuotes,\n\t[Types.API_CIBC_REQUEST_ADD_TO_RECENT_QUOTES]: requestAddToRecentQuotes,\n\t[Types.SET_ACTIVE_WATCHLIST_ID]: setActiveWatchilistId\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable no-use-before-define */\n/* eslint-disable no-undef */\n/* eslint-disable no-param-reassign */\n/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport lodash from 'lodash';\nimport Types from '../Actions/Types';\nimport { holdingsGroups } from '../Actions/QuotelistActions';\n\nexport const INITIAL_STATE = {\n\tquotelistByIssueType: {\n\t\tstocksETFsIndices: [],\n\t\tmutualFunds: [],\n\t\toptions: []\n\t},\n\tstocksETFsIndicesSortDirection: 'asc',\n\tstocksETFsIndicesSortField: 'symbol',\n\tmutualFundsSortDirection: 'asc',\n\tmutualFundsSortField: 'symbol'\n};\n\nconst requestQuotelistFundBasics = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingQuotelistFundBasicsData: true\n\t});\n};\n\nconst receiveQuotelistFundBasics = (state, action) => {\n\t// eslint-disable-next-line prefer-destructuring\n\tconst currentMutualFunds = state.quotelistByIssueType.mutualFunds;\n\n\tconst fundBasicsData = action.response.data;\n\tconst { error } = action.response;\n\n\tif (!error && fundBasicsData) {\n\t\tconst fundBasicsDataXid = action.xid;\n\t\tconst newMutualFunds = [];\n\t\tcurrentMutualFunds.forEach(symbol => {\n\t\t\tconst xid = symbol.xids.venue;\n\n\t\t\tif (fundBasicsDataXid === xid) {\n\t\t\t\tconst mergedData = lodash.merge(symbol, fundBasicsData);\n\t\t\t\tnewMutualFunds.push(mergedData);\n\t\t\t} else {\n\t\t\t\tnewMutualFunds.push(symbol);\n\t\t\t}\n\t\t});\n\t\treturn Object.assign({}, state, {\n\t\t\tquotelistByIssueType: Object.assign({}, state.quotelistByIssueType, {\n\t\t\t\tmutualFunds: newMutualFunds\n\t\t\t})\n\t\t});\n\t}\n\n\treturn state;\n};\n\nconst requestQuotelistQuotes = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingQuotelistQuoteData: true\n\t});\n};\n\nconst receiveQuotelistQuotes = (state, action) => {\n\tconst {\n\t\tstocksETFsIndices\n\t} = state.quotelistByIssueType;\n\tconst { data, error } = action.response;\n\tconst { quotes } = data || {};\n\tconst quoteMap = {};\n\n\tif (!error && quotes && quotes.length) {\n\t\tquotes.forEach(quoteData => {\n\t\t\tconst { data: quote } = quoteData;\n\t\t\tconst { venueXid } = quote || {};\n\t\t\tquoteMap[venueXid] = {\n\t\t\t\tlast: quote.lastTrade.last,\n\t\t\t\tdate: quote.lastTrade.date,\n\t\t\t\thigh: quote.lastTrade.high,\n\t\t\t\tlow: quote.lastTrade.low,\n\t\t\t\topen: quote.lastTrade.open === 0 ? null : quote.lastTrade.open,\n\t\t\t\tchange: quote.lastTrade.change,\n\t\t\t\tchgPercentPrev: quote.changePercent.today,\n\t\t\t\tcurrency: quote.currency.isoCode,\n\t\t\t\tbid: quote.bid.price,\n\t\t\t\tbidSize: quote.bid.size,\n\t\t\t\task: quote.ask.price,\n\t\t\t\taskSize: quote.ask.size,\n\t\t\t\tprice52WeekHigh: quote.price52Week.high,\n\t\t\t\tprice52WeekLow: quote.price52Week.low,\n\t\t\t\tvolume: quote.volume.last,\n\t\t\t\trealTimeQuoteIndicator: quote.realTimeQuoteIndicator,\n\t\t\t\tfinancialStatusIndicator: quote.financialStatusIndicator\n\t\t\t};\n\t\t});\n\n\t\tconst newStocksETFsIndices = [];\n\n\t\tstocksETFsIndices.forEach(symbol => {\n\t\t\tconst xid = symbol.xids.venue;\n\t\t\tconst quoteDataToMerge = quoteMap[xid];\n\t\t\tif (quoteDataToMerge) {\n\t\t\t\tnewStocksETFsIndices.push(lodash.merge(symbol, quoteDataToMerge));\n\t\t\t}\n\t\t});\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingQuotelistQuoteData: false,\n\t\tquotelistByIssueType: Object.assign({}, state.quotelistByIssueType, {\n\t\t\tstocksETFsIndices: Object.assign([], newStocksETFsIndices)\n\t\t})\n\t});\n};\n\nconst addToQuotelist = (state, action) => {\n\tconst { quotelistByIssueType } = state;\n\tconst { stocksETFsIndices, mutualFunds } = quotelistByIssueType;\n\tconst holdingType = action.symbol.classification.name.toLowerCase();\n\tlet quotelistCurrentTypeTotal = 0;\n\n\t// get current number of symbols in QL, based on type\n\tif (holdingType === 'fund') {\n\t\tquotelistCurrentTypeTotal = Object.keys(mutualFunds).length;\n\t} else if (holdingType !== 'option') {\n\t\tquotelistCurrentTypeTotal = Object.keys(stocksETFsIndices).length;\n\t}\n\n\tif (quotelistCurrentTypeTotal < 20) {\n\t\tlet symbolAlreadyExists = false;\n\n\t\t// dupe check\n\t\tif (holdingType === 'fund') {\n\t\t\tmutualFunds.forEach(listing => {\n\t\t\t\tif (!symbolAlreadyExists) {\n\t\t\t\t\tsymbolAlreadyExists = listing.xids.venue === action.symbol.xids.venue;\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (holdingType !== 'option') {\n\t\t\tstocksETFsIndices.forEach(listing => {\n\t\t\t\tif (!symbolAlreadyExists) {\n\t\t\t\t\tsymbolAlreadyExists = listing.xids.venue === action.symbol.xids.venue;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (!symbolAlreadyExists) {\n\t\t\tlet newSymbols;\n\t\t\taction.symbol.checked = false;\n\n\t\t\tswitch (holdingType) {\n\t\t\t\tcase 'option':\n\t\t\t\t\tnewSymbols = state.quotelistByIssueType.options;\n\t\t\t\t\tnewSymbols.push(action.symbol);\n\t\t\t\t\treturn Object.assign({}, state, {\n\t\t\t\t\t\tquotelistByIssueType: Object.assign({}, state.quotelistByIssueType, {\n\t\t\t\t\t\t\toptions: Object.assign([], state.quotelistByIssueType.options,\n\t\t\t\t\t\t\t\tnewSymbols)\n\t\t\t\t\t\t})\n\t\t\t\t\t});\n\n\t\t\t\tcase 'fund':\n\t\t\t\t\tnewSymbols = state.quotelistByIssueType.mutualFunds;\n\t\t\t\t\tnewSymbols.push(action.symbol);\n\t\t\t\t\treturn Object.assign({}, state, {\n\t\t\t\t\t\tquotelistByIssueType: Object.assign({}, state.quotelistByIssueType, {\n\t\t\t\t\t\t\tmutualFunds: Object.assign([], state.quotelistByIssueType.mutualFunds,\n\t\t\t\t\t\t\t\tnewSymbols)\n\t\t\t\t\t\t})\n\t\t\t\t\t});\n\n\t\t\t\tcase 'equity':\n\t\t\t\tcase 'etf':\n\t\t\t\tdefault:\n\t\t\t\t\tnewSymbols = state.quotelistByIssueType.stocksETFsIndices;\n\t\t\t\t\tnewSymbols.push(action.symbol);\n\t\t\t\t\treturn Object.assign({}, state, {\n\t\t\t\t\t\tquotelistByIssueType: Object.assign({}, state.quotelistByIssueType, {\n\t\t\t\t\t\t\tstocksETFsIndices: Object.assign([], state.quotelistByIssueType.stocksETFsIndices,\n\t\t\t\t\t\t\t\tnewSymbols)\n\t\t\t\t\t\t})\n\t\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\treturn state;\n};\n\nconst removeFromQuotelist = (state, action) => {\n\tconst { symbolsToKeep } = action;\n\n\tswitch (action.quotelistSection) {\n\t\tcase 'mutualFunds':\n\t\t\treturn Object.assign({}, state, {\n\t\t\t\tquotelistByIssueType: Object.assign({}, state.quotelistByIssueType, {\n\t\t\t\t\tmutualFunds: Object.assign([], symbolsToKeep)\n\t\t\t\t})\n\t\t\t});\n\t\tcase 'stocksETFsIndices':\n\t\tdefault:\n\t\t\treturn Object.assign({}, state, {\n\t\t\t\tquotelistByIssueType: Object.assign({}, state.quotelistByIssueType, {\n\t\t\t\t\tstocksETFsIndices: Object.assign([], symbolsToKeep)\n\t\t\t\t})\n\t\t\t});\n\t}\n};\n\nconst sortHoldingsGroup = (state, action) => {\n\tconst { quotelistByIssueType } = state;\n\tconst { field, direction } = action;\n\tlet sortDirection = direction;\n\n\tlet groupSortDirection = direction;\n\tlet groupSortField = null;\n\tlet sortData = null;\n\tlet fieldName = null;\n\tlet directionName = null;\n\n\tswitch (action.holdingGroup) {\n\t\tcase holdingsGroups.MUTUALFUNDS:\n\t\t\t{\n\t\t\t\tconst { mutualFundsSortDirection, mutualFundsSortField } = state;\n\t\t\t\tconst { mutualFunds } = quotelistByIssueType;\n\n\t\t\t\tgroupSortDirection = mutualFundsSortDirection;\n\t\t\t\tgroupSortField = mutualFundsSortField;\n\t\t\t\tsortData = mutualFunds;\n\t\t\t\tfieldName = 'mutualFundsSortField';\n\t\t\t\tdirectionName = 'mutualFundsSortDirection';\n\t\t\t} break;\n\t\tcase holdingsGroups.OPTIONS:\n\t\t\t{\n\t\t\t\tconst { optionsSortDirection, optionsSortField } = state;\n\t\t\t\tconst { options } = quotelistByIssueType;\n\n\t\t\t\tgroupSortDirection = optionsSortDirection;\n\t\t\t\tgroupSortField = optionsSortField;\n\t\t\t\tsortData = options;\n\t\t\t\tfieldName = 'optionsSortField';\n\t\t\t\tdirectionName = 'optionsSortDirection';\n\t\t\t} break;\n\t\tcase holdingsGroups.STOCKS_ETFS_INDICES:\n\t\t\t{\n\t\t\t\tconst { stocksETFsIndicesSortDirection, stocksETFsIndicesSortField } = state;\n\t\t\t\tconst { stocksETFsIndices } = quotelistByIssueType;\n\n\t\t\t\tgroupSortDirection = stocksETFsIndicesSortDirection;\n\t\t\t\tgroupSortField = stocksETFsIndicesSortField;\n\t\t\t\tsortData = stocksETFsIndices;\n\t\t\t\tfieldName = 'stocksETFsIndicesSortField';\n\t\t\t\tdirectionName = 'stocksETFsIndicesSortDirection';\n\t\t\t} break;\n\t\tdefault:\n\t\t\t// NOTE: Intentionally left empty\n\t\t\tbreak;\n\t}\n\n\tif (sortData) {\n\t\tif ((groupSortDirection && groupSortField === field)\n\t\t\t|| (groupSortDirection === direction && groupSortField === field)) {\n\t\t\tsortDirection = groupSortDirection === 'asc' ? 'desc' : 'asc';\n\t\t}\n\n\t\tconst dataToSortByField = [];\n\t\tconst dataToSortBySymbol = [];\n\t\tsortData.forEach(item => {\n\t\t\tif (item[field] === 'symbol') {\n\t\t\t\tdataToSortBySymbol.push(item);\n\t\t\t} else {\n\t\t\t\tdataToSortByField.push(item);\n\t\t\t}\n\t\t});\n\n\t\tconst dataSortedByField = lodash.orderBy(dataToSortByField, field, [sortDirection]);\n\t\tconst dataSortedBySymbol = lodash.orderBy(dataToSortBySymbol, 'symbol', ['asc']);\n\t\tconst newData = [...dataSortedByField, ...dataSortedBySymbol];\n\t\tconst newQuotelistByIssueType = {};\n\t\tnewQuotelistByIssueType[action.holdingGroup] = [...newData];\n\n\t\tconst newStateObject = {};\n\t\tnewStateObject[fieldName] = field;\n\t\tnewStateObject[directionName] = sortDirection;\n\t\tnewStateObject.quotelistByIssueType = Object.assign({},\n\t\t\tstate.quotelistByIssueType, newQuotelistByIssueType);\n\n\t\treturn Object.assign({}, state, newStateObject);\n\t}\n\n\treturn state;\n};\n\nconst setQuotelistTableSortIndicators = (state, action) => {\n\tconst { field, direction } = action;\n\tlet fieldName = null;\n\tlet directionName = null;\n\tswitch (action.holdingGroup) {\n\t\tcase holdingsGroups.OPTIONS:\n\t\t\tfieldName = 'optionsSortField';\n\t\t\tdirectionName = 'optionsSortDirection';\n\t\t\tbreak;\n\t\tcase holdingsGroups.STOCKS_ETFS_INDICES:\n\t\t\tfieldName = 'stocksETFsIndicesSortField';\n\t\t\tdirectionName = 'stocksETFsIndicesSortDirection';\n\t\t\tbreak;\n\t\tcase holdingsGroups.MUTUALFUNDS:\n\t\t\tfieldName = 'mutualFundsSortField';\n\t\t\tdirectionName = 'mutualFundsSortDirection';\n\t\t\tbreak;\n\t\tdefault:\n\t\t\t// NOTE: Intentionally left empty\n\t\t\tbreak;\n\t}\n\n\tif (fieldName && directionName) {\n\t\tconst newStateObject = {};\n\t\tnewStateObject[fieldName] = field;\n\t\tnewStateObject[directionName] = direction;\n\n\t\treturn Object.assign({}, state, newStateObject);\n\t}\n\n\treturn state;\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_RECEIVE_QUOTELIST_QUOTE]: receiveQuotelistQuotes,\n\t[Types.API_REQUEST_QUOTELIST_QUOTE]: requestQuotelistQuotes,\n\t[Types.API_RECEIVE_QUOTELIST_FUND_BASICS]: receiveQuotelistFundBasics,\n\t[Types.API_REQUEST_QUOTELIST_FUND_BASICS]: requestQuotelistFundBasics,\n\t[Types.ADD_TO_QUOTELIST]: addToQuotelist,\n\t[Types.REMOVE_FROM_QUOTELIST]: removeFromQuotelist,\n\t[Types.SORT_QUOTELIST]: sortHoldingsGroup,\n\t[Types.SORT_QUOTELIST_SETINDICATORS]: setQuotelistTableSortIndicators,\n\t[Types.API_HANDLE_QUOTELIST_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable no-param-reassign */\n/* eslint-disable no-lonely-if */\n/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport chartColorHelper from 'Utils/chartColorHelper';\nimport lodash from 'lodash';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingMorningstarRatings: false,\n\tfetchingShareClass: false,\n\tfetchingPremiumDiscountDaily: false,\n\tfetchingPortfolioStatistics: false,\n\tfetchingManagedFundsStrategy: false,\n\tfetchingManagedFundsAttributes: false,\n\tfetchingManagedFundsAnnualReturns: false,\n\tfetchingManagedFundsGrowth10k: false,\n\tfetchingAssetAllocationData: false,\n\tfetchingMorningstarAnnualReturn: false,\n\tfetchingMorningstarTopHoldings: false,\n\tmorningstarRatings: {},\n\tportfolioStatisticsData: {},\n\tshareClassData: {},\n\tfundStrategyData: {},\n\tbenchmarkData: {},\n\tbenchmarkDataCategories: {},\n\tattributeData: {},\n\tmorningstarPeers: {},\n\tannualPerformance: {},\n\tperformance: {},\n\tgrowth10KData: {\n\t\tinvestmentData: {}\n\t},\n\tassetAllocationData: {},\n\tcompanyInformation: {},\n\tannualReturnData: {},\n\tbeta: null,\n\tvolitility: {},\n\tfundDetails: [],\n\tprospectusFees: {},\n\ttopHoldings: {}\n};\n\nconst requestMorningstarRatings = state => {\n\treturn Object.assign({}, state, {\n\t\tmorningstarRatings: Object.assign({}),\n\t\tfetchingMorningstarRatings: true\n\t});\n};\n\nconst receiveMorningstarRatings = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingMorningstarRatings: false,\n\t\tmorningstarRatings: Object.assign({}, action.response.data)\n\t});\n};\n\nconst requestPremiumDiscountDaily = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingPremiumDiscountDaily: true,\n\t\tpremiumDiscountDailyData: Object.assign({})\n\t});\n};\n\nconst receivePremiumDiscountDaily = (state, action) => {\n\tlet premData = {};\n\tif (action.response.data && action.response.data.premiumDiscountDaily) {\n\t\tpremData = action.response.data.premiumDiscountDaily;\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingPremiumDiscountDaily: false,\n\t\tpremiumDiscountDailyData: Object.assign({}, premData)\n\t});\n};\n\nconst requestShareClass = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingShareClass: true,\n\t\tshareClassData: Object.assign({})\n\t});\n};\n\nconst receiveShareClass = (state, action) => {\n\tlet premData = {};\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingShareClass: false,\n\t\tshareClassData: Object.assign({}, premData)\n\t});\n};\n\nconst requestPortfolioStatistics = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingPortfolioStatistics: true,\n\t\tportfolioStatisticsData: Object.assign({})\n\t});\n};\n\nconst receivePortfolioStatistics = (state, action) => {\n\tlet premData = {};\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingPortfolioStatistics: false,\n\t\tportfolioStatisticsData: Object.assign({}, premData)\n\t});\n};\n\nconst requestManagedFundsGrowth10k = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingManagedFundsGrowth10k: true,\n\t\tgrowth10KData: Object.assign({})\n\t});\n};\n\nconst receiveManagedFundsGrowth10k = (state, action) => {\n\tlet premData = {};\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingManagedFundsGrowth10k: false,\n\t\tgrowth10KData: Object.assign({}, premData)\n\t});\n};\n\nconst requestRiskMeasures = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingRiskMeasures: true,\n\t\tbeta: null,\n\t\tvolitility: Object.assign({})\n\t});\n};\n\nconst receiveRiskMeasures = (state, action) => {\n\tlet premData = {};\n\tconst volitility = {};\n\tlet beta = null;\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t\tconst {\n\t\t\tfund,\n\t\t\tcategory\n\t\t} = premData || {};\n\t\tconst {\n\t\t\tnav: fundNav,\n\t\t\tasOfDate: asOfDateFund\n\t\t} = fund || {};\n\t\tconst { nav: categoryNav, asOfDate: asOfDateCategory } = category || {};\n\t\tconst betaValue = fundNav\n\t\t\t&& fundNav.beta\n\t\t\t&& fundNav.beta.primaryIndex\n\t\t\t&& fundNav.beta.primaryIndex[0].value;\n\n\t\tif (betaValue) {\n\t\t\tbeta = betaValue;\n\t\t}\n\n\t\tvolitility.asOfDate = asOfDateFund || asOfDateCategory;\n\n\t\tconst {\n\t\t\trSquared: fundRsquared,\n\t\t\talpha: fundAlpha,\n\t\t\tbeta: fundBeta\n\t\t} = fundNav || {};\n\t\tconst {\n\t\t\trSquared: categoryRsquared,\n\t\t\talpha: categoryAlpha,\n\t\t\tbeta: categoryBeta\n\t\t} = categoryNav || {};\n\n\t\tconst mapDataForName = (data, name, saveName, type) => {\n\t\t\tif (data && data[name] && data[name].length) {\n\t\t\t\tdata[name].forEach(item => {\n\t\t\t\t\tif (!volitility[saveName]) {\n\t\t\t\t\t\tvolitility[saveName] = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!volitility[saveName][item.temporalPeriod]) {\n\t\t\t\t\t\tvolitility[saveName][item.temporalPeriod] = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tvolitility[saveName][item.temporalPeriod][type] = item.value;\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tmapDataForName(fundNav, 'standardDeviation', 'standardDeviation', 'fund');\n\t\tmapDataForName(fundNav, 'sharpeRatio', 'sharpeRatio', 'fund');\n\t\tmapDataForName(fundRsquared, 'primaryIndex', 'rSquared', 'fund');\n\t\tmapDataForName(fundAlpha, 'primaryIndex', 'alpha', 'fund');\n\t\tmapDataForName(fundBeta, 'primaryIndex', 'beta', 'fund');\n\n\t\tmapDataForName(categoryNav, 'standardDeviation', 'standardDeviation', 'category');\n\t\tmapDataForName(categoryNav, 'sharpeRatio', 'sharpeRatio', 'category');\n\t\tmapDataForName(categoryRsquared, 'primaryIndex', 'rSquared', 'category');\n\t\tmapDataForName(categoryAlpha, 'primaryIndex', 'alpha', 'category');\n\t\tmapDataForName(categoryBeta, 'primaryIndex', 'beta', 'category');\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingRiskMeasures: false,\n\t\tvolitility: Object.assign({}, volitility),\n\t\tbeta\n\t});\n};\n\nconst requestManagedFundsStrategy = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingManagedFundsStrategy: true,\n\t\tfundStrategyData: Object.assign({})\n\t});\n};\n\nconst receiveMorningstarManagedFundsStrategy = (state, action) => {\n\tlet premData = {};\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingManagedFundsStrategy: false,\n\t\tfundStrategyData: Object.assign({}, premData)\n\t});\n};\n\nconst requestBenchmarkInfo = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingBenchmarkInfo: true,\n\t\tbenchmarkData: Object.assign({})\n\t});\n};\n\nconst receiveBenchmarkInfo = (state, action) => {\n\tlet premData = {};\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t}\n\tconst returnInfo = {};\n\tif (premData && premData.items && premData.items.length) {\n\t\tpremData.items.forEach(item => {\n\t\t\tif (item.type === 'MorningstarPrimaryBenchmark') {\n\t\t\t\treturnInfo.primaryBenchmark = item.name;\n\t\t\t}\n\n\t\t\tif (item.type === 'GlobalCategoryAssetClass') {\n\t\t\t\treturnInfo.fundType = item.name;\n\t\t\t}\n\n\t\t\tif (item.type === 'MorningstarCategory') {\n\t\t\t\treturnInfo.fundCategory = item.name;\n\t\t\t}\n\n\t\t\tif (item.type === 'ProspectusPrimaryBenchmark') {\n\t\t\t\treturnInfo.prospectusBenchmark = item.name;\n\t\t\t}\n\t\t});\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingBenchmarkInfo: false,\n\t\tbenchmarkData: Object.assign({}, returnInfo)\n\t});\n};\n\nconst requestBenchmarkInfoCategory = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingBenchmarkInfo: true,\n\t\tbenchmarkDataCategories: Object.assign({})\n\t});\n};\n\nconst receiveBenchmarkInfoCategory = (state, action) => {\n\tlet premData = {};\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t}\n\tconst returnInfo = {};\n\tif (premData && premData.items && premData.items.length) {\n\t\tpremData.items.forEach(item => {\n\t\t\tif (item.type === 'ProspectusPrimaryBenchmark') {\n\t\t\t\treturnInfo.primaryBenchmark = item.name;\n\t\t\t}\n\n\t\t\tif (item.type === 'GlobalCategoryAssetClass') {\n\t\t\t\treturnInfo.fundType = item.name;\n\t\t\t}\n\n\t\t\tif (item.type === 'MorningstarCategory') {\n\t\t\t\treturnInfo.fundCategory = item.name;\n\t\t\t}\n\t\t});\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingManagedFundsStrategy: false,\n\t\tbenchmarkDataCategories: Object.assign({}, returnInfo)\n\t});\n};\n\nconst requestAttributeData = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingManagedFundsAttributes: true,\n\t\tattributeData: Object.assign({})\n\t});\n};\n\nconst receiveAttributeData = (state, action) => {\n\tlet premData = {};\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingManagedFundsAttributes: false,\n\t\tattributeData: Object.assign({}, premData)\n\t});\n};\n\nconst requestMorningstarPeers = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingMorningstarPeers: true,\n\t\tmorningstarPeers: Object.assign({})\n\t});\n};\n\nconst receiveMorningstarPeers = (state, action) => {\n\tlet premData = {};\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingMorningstarPeers: false,\n\t\tmorningstarPeers: Object.assign({}, premData)\n\t});\n};\n\nconst requestAnnualPerformance = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingAnnualPerformance: true\n\t});\n};\n\nconst receiveAnnualPerformance = (state, action) => {\n\tlet premData = {};\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t}\n\n\tconst data = (premData.items ? premData.items[0] : {});\n\tconst venueXid = data.venueXid.toString();\n\tconst newState = Object.assign({}, state);\n\tconst newAnnualPerformanceData = newState.annualPerformance || {};\n\tnewAnnualPerformanceData[venueXid] = data;\n\n\treturn Object.assign({}, state, newState, {\n\t\tfetchingAnnualPerformance: false\n\t});\n};\n\nconst requestPerformance = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingPerformance: true\n\t});\n};\n\nconst receivePerformance = (state, action) => {\n\tlet premData = {};\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t}\n\n\tlet venueXid = null;\n\tif (action.xid) {\n\t\tvenueXid = action.xid;\n\t}\n\n\treturn {\n\t\t...state,\n\t\tperformance: {\n\t\t\t...state.performance,\n\t\t\t[venueXid]: premData\n\t\t},\n\t\tfetchingPerformance: false\n\t};\n};\n\nconst requestSectorAllocation = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingSectorAllocationData: true,\n\t\tsectorAllocationData: Object.assign({})\n\t});\n};\n\nconst receiveSectorAllocation = (state, action) => {\n\tlet premData = {};\n\tlet formatted = [];\n\tconst sectors = {};\n\tlet asOfDate = '';\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t\tconst { fundAllocation, categoryAllocation } = premData || {};\n\t\tconst { datePortfolio } = fundAllocation || {};\n\n\t\tif (datePortfolio && asOfDate === '') {\n\t\t\tasOfDate = datePortfolio;\n\t\t}\n\n\t\tif (fundAllocation.equitySectors && fundAllocation.equitySectors.length > 0) {\n\t\t\tconst fundSectors = fundAllocation.equitySectors;\n\t\t\tfundSectors.forEach(sector => {\n\t\t\t\tconst { type, value } = sector || {};\n\t\t\t\tconst { net } = value || {};\n\n\t\t\t\tif (net) {\n\t\t\t\t\tsectors[type] = {\n\t\t\t\t\t\tname: type,\n\t\t\t\t\t\tvalue: net\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (categoryAllocation.equitySectors && categoryAllocation.equitySectors.length) {\n\t\t\tconst catSectors = categoryAllocation.equitySectors;\n\t\t\tcatSectors.forEach(sector => {\n\t\t\t\tconst { type, value } = sector || {};\n\t\t\t\tconst { net } = value || {};\n\n\t\t\t\tif (net && sectors[type]) {\n\t\t\t\t\tsectors[type].categoryValue = net;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tObject.keys(sectors).forEach(sector => {\n\t\tformatted.push(sectors[sector]);\n\t});\n\n\tformatted = lodash.orderBy(formatted, ['value'], ['desc']);\n\n\tformatted = formatted.map((sector, index) => {\n\t\tsector.color = chartColorHelper.getColorByIndex(index);\n\t\treturn sector;\n\t});\n\n\tformatted = formatted.map(sector => {\n\t\tsector.isShort = sector.value < 0;\n\t\tsector.isLeveraged = sector.value > 100;\n\t\treturn sector;\n\t});\n\n\treturn Object.assign({}, state, {\n\t\tfetchingSectorAllocationData: false,\n\t\tsectorAllocationData: Object.assign({}, {\n\t\t\tasOfDate,\n\t\t\tsectors: formatted\n\t\t})\n\t});\n};\n\nconst requestAssetAllocationData = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingAssetAllocationData: true,\n\t\tassetAllocationData: Object.assign({}),\n\t\tassetsFormatted: Object.assign([])\n\t});\n};\n\nconst receiveAssetAllocationData = (state, action) => {\n\tlet premData = {};\n\tlet formatted = [];\n\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t\tconst { items, categoryAllocation } = premData || {};\n\t\tconst assets = {\n\t\t\tequity: {\n\t\t\t\tname: 'equity',\n\t\t\t\tvalue: 0,\n\t\t\t\tcategoryValue: null\n\t\t\t},\n\t\t\tbonds: {\n\t\t\t\tname: 'bonds',\n\t\t\t\tvalue: 0,\n\t\t\t\tcategoryValue: null\n\t\t\t}\n\t\t};\n\n\t\tif (items && items.length > 0) {\n\t\t\titems.forEach(item => {\n\t\t\t\tif (item.value.net) {\n\t\t\t\t\tif (item.type === 'usstock' || item.type === 'nonusstock') {\n\t\t\t\t\t\tassets.equity.value += item.value.net;\n\t\t\t\t\t} else if (item.type === 'usbond' || item.type === 'nonusbond') {\n\t\t\t\t\t\tassets.bonds.value += item.value.net;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (assets[item.type]) {\n\t\t\t\t\t\t\tassets[item.type].value += item.value.net;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tassets[item.type] = {\n\t\t\t\t\t\t\t\tname: item.type,\n\t\t\t\t\t\t\t\tvalue: item.value.net\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (categoryAllocation && categoryAllocation.items && categoryAllocation.items.length > 0) {\n\t\t\tconst catItems = categoryAllocation.items;\n\t\t\tcatItems.forEach(catItem => {\n\t\t\t\tif (catItem.value.net) {\n\t\t\t\t\tif (catItem.type === 'usstock' || catItem.type === 'nonusstock') {\n\t\t\t\t\t\tassets.equity.categoryValue += catItem.value.net;\n\t\t\t\t\t} else if (catItem.type === 'usbond' || catItem.type === 'nonusbond') {\n\t\t\t\t\t\tassets.bonds.categoryValue += catItem.value.net;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (assets[catItem.type] && assets[catItem.type].categoryValue) {\n\t\t\t\t\t\t\tassets[catItem.type].categoryValue += catItem.value.net;\n\t\t\t\t\t\t} else if (assets[catItem.type] && !assets[catItem.type].categoryValue) {\n\t\t\t\t\t\t\tconst newData = {\n\t\t\t\t\t\t\t\tname: assets[catItem.type].name,\n\t\t\t\t\t\t\t\tvalue: assets[catItem.type].value,\n\t\t\t\t\t\t\t\tcategoryValue: catItem.value.net\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tassets[catItem.type] = newData;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tObject.keys(assets).forEach(key => {\n\t\t\tconst item = assets[key];\n\t\t\tif (item.value !== 0) {\n\t\t\t\tformatted.push(item);\n\t\t\t}\n\t\t});\n\n\t\tif (formatted.length > 0) {\n\t\t\tformatted = lodash.orderBy(formatted, ['value'], ['desc']);\n\t\t\tformatted = formatted.map((asset, index) => {\n\t\t\t\tasset.color = chartColorHelper.getColorByIndex(index);\n\t\t\t\treturn asset;\n\t\t\t});\n\n\t\t\tformatted = formatted.map(asset => {\n\t\t\t\tasset.isShort = asset.value < 0;\n\t\t\t\tasset.isLeveraged = asset.value > 100;\n\t\t\t\treturn asset;\n\t\t\t});\n\t\t}\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingAssetAllocationData: false,\n\t\tassetAllocationData: Object.assign({}, premData),\n\t\tassetsFormatted: Object.assign([], formatted)\n\t});\n};\n\nconst receiveTopHoldings = (state, action) => {\n\tlet premData = {};\n\tconst holdings = [];\n\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t\tconst { items } = premData || {};\n\n\t\tif (items && items.length > 0) {\n\t\t\titems.forEach((symbol, index) => {\n\t\t\t\tconst {\n\t\t\t\t\tsecurityIdentifiers,\n\t\t\t\t\tholdingDetailDate,\n\t\t\t\t\tportfolioDate,\n\t\t\t\t\tshareDetails,\n\t\t\t\t\tmarketValue\n\t\t\t\t} = symbol || {};\n\t\t\t\tconst { name, venue } = securityIdentifiers || {};\n\t\t\t\tconst { weighting } = shareDetails || {};\n\n\t\t\t\tholdings.push({\n\t\t\t\t\tname,\n\t\t\t\t\tvalue: weighting,\n\t\t\t\t\tasOfDate: portfolioDate || holdingDetailDate,\n\t\t\t\t\txid: venue,\n\t\t\t\t\tcolor: chartColorHelper.getColorByIndex(index),\n\t\t\t\t\tisShort: Math.sign(marketValue) === -1 || false\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingTopHoldings: true,\n\t\ttopHoldingsData: Object.assign([], holdings)\n\t});\n};\n\nconst requestTopHoldings = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingTopHoldings: true,\n\t\ttopHoldingsData: Object.assign([])\n\t});\n};\n\nconst requestMorningstarCompanyInformation = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingMorningstarCompanyInformation: true,\n\t\tcompanyInformation: Object.assign({})\n\t});\n};\n\nconst receiveMorningstarCompanyInformation = (state, action) => {\n\tlet premData = {};\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingMorningstarCompanyInformation: false,\n\t\tcompanyInformation: Object.assign({}, premData)\n\t});\n};\n\nconst requestMorningstarFundDetails = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingMorningstarFundDetails: true,\n\t\tfundDetails: []\n\t});\n};\n\nconst receiveMorningstarFundDetails = (state, action) => {\n\tlet premData = [];\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingMorningstarFundDetails: false,\n\t\tfundDetails: premData\n\t});\n};\n\nconst requestMorningstarAnnualReturnData = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingMorningstarAnnualReturn: true,\n\t\tannualReturnData: Object.assign({})\n\t});\n};\n\nconst receivetMorningstarAnnualReturnData = (state, action) => {\n\tlet premData = {};\n\tconst { response } = action || {};\n\tconst { data } = response || {};\n\tconst obj = {\n\t\tmarketReturnYTD: null,\n\t\tNAVYTDReturn: null,\n\t\tcatAverageNAV: null,\n\t\trank: null,\n\t\tcatSize: null\n\t};\n\n\tif (data && data.items && data.items.length && data.items.length === 4) {\n\t\tobj.marketReturnYTD = data.items[0].values[data.items[0].values.length - 1] || null;\n\t\tobj.NAVYTDReturn = data.items[1].values[data.items[1].values.length - 1] || null;\n\t\tobj.rank = data.items[2].values[data.items[2].values.length - 1] || null;\n\t\tobj.catSize = data.items[3].values[data.items[3].values.length - 1] || null;\n\t\tif (\n\t\t\tdata.category\n\t\t\t&& data.category.items\n\t\t\t&& data.category.items.length\n\t\t\t&& data.category.items.length >= 2\n\t\t) {\n\t\t\tobj.catAverageNAV = data.category.items[1].values[data.category.items[1].values.length - 1]\n\t\t\t|| null;\n\t\t}\n\t}\n\n\tif (data) {\n\t\tdata.YTDValues = obj;\n\t\tpremData = data;\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingMorningstarAnnualReturn: false,\n\t\tannualReturnData: Object.assign({}, premData)\n\t});\n};\n\nconst requestMorningstarProspectusFees = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingMorningstarProspectusFees: true,\n\t\tfundDetails: []\n\t});\n};\n\nconst receiveMorningstarProspectusFees = (state, action) => {\n\tlet premData = [];\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingMorningstarProspectusFees: false,\n\t\tprospectusFees: premData\n\t});\n};\n\nconst requestMorningstarTopHoldings = state => {\n\treturn {\n\t\t...state,\n\t\tfetchingMorningstarTopHoldings: true,\n\t\ttopHoldings: []\n\t};\n};\n\nconst receiveMorningstarTopHoldings = (state, action) => {\n\tlet premData = [];\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t}\n\n\treturn {\n\t\t...state,\n\t\tfetchingMorningstarTopHoldings: false,\n\t\ttopHoldings: premData\n\t};\n};\n\nconst clearMorningstarHoldings = state => {\n\treturn {\n\t\t...state,\n\t\tfetchingMorningstarTopHoldings: false,\n\t\ttopHoldings: []\n\t};\n};\n\nconst requestMorningstarAnnualFees = state => {\n\treturn {\n\t\t...state,\n\t\tfetchingMorningstarAnnualFees: true,\n\t\tannualFees: {}\n\t};\n};\n\nconst receiveMorningstarAnnualFees = (state, action) => {\n\tlet tempFees = {};\n\tif (action && action.response && action.response.data) {\n\t\ttempFees = action.response.data;\n\t}\n\treturn {\n\t\t...state,\n\t\tfetchingMorningstarAnnualFees: false,\n\t\tannualFees: tempFees\n\t};\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_REQUEST_MORNINGSTAR_RATINGS]: requestMorningstarRatings,\n\t[Types.API_RECEIVE_MORNINGSTAR_RATINGS]: receiveMorningstarRatings,\n\t[Types.API_REQUEST_MORNINGSTAR_PREMIUM_DISCOUNT_DAILY]: requestPremiumDiscountDaily,\n\t[Types.API_RECEIVE_MORNINGSTAR_PREMIUM_DISCOUNT_DAILY]: receivePremiumDiscountDaily,\n\t[Types.API_REQUEST_MORNINGSTAR_SHARE_CLASS]: requestShareClass,\n\t[Types.API_RECEIVE_MORNINGSTAR_SHARE_CLASS]: receiveShareClass,\n\t[Types.API_RECEIVE_MORNINGSTAR_PORTFOLIO_STATISTICS]: receivePortfolioStatistics,\n\t[Types.API_REQUEST_MORNINGSTAR_PORTFOLIO_STATISTICS]: requestPortfolioStatistics,\n\t[Types.API_REQUEST_MORNINGSTAR_MANAGED_FUNDS_STRATEGY]: requestManagedFundsStrategy,\n\t[Types.API_RECEIVE_MORNINGSTAR_MANAGED_FUNDS_STRATEGY]: receiveMorningstarManagedFundsStrategy,\n\t[Types.API_RECEIVE_MORNINGSTAR_MANAGED_FUNDS_BENCHMARK]: receiveBenchmarkInfo,\n\t[Types.API_REQUEST_MORNINGSTAR_MANAGED_FUNDS_BENCHMARK]: requestBenchmarkInfo,\n\t[Types.API_RECEIVE_MORNINGSTAR_MANAGED_FUNDS_BENCHMARK_CATEGORY]: receiveBenchmarkInfoCategory,\n\t[Types.API_REQUEST_MORNINGSTAR_MANAGED_FUNDS_BENCHMARK_CATEGORY]: requestBenchmarkInfoCategory,\n\t[Types.API_REQUEST_MORNINGSTAR_MANAGED_FUNDS_ATTRIBUTES]: requestAttributeData,\n\t[Types.API_RECEIVE_MORNINGSTAR_MANAGED_FUNDS_ATTRIBUTES]: receiveAttributeData,\n\t[Types.API_REQUEST_MORNINGSTAR_RISK_MEASURES]: requestRiskMeasures,\n\t[Types.API_RECEIVE_MORNINGSTAR_RISK_MEASURES]: receiveRiskMeasures,\n\t[Types.API_REQUEST_MORNINGSTAR_PEERS]: requestMorningstarPeers,\n\t[Types.API_RECEIVE_MORNINGSTAR_PEERS]: receiveMorningstarPeers,\n\t[Types.API_REQUEST_MORNINGSTAR_ANNUAL_PERFORMANCE]: requestAnnualPerformance,\n\t[Types.API_RECEIVE_MORNINGSTAR_ANNUAL_PERFORMANCE]: receiveAnnualPerformance,\n\t[Types.API_REQUEST_MORNINGSTAR_PERFORMANCE]: requestPerformance,\n\t[Types.API_RECEIVE_MORNINGSTAR_PERFORMANCE]: receivePerformance,\n\t[Types.API_REQUEST_MORNINGSTAR_GROWTH_10K]: requestManagedFundsGrowth10k,\n\t[Types.API_RECEIVE_MORNINGSTAR_GROWTH_10K]: receiveManagedFundsGrowth10k,\n\t[Types.API_REQUEST_MORNINGSTAR_ASSET_ALLOCATION]: requestAssetAllocationData,\n\t[Types.API_RECEIVE_MORNINGSTAR_ASSET_ALLOCATION]: receiveAssetAllocationData,\n\t[Types.API_RECEIVE_MORNINGSTAR_SECTOR_ALLOCATION]: receiveSectorAllocation,\n\t[Types.API_REQUEST_MORNINGSTAR_SECTOR_ALLOCATION]: requestSectorAllocation,\n\t[Types.API_RECEIVE_MORNINGSTAR_TOP_HOLDINGS]: receiveTopHoldings,\n\t[Types.API_REQUEST_MORNINGSTAR_COMPANY_INFORMATION]: requestMorningstarCompanyInformation,\n\t[Types.API_RECEIVE_MORNINGSTAR_COMPANY_INFORMATION]: receiveMorningstarCompanyInformation,\n\t[Types.API_CIBC_REQUEST_MORNINGSTAR_FUND_DETAILS]: requestMorningstarFundDetails,\n\t[Types.API_CIBC_RECEIVE_MORNINGSTAR_FUND_DETAILS]: receiveMorningstarFundDetails,\n\t[Types.API_CIBC_REQUEST_MORNINGSTAR_TOP_HOLDINGS]: requestTopHoldings,\n\t[Types.API_RECIEVE_MORNINGSTAR_ANNUAL_RETURN_DATA]: receivetMorningstarAnnualReturnData,\n\t[Types.API_REQUEST_MORNINGSTAR_ANNUAL_RETURN_DATA]: requestMorningstarAnnualReturnData,\n\t[Types.API_RECEIVE_MORNINGSTAR_PROSPECTUS_FEES]: receiveMorningstarProspectusFees,\n\t[Types.API_REQUEST_MORNINGSTAR_PROSPECTUS_FEES]: requestMorningstarProspectusFees,\n\t[Types.API_CIBC_RECEIVE_TOP_HOLDINGS]: receiveMorningstarTopHoldings,\n\t[Types.API_CIBC_REQUEST_TOP_HOLDINGS]: requestMorningstarTopHoldings,\n\t[Types.API_CLEAR_TOP_HOLDINGS]: clearMorningstarHoldings,\n\t[Types.API_REQUEST_MORNINGSTAR_ANNUAL_FEES]: requestMorningstarAnnualFees,\n\t[Types.API_RECEIVE_MORNINGSTAR_ANNUAL_FEES]: receiveMorningstarAnnualFees,\n\t[Types.API_HANDLE_MORNINGSTAR_RATINGS_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingPremiumDiscountChart: false,\n\tchartData: {}\n};\n\nconst requestPremiumDiscountChart = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingPremiumDiscountChart: true\n\t});\n};\n\nconst receivePremiumDiscountChart = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingPremiumDiscountChart: false,\n\t\tchartData: action.response.data\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_CIBC_RECEIVE_PREMIUM_DISCOUNT_CHART]: receivePremiumDiscountChart,\n\t[Types.API_CIBC_REQUEST_PREMIUM_DISCOUNT_CHART]: requestPremiumDiscountChart,\n\t[Types.API_CIBC_HANDLE_PREMIUM_DISCOUNT_CHART_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingResearchHistoryData: false,\n\tfetchingResearchHistoryLink: false,\n\tresearchHistoryData: {},\n\tresearchHistoryMetaData: {},\n\tfileSize: null\n};\n\nconst requestResearchHistory = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingResearchHistoryData: true,\n\t\tresearchHistoryData: {},\n\t\tcustomSearchInputs: action.params\n\t});\n};\n\nconst receiveFileSize = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfileSize: action.fileSize\n\t});\n};\n\nconst receiveResearchHistory = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingResearchHistoryData: false,\n\t\tresearchHistoryData: { ...action.response.data }\n\t});\n};\n\nconst requestResearchHistoryWithMetaData = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingResearchHistoryDocumentMetaData: true,\n\t\tresearchHistoryMetaData: {}\n\t});\n};\n\nconst receiveResearchHistoryWithMetaData = (state, action) => {\n\tconst { researchHistoryMetaData } = state;\n\tconst { documentId } = action;\n\n\tresearchHistoryMetaData[documentId] = action.response.data;\n\n\treturn Object.assign({}, state, {\n\t\tfetchingResearchHistoryDocumentMetaData: false,\n\t\tresearchHistoryMetaData: { ...researchHistoryMetaData }\n\t});\n};\n\nconst setCustomSearchInputs = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tcustomSearchInputs: action.customSearchInputs\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_REQUEST_RESEARCH_HISTORY]: requestResearchHistory,\n\t[Types.API_RECEIVE_RESEARCH_HISTORY]: receiveResearchHistory,\n\t[Types.API_REQUEST_RESEARCH_HISTORY_META_DATA]: requestResearchHistoryWithMetaData,\n\t[Types.API_RECEIVE_RESEARCH_HISTORY_META_DATA]: receiveResearchHistoryWithMetaData,\n\t[Types.API_HANDLE_RESEARCH_HISTORY_LOADER]: handleLoader,\n\t[Types.SET_CUSTOM_SEARCH_INPUTS]: setCustomSearchInputs,\n\t[Types.API_RECEIVE_RESEARCH_FILE_SIZE]: receiveFileSize\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingCorporateDividends: false,\n\tdata: {}\n};\n\nconst requestCorporateDividends = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingCorporateDividends: true,\n\t\tdata: Object.assign({}, {})\n\t});\n};\n\nconst receiveCorporateDividends = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingCorporateDividends: false,\n\t\tdata: Object.assign({}, action.response.data)\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_SINGLE_REQUEST_CORPORATE_DIVIDENDS]: requestCorporateDividends,\n\t[Types.API_RECEIVE_CORPORATE_DIVIDENDS]: receiveCorporateDividends,\n\t[Types.API_HANDLE_CORPORATE_DIVIDENDS_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingDividendsPerShareChart: false,\n\tchartData: {}\n};\n\nconst requestDividendsPerShareChart = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingDividendsPerShareChart: true\n\t});\n};\n\nconst receiveDividendsPerShareChart = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingDividendsPerShareChart: false,\n\t\tchartData: action.response.data\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_CIBC_RECEIVE_DIVIDENDS_PER_SHARE_CHART]: receiveDividendsPerShareChart,\n\t[Types.API_CIBC_REQUEST_DIVIDENDS_PER_SHARE_CHART]: requestDividendsPerShareChart,\n\t[Types.API_CIBC_HANDLE_DIVIDENDS_PER_SHARE_CHART_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingGrowth10kChart: false,\n\tchartData: {}\n};\n\nconst requestGrowth10KChart = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingGrowth10kChart: true\n\t});\n};\n\nconst receiveGrowth10KChart = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingGrowth10kChart: false,\n\t\tchartData: action.response.data\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_CIBC_RECEIVE_GROWTH_10K_CHART]: receiveGrowth10KChart,\n\t[Types.API_CIBC_REQUEST_GROWTH_10K_CHART]: requestGrowth10KChart,\n\t[Types.API_CIBC_HANDLE_GROWTH_10K_CHART_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingAnnualPerformanceChart: false,\n\tchartData: {}\n};\n\nconst requestAnnualPerformanceChart = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingAnnualPerformanceChart: true\n\t});\n};\n\nconst receiveAnnualPerformanceChart = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingAnnualPerformanceChart: false,\n\t\tchartData: action.response.data\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_CIBC_RECEIVE_ANNUAL_PERFORMANCE_CHART]: receiveAnnualPerformanceChart,\n\t[Types.API_CIBC_REQUEST_ANNUAL_PERFORMANCE_CHART]: requestAnnualPerformanceChart,\n\t[Types.API_CIBC_HANDLE_ANNUAL_PERFORMANCE_CHART_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingGlobalExposureChart: false,\n\tchartData: {}\n};\n\nconst requestGlobalExposureChart = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingGlobalExposureChart: true\n\t});\n};\n\nconst receiveGlobalExposureChart = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingGlobalExposureChart: false,\n\t\tchartData: action.response.data\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_CIBC_RECEIVE_GLOBAL_EXPOSURE_CHART]: receiveGlobalExposureChart,\n\t[Types.API_CIBC_REQUEST_GLOBAL_EXPOSURE_CHART]: requestGlobalExposureChart,\n\t[Types.API_CIBC_HANDLE_GLOBAL_EXPOSURE_CHART_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingTrailingReturnsChart: false,\n\tchartData: {}\n};\n\nconst requestTrailingReturnsChart = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingTrailingReturnsChart: true\n\t});\n};\n\nconst receiveTrailingReturnsChart = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingTrailingReturnsChart: false,\n\t\tchartData: action.response.data\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_CIBC_RECEIVE_TRAILING_RETURNS_CHART]: receiveTrailingReturnsChart,\n\t[Types.API_CIBC_REQUEST_TRAILING_RETURNS_CHART]: requestTrailingReturnsChart,\n\t[Types.API_CIBC_HANDLE_TRAILING_RETURNS_CHART_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingCurrentRatios: false,\n\tfetchingEquityClassification: false,\n\tdata: {},\n\tequityClassification: {\n\t\tsectorName: null,\n\t\tindustryName: null\n\t},\n\teps: {\n\t\tearningsPerShareMRQ: null,\n\t\tearningsPerShareTTM: null,\n\t\tearningsPerShareMRQ1Yr: null,\n\t\tearningsPerShareTTM1Yr: null,\n\t\tcurrency: null\n\t},\n\trevenue: {\n\t\trevenuePerShareMRQ: null,\n\t\trevenuePerShareTTM: null,\n\t\trevenueGrowthMRQ: null,\n\t\trevenueGrowthTTM: null,\n\t\tcurrency: null\n\t},\n\tprofitability: {\n\t\tgrossMarginTTM: null,\n\t\tpreTaxMarginTTM: null,\n\t\tfiveYrPreTaxMarginTTM: null,\n\t\toperatingMarginTTM: null,\n\t\tfiveYrOperatingMarginTTM: null,\n\t\tprofitMarginTTM: null,\n\t\tfiveYearAvgNetProfitMarginTTM: null,\n\t\tfiveYearAvgNetProfitMarginGrowthTTM: null,\n\t\teffectiveTaxRateTTM: null,\n\t\tfiveYearAvgEffectiveTaxRateTTM: null,\n\t\tgrossMarginPtile: null,\n\t\tpreTaxMarginPtile: null,\n\t\toperatingMarginPtile: null,\n\t\toperatingMargin5YPtile: null,\n\t\tprofitMarginPtile: null,\n\t\tprofitMargin5YPtile: null,\n\t\tnetProfitMarginGrowth5YPtile: null,\n\t\teffectiveTaxRatePtile: null,\n\t\teffectiveTaxRate5YPtile: null\n\n\t},\n\tvaluation: {\n\t\tpriceEarningsTTM: null,\n\t\tpriceCashFlowTTM: null,\n\t\tpriceFreeCashFlowTTM: null,\n\t\tpriceTangibleBookMRQ: null,\n\t\tpriceSalesTTM: null,\n\t\tpriceEarningsPtile: null,\n\t\tpriceCashFlowPtile: null,\n\t\tpriceFreeCashFlowPtile: null,\n\t\tpriceTangibleBookPtile: null,\n\t\tpriceSalesPtile: null\n\t},\n\tfinancialStrength: {\n\t\tlongTermDebtEquityMRQ: null,\n\t\ttotalDebtEquityMRQ: null,\n\t\tinterestCoverageMRQ: null,\n\t\tquickRatioMRQ: null,\n\t\tcurrentRatioMRQ: null,\n\t\tlongTermDebtEquityPtile: null,\n\t\ttotalDebtEquityPtile: null,\n\t\tinterestCoveragePtile: null,\n\t\tquickRatioPtile: null,\n\t\tcurrentRatioPtile: null\n\n\t},\n\tshareRelated: {\n\t\tmarketCapitalization: null,\n\t\tsharesOutstanding: null,\n\t\tfloat: null,\n\t\tmarketCapitalizationPtile: null,\n\t\tshareOutstandingPtile: null,\n\t\tfloatPtile: null,\n\t\tcurrency: null\n\t},\n\tmanagementEffectiveness: {\n\t\treturnOnAssets: null,\n\t\treturnOnInvestments: null,\n\t\treturnOnEquity: null,\n\t\treturnOnAssetsPtile: null,\n\t\treturnOnInvestmentsPtile: null,\n\t\treturnOnEquityPtile: null\n\t},\n\tadditionalPerShare: {\n\t\tbookValueMRQ: null,\n\t\tcashFlowMRQ: null,\n\t\tcashMRQ: null,\n\t\tcurrency: null\n\t},\n\tdividend: {\n\t\tpayoutRatio: null,\n\t\tfiveYearYieldAvg: null,\n\t\tfiveYearYieldGrowthRate: null,\n\t\tpayoutRatioPtile: null,\n\t\tfiveYearYieldAvgPtile: null,\n\t\tfiveYieldGrowthRatePtile: null\n\t}\n};\n\nconst requestCurrentRatios = state => {\n\treturn Object.assign({}, state, {\n\t\t...INITIAL_STATE,\n\t\tfetchingCurrentRatios: true\n\t});\n};\n\nconst requestEquityClassification = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingEquityClassification: true,\n\t\tequityClassification: {\n\t\t\tsectorName: null,\n\t\t\tindustryName: null\n\t\t}\n\t});\n};\n\nconst receiveCurrentRatios = (state, action) => {\n\tconst { data } = action.response;\n\tconst { ratios } = data;\n\tconst {\n\t\tperShare, growthRates, margins, valuation,\n\t\tfinancialStrength, priceVolume, managementEffectiveness\n\t} = ratios || {};\n\tconst {\n\t\tepsExcludingExtroaordinaryItemsTtm,\n\t\trevenuePerShareTtm,\n\t\tbookValuePerShareTangibleTtm,\n\t\tcashPerShareMrq,\n\t\tepsBasicExcludingExtraordinaryItemsMRQ,\n\t\trevenuePerShareMRQ,\n\t\tcashFlowPerShareAnnMRQ,\n\t\tcurrency\n\t} = perShare || {};\n\tconst {\n\t\tepsPercentChangeMrq1YearAgo,\n\t\tepsPercentChangeTtmOverTtm,\n\t\trevenuePercentChangeTtmOverTtm,\n\t\tnetProfitMargin5YearGrowth,\n\t\trevenuePercentChangePriorQMRQ,\n\t\tdividendGrowth5Year\n\t} = growthRates || {};\n\tconst {\n\t\tgrossMarginTtm,\n\t\tmarginBeforeTaxTtm,\n\t\tmarginBeforeTax5YearAverage,\n\t\toperatingMarginTtm,\n\t\toperatingMargin5YearAverage,\n\t\tnetProfitPercentTtm,\n\t\tnetMargin5YearAverage,\n\t\ttaxRateTtm,\n\t\ttaxRate5YearAverage\n\t} = margins || {};\n\n\tconst {\n\t\tpeExcludingExtraordinaryItemsTtm,\n\t\tpriceToCashFlowTtm,\n\t\tpriceToFreeCashFlowPerShareTtm,\n\t\tpriceToTangibleBookTtm,\n\t\tpriceToSalesTtm,\n\t\tdividendYield5YearAverage\n\t} = valuation || {};\n\n\tconst {\n\t\tlongTermDebtToEquityMrfy,\n\t\ttotalDebtToTotalEquityMrq,\n\t\tquickRatioMrfy,\n\t\tcurrentRatioMrfy,\n\t\tpayoutRatioTtm,\n\t\tnetInterestCoverageMRQ\n\t} = financialStrength || {};\n\n\tconst {\n\t\tmarketCap,\n\t\tsharesOutstandingMillions,\n\t\tsharesTotalFloatMillions\n\t} = priceVolume || {};\n\n\tconst {\n\t\treturnOnAverageAssetsTtm,\n\t\treturnOnInvestmentTtm,\n\t\treturnOnAverageEquityTtm\n\t} = managementEffectiveness || {};\n\n\treturn Object.assign({}, state, {\n\t\tfetchingCurrentRatios: false,\n\t\tdata: Object.assign({}, action.response.data),\n\t\teps: Object.assign({}, {\n\t\t\tearningsPerShareMRQ: epsBasicExcludingExtraordinaryItemsMRQ,\n\t\t\tearningsPerShareTTM: epsExcludingExtroaordinaryItemsTtm,\n\t\t\tearningsPerShareMRQ1Yr: epsPercentChangeMrq1YearAgo,\n\t\t\tearningsPerShareTTM1Yr: epsPercentChangeTtmOverTtm,\n\t\t\tcurrency\n\t\t}),\n\t\trevenue: Object.assign({}, {\n\t\t\trevenuePerShareMRQ,\n\t\t\trevenuePerShareTTM: revenuePerShareTtm,\n\t\t\trevenueGrowthMRQ: revenuePercentChangePriorQMRQ,\n\t\t\trevenueGrowthTTM: revenuePercentChangeTtmOverTtm,\n\t\t\tcurrency\n\t\t}),\n\t\tprofitability: Object.assign({}, state.profitability, {\n\t\t\tgrossMarginTTM: grossMarginTtm,\n\t\t\tpreTaxMarginTTM: marginBeforeTaxTtm,\n\t\t\tfiveYrPreTaxMarginTTM: marginBeforeTax5YearAverage,\n\t\t\toperatingMarginTTM: operatingMarginTtm,\n\t\t\tfiveYrOperatingMarginTTM: operatingMargin5YearAverage,\n\t\t\tprofitMarginTTM: netProfitPercentTtm,\n\t\t\tfiveYearAvgNetProfitMarginTTM: netMargin5YearAverage,\n\t\t\tfiveYearAvgNetProfitMarginGrowthTTM: netProfitMargin5YearGrowth,\n\t\t\teffectiveTaxRateTTM: taxRateTtm,\n\t\t\tfiveYearAvgEffectiveTaxRateTTM: taxRate5YearAverage\n\t\t}),\n\t\tvaluation: Object.assign({}, state.valuation, {\n\t\t\tpriceEarningsTTM: peExcludingExtraordinaryItemsTtm,\n\t\t\tpriceCashFlowTTM: priceToCashFlowTtm,\n\t\t\tpriceFreeCashFlowTTM: priceToFreeCashFlowPerShareTtm,\n\t\t\tpriceTangibleBookMRQ: priceToTangibleBookTtm,\n\t\t\tpriceSalesTTM: priceToSalesTtm\n\t\t}),\n\t\tfinancialStrength: Object.assign({}, state.financialStrength, {\n\t\t\tlongTermDebtEquityMRQ: longTermDebtToEquityMrfy,\n\t\t\ttotalDebtEquityMRQ: totalDebtToTotalEquityMrq,\n\t\t\tinterestCoverageMRQ: netInterestCoverageMRQ,\n\t\t\tquickRatioMRQ: quickRatioMrfy,\n\t\t\tcurrentRatioMRQ: currentRatioMrfy\n\t\t}),\n\t\tshareRelated: Object.assign({}, state.shareRelated, {\n\t\t\tmarketCapitalization: marketCap,\n\t\t\tsharesOutstanding: sharesOutstandingMillions,\n\t\t\tfloat: sharesTotalFloatMillions,\n\t\t\tcurrency\n\t\t}),\n\t\tmanagementEffectiveness: Object.assign({}, state.managementEffectiveness, {\n\t\t\treturnOnAssets: returnOnAverageAssetsTtm,\n\t\t\treturnOnInvestments: returnOnInvestmentTtm,\n\t\t\treturnOnEquity: returnOnAverageEquityTtm\n\t\t}),\n\t\tadditionalPerShare: Object.assign({}, {\n\t\t\tbookValueMRQ: bookValuePerShareTangibleTtm,\n\t\t\tcashFlowMRQ: cashFlowPerShareAnnMRQ,\n\t\t\tcashMRQ: cashPerShareMrq,\n\t\t\tcurrency\n\t\t}),\n\t\tdividend: Object.assign({}, state.dividend, {\n\t\t\tpayoutRatio: payoutRatioTtm,\n\t\t\tfiveYearYieldAvg: dividendYield5YearAverage,\n\t\t\tfiveYearYieldGrowthRate: dividendGrowth5Year\n\t\t})\n\t});\n};\n\nconst clearCurrentRatios = state => {\n\treturn Object.assign({}, state, {\n\t\t...INITIAL_STATE,\n\t\tfetchingCurrentRatios: false\n\t});\n};\n\nconst receiveCurrentRatiosPercentiles = (state, action) => {\n\tconst { data } = action.response;\n\tconst { listingPercentiles } = data;\n\n\tconst {\n\t\tmargins,\n\t\tpriceVolume,\n\t\tgrowthRates,\n\t\tfinancialStrength,\n\t\tvaluation,\n\t\tmanagementEffectiveness\n\t} = listingPercentiles;\n\n\tconst {\n\t\ttaxRateTtmPtile,\n\t\ttaxRate5YPtile,\n\t\tpretaxMarginTtmPtile,\n\t\tgrossMarginPtile,\n\t\toperatingMarginPtile,\n\t\toperMargin5YPtile,\n\t\tprofitMarginPtile,\n\t\tprofitMargin5YPtile\n\t} = margins;\n\n\tconst {\n\t\tsharesTotalFloatPtile,\n\t\tsharesOutPtile,\n\t\tmarketCapPtile\n\t} = priceVolume;\n\n\tconst {\n\t\tnetProfitMarginGrowth5YPtile,\n\t\tdividendGrowth5YrPtile\n\t} = growthRates;\n\n\tconst {\n\t\tquickRatioMrqPtile,\n\t\tcurrentRatioMrqPtile,\n\t\tpayOutRatioTtmPtile,\n\t\tcebtLt2EquityMrqPtile,\n\t\tcebtTotal2EquityTotalMrqPtile\n\t} = financialStrength;\n\n\tconst {\n\t\tdivYield5YrAvgPtile,\n\t\tpEexclXItemsTtmPtile,\n\t\tprice2BookvTangMrqPtile,\n\t\tprice2CashFlowTtmPtile,\n\t\tprice2CashFlowFreeTtmPtile,\n\t\tprice2SalesTtmPtile\n\t} = valuation;\n\n\tconst {\n\t\troAssetsTtmPtile,\n\t\troEquityTtmPtile,\n\t\troInvestmentTtmPtile\n\t} = managementEffectiveness;\n\n\tconst {\n\t\tprofitability, shareRelated, dividend\n\t} = state;\n\n\treturn Object.assign({}, state, {\n\t\tprofitability: Object.assign({}, profitability, {\n\t\t\tgrossMarginPtile,\n\t\t\tpreTaxMarginPtile: pretaxMarginTtmPtile,\n\t\t\toperatingMarginPtile,\n\t\t\toperatingMargin5YPtile: operMargin5YPtile,\n\t\t\tprofitMarginPtile,\n\t\t\tprofitMargin5YPtile,\n\t\t\tnetProfitMarginGrowth5YPtile,\n\t\t\teffectiveTaxRatePtile: taxRateTtmPtile,\n\t\t\teffectiveTaxRate5YPtile: taxRate5YPtile\n\n\t\t}),\n\t\tmanagementEffectiveness: Object.assign({}, state.managementEffectiveness, {\n\t\t\treturnOnAssetsPtile: roAssetsTtmPtile,\n\t\t\treturnOnInvestmentsPtile: roInvestmentTtmPtile,\n\t\t\treturnOnEquityPtile: roEquityTtmPtile\n\t\t}),\n\t\tvaluation: Object.assign({}, state.valuation, {\n\t\t\tpriceEarningsPtile: pEexclXItemsTtmPtile,\n\t\t\tpriceTangibleBookPtile: price2BookvTangMrqPtile,\n\t\t\tpriceCashFlowPtile: price2CashFlowTtmPtile,\n\t\t\tpriceFreeCashFlowPtile: price2CashFlowFreeTtmPtile,\n\t\t\tpriceSalesPtile: price2SalesTtmPtile\n\n\t\t}),\n\t\tfinancialStrength: Object.assign({}, state.financialStrength, {\n\t\t\tlongTermDebtEquityPtile: cebtLt2EquityMrqPtile,\n\t\t\ttotalDebtEquityPtile: cebtTotal2EquityTotalMrqPtile,\n\t\t\tinterestCoveragePtile: null,\n\t\t\tquickRatioPtile: quickRatioMrqPtile,\n\t\t\tcurrentRatioPtile: currentRatioMrqPtile\n\t\t}),\n\t\tshareRelated: Object.assign({}, shareRelated, {\n\t\t\tmarketCapitalizationPtile: marketCapPtile,\n\t\t\tshareOutstandingPtile: sharesOutPtile,\n\t\t\tfloatPtile: sharesTotalFloatPtile\n\t\t}),\n\t\tdividend: Object.assign({}, dividend, {\n\t\t\tpayoutRatioPtile: payOutRatioTtmPtile,\n\t\t\tfiveYearYieldAvgPtile: divYield5YrAvgPtile,\n\t\t\tfiveYieldGrowthRatePtile: dividendGrowth5YrPtile\n\t\t})\n\t});\n};\n\nconst receiveEquityClassification = (state, action) => {\n\tconst { equityClassification } = state;\n\tconst { data } = action.response;\n\tconst { equities } = data || null;\n\treturn Object.assign({}, state, {\n\t\tequityClassification: Object.assign({}, equityClassification, {\n\t\t\tsectorName: equities.sectorName,\n\t\t\tindustryName: equities.industryName\n\t\t})\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_REQUEST_CURRENTRATIOS]: requestCurrentRatios,\n\t[Types.API_RECEIVE_CURRENTRATIOS]: receiveCurrentRatios,\n\t[Types.API_CLEAR_CURRENTRATIOS]: clearCurrentRatios,\n\t[Types.API_HANDLE_CURRENTRATIOS_LOADER]: handleLoader,\n\t[Types.API_RECEIVE_CURRENTRATIOS_PERCENTILE]: receiveCurrentRatiosPercentiles,\n\t[Types.API_RECEIVE_EQUITY_CLASSIFICATION]: receiveEquityClassification,\n\t[Types.API_REQUEST_EQUITY_CLASSIFICATION]: requestEquityClassification\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","import { createReducer } from 'reduxsauce';\nimport Types from 'Actions/Types';\n\nexport const INITIAL_STATE = {\n\tratingsSummary: {\n\t\tstrongBuyRecomendations: null,\n\t\tbuyRecomendations: null,\n\t\tholdRecomendations: null,\n\t\tunderperformRecomendations: null,\n\t\tsellRecomendations: null\n\t},\n\tanalystOpinions: {\n\t\tcurrentConsensusRec: null,\n\t\tpreviousConsensusRec: null,\n\t\tcurrentRating: null,\n\t\tratingDate: null,\n\t\ttotalOpinions: null,\n\t\ttotalAnalysts: null\n\t},\n\tannouncements: {},\n\tfetchingStockEarnings: false,\n\tfetchingStockEarningsAnnouncements: false\n};\n\nconst requestStockEarnings = state => {\n\treturn { ...state, fetchingStockEarnings: true };\n};\n\nconst receiveStockEarnings = (state, action) => {\n\tconst { ratingsSummary, analystOpinions } = action.response.data;\n\treturn {\n\t\t...state,\n\t\tfetchingStockEarnings: false,\n\t\tratingsSummary,\n\t\tanalystOpinions\n\t};\n};\n\nconst requestStockEarningsAnnouncements = state => {\n\treturn {\n\t\t...state,\n\t\tannouncements: {},\n\t\tfetchingStockEarningsAnnouncements: true\n\t};\n};\n\nconst receiveStockEarningsAnnouncements = (state, action) => {\n\treturn {\n\t\t...state,\n\t\tfetchingStockEarnings: false,\n\t\tannouncements: action.response.data\n\t};\n};\n\nconst handleLoader = (state, action) => {\n\treturn { ...state, [action.fetchName]: false };\n};\n\nconst ACTION_HANDLERS = {\n\t[Types.API_CIBC_REQUEST_STOCK_EARNINGS]: requestStockEarnings,\n\t[Types.API_CIBC_RECEIVE_STOCK_EARNINGS]: receiveStockEarnings,\n\t[Types.API_CIBC_REQUEST_STOCK_EARNINGS_ANNOUNCEMENTS]: requestStockEarningsAnnouncements,\n\t[Types.API_CIBC_RECEIVE_STOCK_EARNINGS_ANNOUNCEMENTS]: receiveStockEarningsAnnouncements,\n\t[Types.API_CIBC_HANDLE_STOCK_EARNINGS_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable no-param-reassign */\n/* eslint-disable no-lonely-if */\n/* eslint-disable indent */\n/* eslint-disable prefer-object-spread */\n\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingEquitiesGeneralInfo: false,\n\tfetchingEquitiesOfficerInfo: false,\n\tgeneralInfo: {},\n\tofficerInfo: []\n};\n\nconst requestEquityGeneralInfo = state => {\n\treturn Object.assign({}, state, {\n\t\tgeneralInfo: {},\n\t\tfetchingEquitiesGeneralInfo: true\n\t});\n};\n\nconst clearEquityGeneralInfo = state => {\n\treturn Object.assign({}, state, {\n\t\tgeneralInfo: {},\n\t\tfetchingEquitiesGeneralInfo: false\n\t});\n};\n\nconst receiveEquityGeneralInfo = (state, action) => {\n\tconst { response } = action;\n\tconst { data } = response;\n\tlet companyOverviewFull;\n\tlet truncTextOverview;\n\tif (data && data.companyText && data.companyText.length) {\n\t\tconst companyText = Object.values(data.companyText);\n\t\tcompanyText.forEach(descriptions => {\n\t\t\tif (descriptions.type === 'Business Summary') {\n\t\t\t\tcompanyOverviewFull = descriptions.textBody;\n\t\t\t\tif (descriptions.textBody && descriptions.textBody.length > 470) {\n\t\t\t\t\ttruncTextOverview = `${descriptions.textBody.slice(0, 470)} ...`;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\tdata.companyOverviewFull = companyOverviewFull;\n\tdata.truncTextOverview = truncTextOverview;\n\treturn Object.assign({}, state, {\n\t\tfetchingEquitiesGeneralInfo: false,\n\t\tgeneralInfo: Object.assign({}, action.response.data)\n\t});\n};\n\nconst requestOfficerInfo = state => {\n\treturn Object.assign({}, state, {\n\t\tofficerInfo: {},\n\t\tfetchingEquitiesOfficerInfo: true\n\t});\n};\n\nconst receiveOfficerInfo = (state, action) => {\n\tconst { response } = action;\n\tconst { data } = response;\n\tconst info = [];\n\tif (action.response.data) {\n\t\tif (data.items && data.items.length) {\n\t\t\tlet officers = data.items;\n\t\t\tif (data.items && data.items.length > 5) {\n\t\t\t\tofficers = data.items.slice(0, 5);\n\t\t\t}\n\t\t\t// eslint-disable-next-line no-restricted-syntax\n\t\t\tfor (const officer of officers) {\n\t\t\t\tconst { age, name } = officer || {};\n\t\t\t\tconst { first, middle, last } = name || {};\n\t\t\t\tconst obj = {};\n\t\t\t\tlet title = null;\n\t\t\t\tconst nameFormatted = `${first} ${middle} ${last}`;\n\t\t\t\tconst since = officer.dateStartOfficer.year || null;\n\t\t\t\tif (officer.titles.length) {\n\t\t\t\t\ttitle = officer.titles[0].long;\n\t\t\t\t}\n\t\t\t\tobj.title = title;\n\t\t\t\tobj.name = nameFormatted;\n\t\t\t\tobj.since = since;\n\t\t\t\tobj.age = age;\n\t\t\t\tinfo.push(obj);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingEquitiesOfficerInfo: false,\n\t\tofficerInfo: info\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_REQUEST_REUTERS_EQUITIES_INFO]: requestEquityGeneralInfo,\n\t[Types.API_CLEAR_REUTERS_EQUITIES_INFO]: clearEquityGeneralInfo,\n\t[Types.API_RECEIVE_REUTERS_EQUITIES_INFO]: receiveEquityGeneralInfo,\n\t[Types.API_RECEIVE_OFFICER_INFO]: receiveOfficerInfo,\n\t[Types.API_REQUEST_OFFICER_INFO]: requestOfficerInfo,\n\t[Types.API_HANDLE_REUTERS_EQUITIES_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","import { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingStockEarningsChart: false,\n\tchartData: {}\n};\n\nconst requestStockEarningsChart = state => {\n\treturn { ...state, fetchingStockEarningsChart: true };\n};\n\nconst receiveStockEarningsChart = (state, action) => {\n\treturn {\n\t\t...state,\n\t\tfetchingStockEarningsChart: false,\n\t\tchartData: action.response.data\n\t};\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn { ...state, [action.fetchName]: false };\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_CIBC_RECEIVE_STOCK_EARNINGS_CHART]: receiveStockEarningsChart,\n\t[Types.API_CIBC_REQUEST_STOCK_EARNINGS_CHART]: requestStockEarningsChart,\n\t[Types.API_CIBC_HANDLE_TRAILING_RETURNS_CHART_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable no-param-reassign */\n/* eslint-disable no-lonely-if */\n/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\n\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingFinancials: false,\n\tfinancialsData: []\n};\n\nconst requestFinancials = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingFinancials: true,\n\t\tfinancialsData: []\n\t});\n};\n\nconst orderKeys = data => {\n\tif (data) {\n\t\tconst keys = Object.keys(data);\n\t\tconst orderedKeys = keys.map(key => {\n\t\t\treturn { key, order: data[key].order };\n\t\t}).sort((a, b) => {\n\t\t\treturn a.order - b.order;\n\t\t}).map(key => {\n\t\t\treturn key.key;\n\t\t});\n\n\t\treturn orderedKeys;\n\t}\n\treturn [];\n};\n\nconst receiveFinancials = (state, action) => {\n\tlet data = [];\n\tif (action.response.data) {\n\t\tdata = action.response.data;\n\n\t\t// Takes out the date field, then filters and orders all the data\n\t\t// So that it's ordered in a logical, and easy to read order\n\t\tconst tempData = { ...data };\n\t\tdelete tempData.date;\n\t\tconst tempDataNoDate = {};\n\t\tObject.keys(tempData).forEach(key => {\n\t\t\tObject.assign(tempDataNoDate, tempData[key]);\n\t\t});\n\t\tdata.orderedKeys = orderKeys(tempDataNoDate);\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingFinancials: false,\n\t\tfinancialsData: data\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_CIBC_REQUEST_FINANCIALS]: requestFinancials,\n\t[Types.API_CIBC_RECEIVE_FINANCIALS]: receiveFinancials,\n\t[Types.API_HANDLE_FINANCIALS_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingFundData: false,\n\tsnapshotData: {},\n\tperformanceData: {},\n\tportfolioData: {},\n\tprospectusData: {}\n};\n\nconst requestFundSnapshotData = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingFundData: true,\n\t\tsnapshotData: {}\n\t});\n};\n\nconst clearFundSnapshotData = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingFundData: false,\n\t\tsnapshotData: {}\n\t});\n};\n\nconst receiveFundSnapshotData = (state, action) => {\n\tconst { data } = action.response;\n\treturn Object.assign({}, state, {\n\t\tfetchingFundData: false,\n\t\tsnapshotData: Object.assign({}, data)\n\t});\n};\n\nconst receiveFundSnapshotDataFail = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingFundData: false,\n\t\tsnapshotData: {}\n\t});\n};\n\nconst requestFundPerformanceData = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingFundData: true,\n\t\tperformanceData: {}\n\t});\n};\n\nconst receiveFundPerformanceData = (state, action) => {\n\tconst { data } = action.response;\n\treturn Object.assign({}, state, {\n\t\tfetchingFundData: false,\n\t\tperformanceData: Object.assign({}, data)\n\t});\n};\n\nconst receiveFundPerformanceDataFail = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingFundData: false,\n\t\tperformanceData: {}\n\t});\n};\n\nconst clearFundPerformanceData = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingFundData: false,\n\t\tperformanceData: {}\n\t});\n};\n\nconst reuqestFundProspectusData = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingFundProspectusData: true,\n\t\tprospectusData: {}\n\t});\n};\n\nconst receiveFundProspectusData = (state, action) => {\n\tconst { data } = action.response;\n\n\treturn Object.assign({}, state, {\n\t\tfetchingFundProspectusData: false,\n\t\tprospectusData: Object.assign({}, data)\n\t});\n};\n\nconst requestFundPortfolioData = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingFundData: true,\n\t\tportfolioData: {}\n\t});\n};\n\nconst clearFundPortfolioData = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingFundData: false,\n\t\tportfolioData: {}\n\t});\n};\n\nconst receiveFundPortfolioData = (state, action) => {\n\tconst { data } = action.response;\n\treturn Object.assign({}, state, {\n\t\tfetchingFundData: false,\n\t\tportfolioData: Object.assign({}, data)\n\t});\n};\n\nconst receiveFundPortfolioDataFail = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingFundData: false,\n\t\tportfolioData: {}\n\t});\n};\n\nconst requestFundLipperLeaderData = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingFundData: true,\n\t\tlipperLeaderData: {}\n\t});\n};\n\nconst clearFundLipperLeaderData = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingFundData: false,\n\t\tlipperLeaderData: {}\n\t});\n};\n\nconst receiveFundLipperLeaderData = (state, action) => {\n\tconst { data } = action.response;\n\treturn Object.assign({}, state, {\n\t\tfetchingFundData: false,\n\t\tlipperLeaderData: Object.assign({}, data)\n\t});\n};\n\nconst receiveFundLipperLeaderDataFail = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingFundData: false,\n\t\tlipperLeaderData: {}\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_CIBC_HANDLE_FUND_DATA_LOADER]: handleLoader,\n\t[Types.API_CIBC_REQUEST_FUND_SNAPSHOT_DATA]: requestFundSnapshotData,\n\t[Types.CLEAR_FUND_SNAPSHOT_DATA]: clearFundSnapshotData,\n\t[Types.API_CIBC_RECEIVE_FUND_SNAPSHOT_DATA]: receiveFundSnapshotData,\n\t[Types.API_CIBC_RECEIVE_FUND_SNAPSHOT_DATA_FAIL]: receiveFundSnapshotDataFail,\n\t[Types.API_CIBC_REQUEST_FUND_PERFORMANCE_DATA]: requestFundPerformanceData,\n\t[Types.API_CIBC_RECEIVE_FUND_PERFORMANCE_DATA]: receiveFundPerformanceData,\n\t[Types.API_CIBC_RECEIVE_FUND_PERFORMANCE_DATA_FAIL]: receiveFundPerformanceDataFail,\n\t[Types.CLEAR_FUND_PERFORMANCE_DATA]: clearFundPerformanceData,\n\t[Types.API_CIBC_REQUEST_FUND_PORTFOLIO_DATA]: requestFundPortfolioData,\n\t[Types.CLEAR_FUND_PORTFOLIO_DATA]: clearFundPortfolioData,\n\t[Types.API_CIBC_RECEIVE_FUND_PORTFOLIO_DATA]: receiveFundPortfolioData,\n\t[Types.API_CIBC_RECEIVE_FUND_PORTFOLIO_DATA_FAIL]: receiveFundPortfolioDataFail,\n\t[Types.API_CIBC_REQUEST_FUND_LIPPER_LEADER_DATA]: requestFundLipperLeaderData,\n\t[Types.CLEAR_FUND_LIPPER_LEADER_DATA]: clearFundLipperLeaderData,\n\t[Types.API_CIBC_RECEIVE_FUND_LIPPER_LEADER_DATA]: receiveFundLipperLeaderData,\n\t[Types.API_CIBC_RECEIVE_FUND_LIPPER_LEADER_DATA_FAIL]: receiveFundLipperLeaderDataFail,\n\t[Types.API_CIBC_REQUEST_FUND_PROSPECTUS_DATA]: reuqestFundProspectusData,\n\t[Types.API_CIBC_RECEIVE_FUND_PROSPECTUS_DATA]: receiveFundProspectusData\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","import { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingFundBasicsLIpper: false,\n\tfetchingFundYieldLipper: false,\n\tfetchingFundLipperLeaders: false,\n\tfetchingFundLipperAssetAllocations: false,\n\tfetchingFundPerformanceLIpper: false,\n\tvenueXid: null,\n\tfundBasics: {},\n\tfundYield: {},\n\tfundLipperLeaders: {},\n\tfundLipperAssetAllocations: {},\n\tperformance: {}\n};\n\nconst requestFundBasics = state => {\n\treturn {\n\t\t...state,\n\t\tfundBasics: {},\n\t\tvenueXid: null,\n\t\tfetchingFundBasicsLIpper: true\n\t};\n};\n\nconst requestFundYield = state => {\n\treturn {\n\t\t...state,\n\t\tfundYield: {},\n\t\tfetchingFundYieldLipper: true\n\t};\n};\n\nconst requestFundLipperLeaders = state => {\n\treturn {\n\t\t...state,\n\t\tfundLipperLeaders: {},\n\t\tfetchingFundLipperLeaders: true\n\t};\n};\n\nconst requestFundLipperAssetAllocations = state => {\n\treturn {\n\t\t...state,\n\t\tfundLipperAssetAllocations: {},\n\t\tfetchingFundLipperAssetAllocations: true\n\t};\n};\n\nconst receiveFundBasics = (state, action) => {\n\tlet data = {};\n\tif (action.response.data) {\n\t\tdata = action.response.data;\n\t}\n\n\treturn {\n\t\t...state,\n\t\tfetchingFundBasicsLIpper: false,\n\t\tvenueXid: action.xid,\n\t\tfundBasics: data\n\t};\n};\n\nconst requestFundPerformance = state => {\n\treturn {\n\t\t...state,\n\t\tperformance: {},\n\t\tvenueXid: null,\n\t\tfetchingFundPerformanceLIpper: true\n\t};\n};\n\nconst receiveFundPerformance = (state, action) => {\n\tlet data = {};\n\tif (action.response.data) {\n\t\tdata = action.response.data;\n\t\tif (action.response.data.performance) {\n\t\t\tdata = action.response.data.performance;\n\t\t}\n\t}\n\n\treturn {\n\t\t...state,\n\t\tfetchingFundPerformanceLIpper: false,\n\t\tvenueXid: action.xid,\n\t\tperformance: data\n\t};\n};\n\nconst clearPerformanceData = state => {\n\treturn {\n\t\t...state,\n\t\tperformance: {}\n\t};\n};\n\nconst receiveFundYield = (state, action) => {\n\treturn {\n\t\t...state,\n\t\tfetchingFundYieldLipper: false,\n\t\tfundYield: action.response.data\n\t};\n};\n\nconst receiveFundLipperLeaders = (state, action) => {\n\treturn {\n\t\t...state,\n\t\tfetchingFundLipperLeaders: false,\n\t\tfundLipperLeaders: action.response.data\n\t};\n};\n\nconst clearLipperLeaders = state => {\n\treturn {\n\t\t...state,\n\t\tfundLipperLeaders: {}\n\t};\n};\n\nconst receiveFundLipperAssetAllocations = (state, action) => {\n\treturn {\n\t\t...state,\n\t\tfetchingFundLipperAssetAllocations: false,\n\t\tfundLipperAssetAllocations: action.response.data\n\t};\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn { ...state, [action.fetchName]: false };\n};\n\nconst ACTION_HANDLERS = {\n\t[Types.API_REQUEST_FUND_BASIC_LIPPER]: requestFundBasics,\n\t[Types.API_RECEIVE_FUND_BASIC_LIPPER]: receiveFundBasics,\n\t[Types.API_REQUEST_FUND_YIELD_LIPPER]: requestFundYield,\n\t[Types.API_RECEIVE_FUND_YIELD_LIPPER]: receiveFundYield,\n\t[Types.API_REQUEST_FUND_LIPPER_LEADERS]: requestFundLipperLeaders,\n\t[Types.API_RECEIVE_FUND_LIPPER_LEADERS]: receiveFundLipperLeaders,\n\t[Types.CLEAR_FUND_LIPPER_LEADERS]: clearLipperLeaders,\n\t[Types.API_REQUEST_FUND_LIPPER_ASSET_ALLOCATIONS]: requestFundLipperAssetAllocations,\n\t[Types.API_RECEIVE_FUND_LIPPER_ASSET_ALLOCATIONS]: receiveFundLipperAssetAllocations,\n\t[Types.API_REQUEST_FUND_PERFORMANCE_LIPPER]: requestFundPerformance,\n\t[Types.API_RECEIVE_FUND_PERFORMANCE_LIPPER]: receiveFundPerformance,\n\t[Types.CLEAR_FUND_PERFORMANCE_LIPPER]: clearPerformanceData,\n\t[Types.API_HANDLE_LIPPER_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable no-use-before-define */\n/* eslint-disable no-undef */\n/* eslint-disable no-param-reassign */\n/* eslint-disable prefer-object-spread */\nimport lodash from 'lodash';\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nconst INITIAL_STATE = {\n\tcompareEtfSymbols: [],\n\tcompareQuoteList: [],\n\tmorningstarProspectus: [],\n\tcorporateDividends: [],\n\tmorningstarRatings: [],\n\tmorningstarBenchmarks: [],\n\tmorningstarBenchmarkCategory: [],\n\tmorningstarFundAttributes: [],\n\tshareClassData: [],\n\tfundDetails: [],\n\tfundStrategy: [],\n\tportfolioStatisticsData: [],\n\tperformance: [],\n\tannualPerformance: [],\n\triskMeasures: [],\n\tpremiumDiscount: [],\n\tdividendInformation: [],\n\tassetAllocationData: [],\n\tassetsFormatted: [],\n\ttopHoldingsData: [],\n\tgeographicAllocationData: [],\n\tsectorAllocationData: [],\n\tlimit: 4\n};\n\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\nconst requestComparelistQuotes = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingComparelistQuoteData: true\n\t});\n};\n\nconst requestMorningstarProspectusFees = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingCompareMorningstarProspectusFees: true\n\t});\n};\n\nconst receiveMorningstarProspectusFees = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingCompareMorningstarProspectusFees: false,\n\t\tmorningstarProspectus: [...state.morningstarProspectus, action.response.data]\n\t});\n};\n\nconst requestCorporateDividends = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingCompareCorporateDividends: true\n\t});\n};\n\nconst receiveCorporateDividends = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingCompareCorporateDividends: false,\n\t\tcorporateDividends: [...state.corporateDividends, action.response.data]\n\t});\n};\n\nconst requestMorningstarRatings = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingCompareMorningstarRatings: true\n\t});\n};\n\nconst receiveMorningstarRatings = (state, action) => {\n\tconst { data } = action.response;\n\treturn Object.assign({}, state, {\n\t\tfetchingCompareMorningstarRatings: false,\n\t\tmorningstarRatings: data ? [...state.morningstarRatings, data] : state.morningstarRatings\n\t});\n};\n\nconst requestMorningstarBenchmarks = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingMorningstarBenchmark: true\n\t});\n};\n\nconst receiveMorningstarBenchmarks = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingMorningstarBenchmark: false,\n\t\tmorningstarBenchmarks: [...state.morningstarBenchmarks, action.response.data.items]\n\t});\n};\n\nconst requestMorningstarBenchmarkCategory = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingManagedFundsBenchmarkCategory: true\n\t});\n};\n\nconst receiveMorningstarBenchmarkCategory = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingManagedFundsBenchmarkCategory: false,\n\t\tmorningstarBenchmarkCategory: [\n\t\t\t...state.morningstarBenchmarkCategory,\n\t\t\taction.response.data.items\n\t\t]\n\t});\n};\n\nconst requestCompareAttributes = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingCompareFundsAttributes: true\n\t});\n};\n\nconst receiveCompareAttributes = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingCompareFundsAttributes: false,\n\t\tmorningstarFundAttributes: [\n\t\t\t...state.morningstarFundAttributes,\n\t\t\taction.response.data\n\t\t]\n\t});\n};\n\nconst requestShareClass = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingCompareShareclassData: true\n\t});\n};\n\nconst receiveShareClass = (state, action) => {\n\tlet premData = {};\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingCompareShareclassData: false,\n\t\tshareClassData: [...state.shareClassData, premData]\n\t});\n};\n\nconst requestCompareFundDetails = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingCompareFundsDetails: true\n\t});\n};\n\nconst receiveCompareFundDetails = (state, action) => {\n\tlet data = [];\n\tif (action.response.data) {\n\t\t// eslint-disable-next-line prefer-destructuring\n\t\tdata = action.response.data[0];\n\t}\n\treturn Object.assign({}, state, {\n\t\tfetchingCompareFundsDetails: false,\n\t\tfundDetails: [\n\t\t\t...state.fundDetails,\n\t\t\tdata\n\t\t]\n\t});\n};\n\nconst requestCompareFundStrategy = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingCompareFundsStrategy: true\n\t});\n};\n\nconst receiveCompareFundStrategy = (state, action) => {\n\tlet data = [];\n\tif (action.response.data) {\n\t\tdata = action.response.data;\n\t}\n\treturn Object.assign({}, state, {\n\t\tfetchingCompareFundsStrategy: false,\n\t\tfundStrategy: [\n\t\t\t...state.fundStrategy,\n\t\t\tdata\n\t\t]\n\t});\n};\n\nconst requestComparePerformance = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingComparePerformance: true\n\t});\n};\n\nconst receiveComparePerformance = (state, action) => {\n\tlet data = [];\n\tif (action.response.data) {\n\t\tdata = action.response.data;\n\t}\n\treturn Object.assign({}, state, {\n\t\tfetchingComparePerformance: false,\n\t\tperformance: [\n\t\t\t...state.performance,\n\t\t\tdata\n\t\t]\n\t});\n};\n\nconst requestCompareAnnualPerformance = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingCompareAnnualPerformance: true\n\t});\n};\n\nconst receiveCompareAnnualPerformance = (state, action) => {\n\tlet data = [];\n\tif (action.response.data) {\n\t\tdata = action.response.data;\n\t}\n\treturn Object.assign({}, state, {\n\t\tfetchingCompareAnnualPerformance: false,\n\t\tannualPerformance: [\n\t\t\t...state.annualPerformance,\n\t\t\tdata\n\t\t]\n\t});\n};\n\nconst requestPortfolioStatistics = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingComparePortfolioStatistics: true\n\t});\n};\n\nconst receivePortfolioStatistics = (state, action) => {\n\tlet premData = {};\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingComparePortfolioStatistics: false,\n\t\tportfolioStatisticsData: [...state.portfolioStatisticsData, premData]\n\t});\n};\n\nconst requestComparePremiumDiscount = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingcomparePremiumDiscount: true\n\t});\n};\n\nconst receiveComparePremiumDiscount = (state, action) => {\n\tlet premData = {};\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingcomparePremiumDiscount: false,\n\t\tpremiumDiscount: [...state.premiumDiscount, premData]\n\t});\n};\n\nconst requestRiskMeasures = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingRiskMeasures: true,\n\t\tbeta: null,\n\t\tvolitility: Object.assign({})\n\t});\n};\n\nconst receiveRiskMeasures = (state, action) => {\n\tlet premData = {};\n\tconst volitility = {};\n\t// eslint-disable-next-line no-unused-vars\n\tlet beta = null;\n\tif (action.response && action.response.data) {\n\t\tpremData = action.response.data;\n\t\tconst {\n\t\t\tfund\n\t\t} = premData || {};\n\t\tconst {\n\t\t\tnav: fundNav,\n\t\t\tasOfDate: asOfDateFund\n\t\t} = fund || {};\n\t\tconst betaValue = fundNav\n\t\t\t&& fundNav.beta\n\t\t\t&& fundNav.beta.primaryIndex\n\t\t\t&& fundNav.beta.primaryIndex[0].value;\n\n\t\tif (betaValue) {\n\t\t\tbeta = betaValue;\n\t\t}\n\n\t\tvolitility.asOfDate = asOfDateFund || asOfDateCategory;\n\n\t\tconst {\n\t\t\trSquared: fundRsquared,\n\t\t\talpha: fundAlpha,\n\t\t\tbeta: fundBeta\n\t\t} = fundNav || {};\n\n\t\tconst mapDataForName = (data, name, saveName, type) => {\n\t\t\tif (data && data[name] && data[name].length) {\n\t\t\t\tdata[name].forEach(item => {\n\t\t\t\t\tif (!volitility[saveName]) {\n\t\t\t\t\t\tvolitility[saveName] = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!volitility[saveName][item.temporalPeriod]) {\n\t\t\t\t\t\tvolitility[saveName][item.temporalPeriod] = {};\n\t\t\t\t\t}\n\n\t\t\t\t\tvolitility[saveName][item.temporalPeriod][type] = item.value;\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\n\t\tmapDataForName(fundNav, 'standardDeviation', 'standardDeviation', 'fund');\n\t\tmapDataForName(fundNav, 'sharpeRatio', 'sharpeRatio', 'fund');\n\t\tmapDataForName(fundRsquared, 'primaryIndex', 'rSquared', 'fund');\n\t\tmapDataForName(fundAlpha, 'primaryIndex', 'alpha', 'fund');\n\t\tmapDataForName(fundBeta, 'primaryIndex', 'beta', 'fund');\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingRiskMeasures: false,\n\t\triskMeasures: [...state.riskMeasures, volitility]\n\t\t// beta\n\t});\n};\n\nconst requestCompareCorporateDividends = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingCompareCorporateDividends: true\n\t});\n};\n\nconst receiveCompareCorporateDividends = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingCompareCorporateDividends: false,\n\t\tdividendInformation: [...state.dividendInformation, action.response.data]\n\t});\n};\n\nconst requestCompareAssetAllocationData = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingCompareAssetAllocationData: true\n\t});\n};\n\nconst receiveCompareAssetAllocationData = (state, action) => {\n\tlet premData = {};\n\tlet formatted = [];\n\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t\tconst { items, categoryAllocation } = premData || {};\n\t\tconst assets = {\n\t\t\tequity: {\n\t\t\t\tname: 'equity',\n\t\t\t\tvalue: 0,\n\t\t\t\tcategoryValue: null\n\t\t\t},\n\t\t\tbonds: {\n\t\t\t\tname: 'bonds',\n\t\t\t\tvalue: 0,\n\t\t\t\tcategoryValue: null\n\t\t\t}\n\t\t};\n\n\t\tif (items && items.length > 0) {\n\t\t\titems.forEach(item => {\n\t\t\t\tif (item.value.net) {\n\t\t\t\t\tif (item.type === 'usstock' || item.type === 'nonusstock') {\n\t\t\t\t\t\tassets.equity.value += item.value.net;\n\t\t\t\t\t} else if (item.type === 'usbond' || item.type === 'nonusbond') {\n\t\t\t\t\t\tassets.bonds.value += item.value.net;\n\t\t\t\t\t} else if (assets[item.type]) {\n\t\t\t\t\t\tassets[item.type].value += item.value.net;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tassets[item.type] = {\n\t\t\t\t\t\t\tname: item.type,\n\t\t\t\t\t\t\tvalue: item.value.net\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tif (categoryAllocation && categoryAllocation.items && categoryAllocation.items.length > 0) {\n\t\t\tconst catItems = categoryAllocation.items;\n\t\t\tcatItems.forEach(catItem => {\n\t\t\t\tif (catItem.value.net) {\n\t\t\t\t\tif (catItem.type === 'usstock' || catItem.type === 'nonusstock') {\n\t\t\t\t\t\tassets.equity.categoryValue += catItem.value.net;\n\t\t\t\t\t} else if (catItem.type === 'usbond' || catItem.type === 'nonusbond') {\n\t\t\t\t\t\tassets.bonds.categoryValue += catItem.value.net;\n\t\t\t\t\t} else if (assets[catItem.type] && assets[catItem.type].categoryValue) {\n\t\t\t\t\t\tassets[catItem.type].categoryValue += catItem.value.net;\n\t\t\t\t\t} else if (assets[catItem.type] && !assets[catItem.type].categoryValue) {\n\t\t\t\t\t\tconst newData = {\n\t\t\t\t\t\t\tname: assets[catItem.type].name,\n\t\t\t\t\t\t\tvalue: assets[catItem.type].value,\n\t\t\t\t\t\t\tcategoryValue: catItem.value.net\n\t\t\t\t\t\t};\n\t\t\t\t\t\tassets[catItem.type] = newData;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tObject.keys(assets).forEach(key => {\n\t\t\tconst item = assets[key];\n\t\t\tif (item.value !== 0) {\n\t\t\t\tformatted.push(item);\n\t\t\t}\n\t\t});\n\n\t\tif (formatted.length > 0) {\n\t\t\tformatted = lodash.orderBy(formatted, ['value'], ['desc']);\n\n\t\t\tformatted = formatted.map(asset => {\n\t\t\t\tasset.isShort = asset.value < 0;\n\t\t\t\tasset.isLeveraged = asset.value > 100;\n\t\t\t\treturn asset;\n\t\t\t});\n\t\t}\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingCompareAssetAllocationData: false,\n\t\tassetAllocationData: [...state.assetAllocationData, premData],\n\t\tassetsFormatted: [...state.assetsFormatted, formatted]\n\t});\n};\n\nconst receiveTopHoldings = (state, action) => {\n\tlet premData = {};\n\tconst holdings = [];\n\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t\tconst { items } = premData || {};\n\n\t\tif (items && items.length > 0) {\n\t\t\titems.forEach(symbol => {\n\t\t\t\tconst {\n\t\t\t\t\tsecurityIdentifiers,\n\t\t\t\t\tshareDetails\n\t\t\t\t} = symbol || {};\n\t\t\t\tconst { name } = securityIdentifiers || {};\n\t\t\t\tconst { weighting } = shareDetails || {};\n\n\t\t\t\tholdings.push({\n\t\t\t\t\tname,\n\t\t\t\t\tvalue: weighting\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingCompareTopHoldings: false,\n\t\ttopHoldingsData: [...state.topHoldingsData, Object.assign([], holdings)]\n\t});\n};\n\nconst requestTopHoldings = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingCompareTopHoldings: true\n\t});\n};\n\nconst requestCompareGeographicAllocation = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingcompareGeographicAllocation: true\n\t});\n};\n\nconst receiveCompareGeographicAllocation = (state, action) => {\n\tlet premData = {};\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingcompareGeographicAllocation: false,\n\t\tgeographicAllocationData: [...state.geographicAllocationData, premData]\n\t});\n};\n\nconst requestCompareSectorAllocation = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingcompareSectorAllocation: true\n\t});\n};\n\nconst receiveCompareSectorAllocation = (state, action) => {\n\tlet premData = {};\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingcompareSectorAllocation: false,\n\t\tsectorAllocationData: [...state.sectorAllocationData, premData]\n\t});\n};\n\nconst receiveComparelistQuotes = (state, action) => {\n\tconst quotesData = action.response.data;\n\tconst { data, error } = action.response.data.quotes[0];\n\n\tif (!error && quotesData && quotesData.quotes && quotesData.quotes.length > 0) {\n\t\tconst quoteDataToMerge = {\n\t\t\tlast: data.lastTrade.last,\n\t\t\tclose: data.lastTrade.close,\n\t\t\tdate: data.lastTrade.date,\n\t\t\thigh: data.lastTrade.high,\n\t\t\tlow: data.lastTrade.low,\n\t\t\topen: data.lastTrade.open === 0 ? null : data.lastTrade.open,\n\t\t\tchange: data.lastTrade.change,\n\t\t\tchgPercentPrev: data.changePercent.today,\n\t\t\tcurrency: data.currency.isoCode,\n\t\t\tbid: data.bid.price,\n\t\t\tbidSize: data.bid.size,\n\t\t\task: data.ask.price,\n\t\t\taskSize: data.ask.size,\n\t\t\tprice52WeekHigh: data.price52Week.high,\n\t\t\tprice52WeekLow: data.price52Week.low,\n\t\t\tvolume: data.volume.last,\n\t\t\tavg10Day: data.volume.average10Day,\n\t\t\tfinancialStatusIndicator: data.financialStatusIndicator\n\t\t};\n\n\t\treturn Object.assign({}, state, {\n\t\t\tcompareQuoteList: [...state.compareQuoteList, quoteDataToMerge]\n\t\t});\n\t}\n\n\treturn state;\n};\n\nconst addSymbolToCompareList = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tcompareEtfSymbols: [...state.compareEtfSymbols, action.symbol]\n\t});\n};\n\nconst removeItemByIndex = (data, index) => {\n\tdata.splice(index, 1);\n\treturn data;\n};\n\nconst deleteSymbolFromCompareList = (state, action) => {\n\tconst { index } = action || -1;\n\treturn Object.assign({}, state, {\n\t\tcompareEtfSymbols: removeItemByIndex(state.compareEtfSymbols, index),\n\t\tcompareQuoteList: removeItemByIndex(state.compareQuoteList, index),\n\t\tmorningstarProspectus: removeItemByIndex(state.morningstarProspectus, index),\n\t\tcorporateDividends: removeItemByIndex(state.corporateDividends, index),\n\t\tmorningstarRatings: removeItemByIndex(state.morningstarRatings, index),\n\t\tmorningstarBenchmarks: removeItemByIndex(state.morningstarBenchmarks, index),\n\t\tmorningstarBenchmarkCategory: removeItemByIndex(state.morningstarBenchmarkCategory, index),\n\t\tmorningstarFundAttributes: removeItemByIndex(state.morningstarFundAttributes, index),\n\t\tshareClassData: removeItemByIndex(state.shareClassData, index),\n\t\tfundDetails: removeItemByIndex(state.fundDetails, index),\n\t\tfundStrategy: removeItemByIndex(state.fundStrategy, index),\n\t\tportfolioStatisticsData: removeItemByIndex(state.portfolioStatisticsData, index),\n\t\tperformance: removeItemByIndex(state.performance, index),\n\t\tannualPerformance: removeItemByIndex(state.annualPerformance, index),\n\t\triskMeasures: removeItemByIndex(state.riskMeasures, index),\n\t\tpremiumDiscount: removeItemByIndex(state.premiumDiscount, index),\n\t\tdividendInformation: removeItemByIndex(state.dividendInformation, index),\n\t\tassetAllocationData: removeItemByIndex(state.assetAllocationData, index),\n\t\tassetsFormatted: removeItemByIndex(state.assetsFormatted, index),\n\t\ttopHoldingsData: removeItemByIndex(state.topHoldingsData, index),\n\t\tgeographicAllocationData: removeItemByIndex(state.geographicAllocationData, index),\n\t\tsectorAllocationData: removeItemByIndex(state.sectorAllocationData, index)\n\t});\n};\n\nconst resetCompareList = () => {\n\treturn Object.assign({}, INITIAL_STATE);\n};\n\nconst ACTION_HANDLERS = {\n\t[Types.API_ADD_SYMBOLS_TO_COMPARE_LIST]: addSymbolToCompareList,\n\t[Types.API_HANDLE_COMPARELIST_LOADER]: handleLoader,\n\t[Types.API_RECEIVE_COMPARE_LIST_QUOTE]: receiveComparelistQuotes,\n\t[Types.API_REQUEST_COMPARE_LIST_QUOTE]: requestComparelistQuotes,\n\t[Types.API_REQUEST_COMPARE_MORNINGSTAR_PROSPECTUS]: requestMorningstarProspectusFees,\n\t[Types.API_RECEIVE_COMPARE_MORNINGSTAR_PROSPECTUS]: receiveMorningstarProspectusFees,\n\t[Types.API_REQUEST_COMPARE_CORPORATE_DIVIDEND]: requestCorporateDividends,\n\t[Types.API_RECEIVE_COMPARE_CORPORATE_DIVIDEND]: receiveCorporateDividends,\n\t[Types.API_REQUEST_COMPARE_MORNINGSTAR_RATINGS]: requestMorningstarRatings,\n\t[Types.API_RECEIVE_COMPARE_MORNINGSTAR_RATINGS]: receiveMorningstarRatings,\n\t[Types.API_REQUEST_COMPARE_MORNINGSTAR_BENCHMARKS]: requestMorningstarBenchmarks,\n\t[Types.API_RECEIVE_COMPARE_MORNINGSTAR_BENCHMARKS]: receiveMorningstarBenchmarks,\n\t[Types.API_REQUEST_COMPARE_MORNINGSTAR_BENCHMARK_CATEGORY]: requestMorningstarBenchmarkCategory,\n\t[Types.API_RECEIVE_COMPARE_MORNINGSTAR_BENCHMARK_CATEGORY]: receiveMorningstarBenchmarkCategory,\n\t[Types.API_REQUEST_COMPARE_ATTRIBUTES]: requestCompareAttributes,\n\t[Types.API_RECEIVE_COMPARE_ATTRIBUTES]: receiveCompareAttributes,\n\t[Types.API_REQUEST_COMPARE_SHARECLASS_DATA]: requestShareClass,\n\t[Types.API_RECEIVE_COMPARE_SHARECLASS_DATA]: receiveShareClass,\n\t[Types.API_CIBC_REQUEST_COMPARE_FUND_DETAILS]: requestCompareFundDetails,\n\t[Types.API_CIBC_RECEIVE_COMPARE_FUND_DETAILS]: receiveCompareFundDetails,\n\t[Types.API_REQUEST_COMPARE_FUND_STRATEGY]: requestCompareFundStrategy,\n\t[Types.API_RECEIVE_COMPARE_FUND_STRATEGY]: receiveCompareFundStrategy,\n\t[Types.API_REQUEST_COMPARE_PORTFOLIO_STATS]: requestPortfolioStatistics,\n\t[Types.API_RECEIVE_COMPARE_PORTFOLIO_STATS]: receivePortfolioStatistics,\n\t[Types.API_REQUEST_COMPARE_PERFORMANCE]: requestComparePerformance,\n\t[Types.API_RECEIVE_COMPARE_PERFORMANCE]: receiveComparePerformance,\n\t[Types.API_REQUEST_COMPARE_ANNUAL_PERFORMANCE]: requestCompareAnnualPerformance,\n\t[Types.API_RECEIVE_COMPARE_ANNUAL_PERFORMANCE]: receiveCompareAnnualPerformance,\n\t[Types.API_REQUEST_COMPARE_RISK_MEASURES]: requestRiskMeasures,\n\t[Types.API_RECEIVE_COMPARE_RISK_MEASURES]: receiveRiskMeasures,\n\t[Types.API_REQUEST_COMPARE_PREMIUM_DISCOUNT]: requestComparePremiumDiscount,\n\t[Types.API_RECEIVE_COMPARE_PREMIUM_DISCOUNT]: receiveComparePremiumDiscount,\n\t[Types.API_REQUEST_COMPARE_DIVIDEND_INFORMATION]: requestCompareCorporateDividends,\n\t[Types.API_RECEIVE_COMPARE_DIVIDEND_INFORMATION]: receiveCompareCorporateDividends,\n\t[Types.API_REQUEST_COMPARE_ASSET_ALLOCATION]: requestCompareAssetAllocationData,\n\t[Types.API_RECEIVE_COMPARE_ASSET_ALLOCATION]: receiveCompareAssetAllocationData,\n\t[Types.API_CIBC_REQUEST_COMPARE_TOP_HOLDINGS]: requestTopHoldings,\n\t[Types.API_CIBC_RECEIVE_COMPARE_TOP_HOLDINGS]: receiveTopHoldings,\n\t[Types.API_REQUEST_COMPARE_GEOGRAPHIC_ALLOCATION]: requestCompareGeographicAllocation,\n\t[Types.API_RECEIVE_COMPARE_GEOGRAPHIC_ALLOCATION]: receiveCompareGeographicAllocation,\n\t[Types.API_REQUEST_COMPARE_SECTOR_ALLOCATION]: requestCompareSectorAllocation,\n\t[Types.API_RECEIVE_COMPARE_SECTOR_ALLOCATION]: receiveCompareSectorAllocation,\n\t[Types.DELETE_SYMBOL_FROM_COMPARE_LIST]: deleteSymbolFromCompareList,\n\t[Types.RESET_COMPARE_LIST]: resetCompareList\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable no-param-reassign */\n/* eslint-disable no-lonely-if */\n/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tsimilarEtfs: {}\n};\n\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\nconst requestCompareSimilarEtfsPeers = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingCompareSimilarEtfs: true,\n\t\tsimilarEtfs: Object.assign({})\n\t});\n};\n\nconst receiveCompareSimilarEtfsPeers = (state, action) => {\n\tlet premData = {};\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingCompareSimilarEtfs: false,\n\t\tsimilarEtfs: Object.assign({}, premData)\n\t});\n};\n\nconst ACTION_HANDLERS = {\n\t[Types.API_REQUEST_SIMILAR_ETFS]: requestCompareSimilarEtfsPeers,\n\t[Types.API_RECEIVE_SIMILAR_ETFS]: receiveCompareSimilarEtfsPeers,\n\t[Types.API_HANDLE_COMPARELIST_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingAlertsProfile: false,\n\tfetchingAlertsDestination: false,\n\tfetchingAlertsSubscriptions: false,\n\tfetchingDeleteDestination: false,\n\tfetchingPutDestination: false,\n\tfetchingPostProfile: false,\n\tfetchingDeleteAlerts: false,\n\tfetchingUpdateAlert: false,\n\tfetchingAddAlerts: false,\n\thasDestinations: false,\n\tsubscriptions: {},\n\tdestinations: {},\n\tprofile: {},\n\tmarket: {},\n\tstock: [],\n\twatchlist: [],\n\tanalystReport: []\n};\n\nconst requestAlertsProfile = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingAlertsProfile: true\n\t});\n};\n\nconst receiveAlertsProfile = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingAlertsProfile: false,\n\t\tprofile: action.response.data\n\t});\n};\n\nconst requestAlertsDestinations = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingAlertsDestination: true\n\t});\n};\n\nconst receiveAlertsDestinations = (state, action) => {\n\tlet hasDestinations = false;\n\tconst { data } = action.response;\n\tconst { items } = data || {};\n\tif (items && items.length) {\n\t\titems.forEach(destination => {\n\t\t\tif (!hasDestinations) {\n\t\t\t\thasDestinations = destination.address && destination.address !== '';\n\t\t\t}\n\t\t});\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingAlertsDestination: false,\n\t\tdestinations: action.response.data,\n\t\thasDestinations\n\t});\n};\n\nconst requestAlertsSubscriptions = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingAlertsSubscriptions: true,\n\t\tsubscriptions: {},\n\t\tmarket: {},\n\t\tstock: [],\n\t\twatchlist: [],\n\t\tanalystReport: [],\n\t\talertsByXid: {}\n\t});\n};\n\nconst receiveAlertsSubscriptions = (state, action) => {\n\tconst { data } = action.response;\n\tconst { items } = data || {};\n\tconst market = {};\n\tconst alertsByXid = {};\n\tconst stock = [];\n\tconst watchlist = [];\n\tlet analystReport = [];\n\tconst uniqueItemIds = [];\n\n\tif (items && items.length) {\n\t\titems.forEach(item => {\n\t\t\tconst { alertCategory, criteria, itemId } = item || {};\n\t\t\tconst { exchangeCode, venueXid } = criteria || {};\n\n\t\t\t// Each destination has its own item but shared itemId so we will filter out the duplicates\n\t\t\tif (uniqueItemIds.indexOf(itemId) > -1) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tuniqueItemIds.push(itemId);\n\n\t\t\tswitch (alertCategory) {\n\t\t\t\tcase 'Price':\n\t\t\t\tcase 'Volume':\n\t\t\t\tcase 'Earnings':\n\t\t\t\tcase 'News':\n\t\t\t\t\tif (!alertsByXid[venueXid]) {\n\t\t\t\t\t\talertsByXid[venueXid] = [item];\n\t\t\t\t\t} else {\n\t\t\t\t\t\talertsByXid[venueXid].push(item);\n\t\t\t\t\t}\n\t\t\t\t\tstock.push(item);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Market':\n\t\t\t\t\tif (market[exchangeCode]) {\n\t\t\t\t\t\tmarket[exchangeCode].push(item);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmarket[exchangeCode] = [item];\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Portfolio':\n\t\t\t\t\twatchlist.push(item);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Research':\n\t\t\t\t\tanalystReport.push(item);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t});\n\t}\n\n\t// mapping saved search name/values and sorting by most recent.\n\tif (analystReport.length) {\n\t\tanalystReport = analystReport.map(alert => {\n\t\t\tconst { attributes } = alert || {};\n\t\t\tconst attributesMap = {};\n\t\t\tif (attributes && attributes.length) {\n\t\t\t\tattributes.forEach(att => {\n\t\t\t\t\tconst { name, value } = att || {};\n\t\t\t\t\tattributesMap[name] = JSON.parse(value);\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn { ...alert, attributesMap };\n\t\t}).sort((a, b) => {\n\t\t\treturn ((a.insertDate < b.insertDate) ? 1 : -1);\n\t\t});\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingAlertsSubscriptions: false,\n\t\tsubscriptions: data,\n\t\tmarket,\n\t\tstock,\n\t\twatchlist,\n\t\tanalystReport,\n\t\talertsByXid\n\t});\n};\n\nconst receiveDeleteDestination = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingDeleteDestination: false\n\t});\n};\n\nconst requestDeleteDestination = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingDeleteDestination: true\n\t});\n};\n\nconst receivePutDestination = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingPutDestination: false\n\t});\n};\n\nconst requestPutDestination = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingPutDestination: true\n\t});\n};\n\nconst receivePostProfile = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingPostProfile: true\n\t});\n};\n\nconst requestPostProfile = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingPostProfile: false\n\t});\n};\n\nconst receiveDeleteAlerts = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingDeleteAlerts: false\n\t});\n};\n\nconst requestDeleteAlerts = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingDeleteAlerts: true\n\t});\n};\n\nconst receiveUpdateAlert = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingUpdateAlert: false\n\t});\n};\n\nconst requestUpdateAlert = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingUpdateAlert: true\n\t});\n};\n\nconst requestUpdateAnalystResearchAlert = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingUpdateAlert: true\n\t});\n};\n\nconst receiveAddAlerts = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingAddAlerts: false\n\t});\n};\n\nconst requestAddAlerts = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingAddAlerts: true\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_REQUEST_ALERTS_PROFILE]: requestAlertsProfile,\n\t[Types.API_RECEIVE_ALERTS_PROFILE]: receiveAlertsProfile,\n\t[Types.API_REQUEST_ALERTS_PROFILE_DESTINATIONS]: requestAlertsDestinations,\n\t[Types.API_RECEIVE_ALERTS_PROFILE_DESTINATIONS]: receiveAlertsDestinations,\n\t[Types.API_REQUEST_ALERTS_SUBSCRIPTIONS]: requestAlertsSubscriptions,\n\t[Types.API_RECEIVE_ALERTS_SUBSCRIPTIONS]: receiveAlertsSubscriptions,\n\t[Types.API_REQUEST_ALERTS_DELETE_DESTINATION]: requestDeleteDestination,\n\t[Types.API_RECEIVE_ALERTS_DELETE_DESTINATION]: receiveDeleteDestination,\n\t[Types.API_REQUEST_ALERTS_PUT_DESTINATION]: requestPutDestination,\n\t[Types.API_RECEIVE_ALERTS_PUT_DESTINATION]: receivePutDestination,\n\t[Types.API_RECEIVE_ALERTS_POST_PROFILE]: receivePostProfile,\n\t[Types.API_REQUEST_ALERTS_POST_PROFILE]: requestPostProfile,\n\t[Types.API_RECEIVE_ALERTS_DELETE]: receiveDeleteAlerts,\n\t[Types.API_REQUEST_ALERTS_DELETE]: requestDeleteAlerts,\n\t[Types.API_RECEIVE_ALERT_UPDATE]: receiveUpdateAlert,\n\t[Types.API_REQUEST_ALERT_UPDATE]: requestUpdateAlert,\n\t[Types.API_CIBC_REQUEST_ALERT_UPDATE]: requestUpdateAnalystResearchAlert,\n\t[Types.API_REQUEST_ALERTS_ADD]: requestAddAlerts,\n\t[Types.API_RECEIVE_ALERTS_ADD]: receiveAddAlerts,\n\t[Types.API_HANDLE_ALERTS_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingScreenerColumnDistinctList: false,\n\tfetchesActive: 0,\n\tdistinctColumnValues: {\n\t\tLFFundPromotor: [],\n\t\tLFLipperClassification: []\n\t}\n};\n\nconst requestScreenerColumnDistinctList = state => {\n\tconst { fetchesActive } = state;\n\n\treturn Object.assign({}, state, {\n\t\tfetchingScreenerColumnDistinctList: true,\n\t\tfetchesActive: fetchesActive + 1\n\t});\n};\n\nconst receiveScreenerColumnDistinctList = (state, action) => {\n\tconst { distinctColumnValues, fetchesActive } = state || {};\n\n\tconst responseItems = action.response.data.items;\n\n\tif (responseItems && responseItems.length && (action.columnName === 'RUTRBCSector')) {\n\t\tconst foundIndex = responseItems.indexOf('Institutions,Associations&Organizations');\n\t\tif (foundIndex !== -1) {\n\t\t\tresponseItems.splice(foundIndex, 1);\n\t\t}\n\t}\n\n\tdistinctColumnValues[action.columnName] = responseItems;\n\n\treturn Object.assign({}, state, {\n\t\tfetchingScreenerColumnDistinctList: false,\n\t\tdistinctColumnValues,\n\t\tfetchesActive: fetchesActive - 1\n\t});\n};\n\nconst setSavedScreenCount = (state, { count }) => {\n\treturn Object.assign({}, state, {\n\t\tsavedScreenCount: count\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_CIBC_REQUEST_SCREENER_COLUMNS_DISTINCT_LIST]: requestScreenerColumnDistinctList,\n\t[Types.API_CIBC_RECEIVE_SCREENER_COLUMN_DISTINCT_LIST]: receiveScreenerColumnDistinctList,\n\t[Types.SET_SAVED_SCREEN_COUNT]: setSavedScreenCount,\n\t[Types.API_HANDLE_SCREENER_UTILS_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from 'Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingTodaysTopSectors: false,\n\tdata: []\n};\n\nconst requestTechnicalAnalysis = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingTodaysTopSectors: true\n\t});\n};\n\nconst receiveTechnicalAnalysis = (state, action) => {\n\tif (action.response && action.response.data) {\n\t\treturn Object.assign({}, state, {\n\t\t\tfetchingTodaysTopSectors: false,\n\t\t\tdata: action.response.data\n\t\t});\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingTodaysTopSectors: false\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_CIBC_REQUEST_TODAYS_TOP_SECTORS]: requestTechnicalAnalysis,\n\t[Types.API_CIBC_RECEIVE_TODAYS_TOP_SECTORS]: receiveTechnicalAnalysis,\n\t[Types.API_CIBC_HANDLE_TODAYS_TOP_SECTORS_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","import { createReducer } from 'reduxsauce';\n\nimport Types from '../Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingFundIndexOverviewFund: false,\n\tfetchingFundIndexOverviewIndex: false,\n\tindexData: [],\n\tfundData: []\n};\n\nconst receiveFundIndexOverviewFund = (state, action) => {\n\tlet premData = [];\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t}\n\n\treturn {\n\t\t...state,\n\t\tfetchingFundIndexOverviewFund: false,\n\t\tfundData: premData\n\t};\n};\n\nconst requestFundIndexOverviewFund = state => {\n\treturn {\n\t\t...state,\n\t\tfetchingFundIndexOverviewFund: true,\n\t\tfundData: []\n\t};\n};\n\nconst receiveFundIndexOverviewIndex = (state, action) => {\n\tlet premData = [];\n\tif (action.response.data) {\n\t\tpremData = action.response.data;\n\t}\n\n\treturn {\n\t\t...state,\n\t\tfetchingFundIndexOverviewIndex: false,\n\t\tindexData: premData\n\t};\n};\n\nconst requestFundIndexOverviewIndex = state => {\n\treturn {\n\t\t...state,\n\t\tfetchingFundIndexOverviewIndex: true,\n\t\tindexData: []\n\t};\n};\n\nconst handleLoader = (state, action) => {\n\treturn {\n\t\t...state,\n\t\t[action.fetchName]: false\n\t};\n};\n\nconst ACTION_HANDLERS = {\n\t[Types.API_CIBC_REQUEST_FUND_INDEX_OVERVIEW_FUND]: requestFundIndexOverviewFund,\n\t[Types.API_CIBC_RECEIVE_FUND_INDEX_OVERVIEW_FUND]: receiveFundIndexOverviewFund,\n\t[Types.API_CIBC_REQUEST_FUND_INDEX_OVERVIEW_INDEX]: requestFundIndexOverviewIndex,\n\t[Types.API_CIBC_RECEIVE_FUND_INDEX_OVERVIEW_INDEX]: receiveFundIndexOverviewIndex,\n\t[Types.API_CIBC_HANDLE_FUND_INDEX_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from 'Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingUpgradesDowngrades: false,\n\tdata: {\n\t\tdowngrades: [],\n\t\tupgrades: []\n\t}\n};\n\nconst requestUpgradesDowngrades = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingUpgradesDowngrades: true\n\t});\n};\n\nconst receiveUpradesDowngrades = (state, action) => {\n\tif (action.response && action.response.data) {\n\t\treturn Object.assign({}, state, {\n\t\t\tfetchingUpgradesDowngrades: false,\n\t\t\tdata: action.response.data\n\t\t});\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tfetchingUpgradesDowngrades: false\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_CIBC_REQUEST_UPGRADES_DOWNGRADES]: requestUpgradesDowngrades,\n\t[Types.API_CIBC_RECEIVE_UPGRADES_DOWNGRADES]: receiveUpradesDowngrades,\n\t[Types.API_CIBC_HANDLE_UPGRADES_DOWNGRADES_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\nimport { createReducer } from 'reduxsauce';\nimport Types from 'Actions/Types';\n\nexport const INITIAL_STATE = {\n\tfetchingBuzzNews: false,\n\tdata: {}\n};\n\nconst requestBuzzNews = state => {\n\treturn Object.assign({}, state, {\n\t\tfetchingBuzzNews: true\n\t});\n};\n\nconst receiveBuzzNews = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\tfetchingBuzzNews: false,\n\t\tdata: Object.assign({}, action.response)\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_CIBC_REQUEST_BUZZNEWS]: requestBuzzNews,\n\t[Types.API_CIBC_RECEIVE_BUZZNEWS]: receiveBuzzNews,\n\t[Types.API_CIBC_HANDLE_BUZZNEWS_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","/* eslint-disable prefer-object-spread */\n/* eslint-disable no-mixed-spaces-and-tabs */\nimport { createReducer } from 'reduxsauce';\nimport Types from '../Actions/Types';\n\n\nexport const INITIAL_STATE = {\n\tmarketsOverviewChartData: {}\n};\n\nconst requestMarketsOverviewChart = state => {\n\treturn Object.assign({}, state, {\n\t\tmarketsOverviewChartData: {}\n\t});\n};\n\nconst receiveMarketsOverviewChart = (state, action) => {\n\tconst dataByXid = {};\n\n\tif (action.response && action.response.data) {\n\t\taction.response.data.forEach(datapoint => {\n\t\t\tif (datapoint) {\n\t\t\t\tdataByXid[datapoint.venueXid] = datapoint;\n\t\t\t}\n\t\t});\n\t}\n\n\treturn Object.assign({}, state, {\n\t\tmarketsOverviewChartData: dataByXid\n\t});\n};\n\n/**\n * Called by the saga in the finally block to ensure that in all cases the\n * fetching state for the call is set back to false to avoid infinite loader\n * and the ability to display both loaders and \"sorry no data\" messages.\n * @param {object} state\n * @param {object} action\n */\nconst handleLoader = (state, action) => {\n\treturn Object.assign({}, state, {\n\t\t[action.fetchName]: false\n\t});\n};\n\n\n// map our types to our handlers\nconst ACTION_HANDLERS = {\n\t[Types.API_REQUEST_MARKETS_OVERVIEW_CHART]: requestMarketsOverviewChart,\n\t[Types.API_RECEIVE_MARKETS_OVERVIEW_CHART]: receiveMarketsOverviewChart,\n\t[Types.API_HANDLE_MARKETS_OVERVIEW_CHART_LOADER]: handleLoader\n};\n\nexport default createReducer(INITIAL_STATE, ACTION_HANDLERS);\n","import { combineReducers } from 'redux';\nimport { routerReducer } from 'react-router-redux';\n// import reducers\nimport { IntlReducer } from 'react-redux-multilingual';\nimport NewsReducer from './NewsReducer';\nimport PriceChartReducer from './PriceChartReducer';\nimport QuotesReducer from './QuotesReducer';\nimport UserReducer from './UserReducer';\nimport UtilityReducer from './UtilityReducer';\nimport commoditiesReducer from './CommoditiesReducer';\nimport commoditiesChartReducer from './CommoditiesChartReducer';\nimport currencyReducer from './CurrencyChartReducer';\nimport indexReducer from './IndexReducer';\nimport rankingsReducer from './rankingsReducer';\nimport symbolSearchReducer from './symbolSearchReducer';\nimport technicalAnalysisReducer from './technicalAnalysisReducer';\nimport xrefReducer from './xrefReducer';\nimport OptionsReducer from './OptionsReducer';\nimport OptionsQuoteListReducer from './OptionsQuoteListReducer';\nimport watchlistReducer from './watchlistReducer';\nimport QuotelistReducer from './QuotelistReducer';\nimport MorningstarReducer from './MorningstarReducer';\nimport PremiumDiscountChartReducer from './PremiumDiscountChartReducer';\nimport ResearchReducer from './ResearchReducer';\nimport CorporateDividendsReducer from './CorporateDividendsReducer';\nimport DividendsPerShareReducer from './dividendsPerShareChartReducer';\nimport Growth10KChartReducer from './Growth10KChartRedurcer';\nimport AnnualPerformanceChartReducer from './AnnualPerformanceChartReducer';\nimport GlobalExposureChartReducer from './GlobalExposureChartReducer';\nimport TrailingReturnsChartReducer from './TrailingReturnsChartReducer';\nimport CurrentRatiosReducer from './CurrentRatiosReducer';\nimport StockEarningsReducer from './StockEarningsReducer';\nimport EquitiesGeneralTrkdReducer from './EquitiesGeneralTrkdReducer';\nimport StockEarningsChartReducer from './StockEarningsChartReducer';\nimport FinancialsReducer from './FinancialsReducer';\nimport FundDataReducer from './FundDataReducer';\nimport LipperReducer from './LipperReducer';\nimport AddEtfReducer from './AddEtfReducer';\nimport SimilarEtfs from './SimilarEtfsReducer';\nimport AlertsReducer from './AlertsReducer';\nimport ScreenerUtilsReducer from './screenerUtilsReducer';\nimport TodaysTopSectorsReducer from './TodaysTopSectorsReducer';\nimport FundIndexReducer from './FundIndexReducer';\nimport UpgradesDowngradesReducer from './UpgradesDowngradesReducer';\nimport BuzzNewsReducer from './BuzzNewsReducer';\nimport MarketsOverviewReducer from './MarketsOverviewReducer';\n\n// create app reducer / combine reducers\nconst appReducer = combineReducers({\n\talertsData: AlertsReducer,\n\tannualPerformanceChartData: AnnualPerformanceChartReducer,\n\tbuzzNewsData: BuzzNewsReducer,\n\tcommoditiesChartData: commoditiesChartReducer,\n\tcommoditiesData: commoditiesReducer,\n\tcompareEtfList: AddEtfReducer,\n\tcompareSimilarEtfs: SimilarEtfs,\n\tcorporateDividendData: CorporateDividendsReducer,\n\tcurrencyChartData: currencyReducer,\n\tcurrentRatiosData: CurrentRatiosReducer,\n\tdividendsPerShareChartData: DividendsPerShareReducer,\n\tequitiesTrkd: EquitiesGeneralTrkdReducer,\n\tfinancialsData: FinancialsReducer,\n\tfundData: FundDataReducer,\n\tfundIndexData: FundIndexReducer,\n\tglobalExposureChartData: GlobalExposureChartReducer,\n\tgrowth10kChartData: Growth10KChartReducer,\n\tindexData: indexReducer,\n\tIntl: IntlReducer, // Must be named this due to how the intl provider trys to access it.\n\tlipperData: LipperReducer,\n\tmarketRankingsData: rankingsReducer,\n\tmorningstarData: MorningstarReducer,\n\tnewsData: NewsReducer,\n\toptionData: OptionsReducer,\n\toptionQuoteListData: OptionsQuoteListReducer,\n\tpremiumDiscountChartData: PremiumDiscountChartReducer,\n\tpriceChartData: PriceChartReducer,\n\tquotelistData: QuotelistReducer,\n\tquotesData: QuotesReducer,\n\tmarketsOverviewChartData: MarketsOverviewReducer,\n\tresearchData: ResearchReducer,\n\trouting: routerReducer,\n\tscreenerUtils: ScreenerUtilsReducer,\n\tstockEarnings: StockEarningsReducer,\n\tstockEarningsChartData: StockEarningsChartReducer,\n\tsymbolSearchData: symbolSearchReducer,\n\ttechnicalAnalysisData: technicalAnalysisReducer,\n\ttodaysTopSectors: TodaysTopSectorsReducer,\n\ttrailingReturnsChartData: TrailingReturnsChartReducer,\n\tuserData: UserReducer,\n\tutility: UtilityReducer,\n\twatchlistData: watchlistReducer,\n\txrefData: xrefReducer,\n\tstockUpgradesDowngrades: UpgradesDowngradesReducer\n});\n\n// create root reducer that can destroy state if necessary\nconst rootReducer = (state, action) => {\n\treturn appReducer(state, action);\n};\n\nexport default rootReducer;\n","import Types from './Types';\n\nconst apiFailure = message => {\n\treturn {\n\t\ttype: Types.API_FAILURE,\n\t\tmessage\n\t};\n};\n\nconst apiRequest = isFetching => {\n\treturn {\n\t\ttype: Types.API_REQUEST,\n\t\tisFetching\n\t};\n};\n\nconst killActiveSagaWorkers = actionType => {\n\treturn {\n\t\ttype: Types.KILL_ACTIVE_SAGA_WORKERS,\n\t\tactionType\n\t};\n};\n\nexport {\n\tapiRequest,\n\tapiFailure,\n\tkillActiveSagaWorkers\n};\n","/* eslint-disable no-console */\n/* eslint-disable max-len */\nimport {\n\tcall,\n\tput,\n\ttakeEvery,\n\ttakeLatest\n} from 'redux-saga/effects';\nimport {\n\tgetApiRequestTypes,\n\tgetAjaxHandlerType,\n\tgetApiSingleRequestTypes,\n\thandleBlobResponse\n} from './sagaHelpers';\nimport { apiFailure } from '../Actions/UtilityActions';\n\nexport default api => {\n\tfunction* worker(action) {\n\t\tconst {\n\t\t\tajaxType,\n\t\t\tparams,\n\t\t\tendPoint,\n\t\t\toptions\n\t\t} = action;\n\t\t// Get the handler for the verb type GET, POST, PUT, DELETE, ect\n\t\tconst apiType = getAjaxHandlerType(ajaxType, api);\n\n\t\t// opportunity to override headers, specifically for news article API call or real time\n\t\tif (action.headers) {\n\t\t\tapi.api.setHeaders(action.headers);\n\t\t} else {\n\t\t\t// Set the default headers\n\t\t\t// MIGHTDO find a better way to reset defaults\n\t\t\tapi.api.setHeaders({\n\t\t\t\tAccept: '*/*',\n\t\t\t\trealtime: false\n\t\t\t});\n\t\t}\n\n\t\ttry {\n\t\t\tlet response;\n\n\t\t\tif (action.abort) {\n\t\t\t\tyield call(action.loader(action.fetchName));\n\t\t\t} else {\n\t\t\t\t// call the API\n\t\t\t\tresponse = yield call(apiType, endPoint, params, options);\n\t\t\t}\n\t\t\t// determine the right response handler based on the action type\n\n\t\t\tswitch (action.type) {\n\t\t\t\t// determine if this is a pattern we want to use for document downloads\n\t\t\t\tcase 'API_REQUEST_PDF':\n\t\t\t\tcase 'API_REQUEST_RESEARCH_PDF':\n\t\t\t\t\t// FILE DOWNLOADS ARE HANDLED UNIQUELY -- WAY NEED TO DOWNLOAD THE BLOB AND THEN OPEN IN A NEW TAB\n\t\t\t\t\thandleBlobResponse(response, action);\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tswitch (response.status) {\n\t\t\t\t\t\tcase 304:\n\t\t\t\t\t\tcase 200:\n\t\t\t\t\t\tcase 201:\n\t\t\t\t\t\tcase 204:\n\t\t\t\t\t\tcase 206:\n\t\t\t\t\t\t\t// call our success method to hand the data off\n\t\t\t\t\t\t\tyield put(action.onSuccess(response.data, action.responseDetails));\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t// Unauthorized request - attempt a logout\n\t\t\t\t\t\tcase 401:\n\t\t\t\t\t\t\tyield put(apiFailure('bad auth'));\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 404:\n\t\t\t\t\t\t\tif (action.on404) {\n\t\t\t\t\t\t\t\tyield put(action.on404(response.data));\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tyield put(apiFailure(`404 data response from action: ${action.type}`));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tyield put(apiFailure(`Bad data response from action: ${action.type}`));\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t} catch (error) {\n\t\t\t// Did we throw an error anywhere?\n\t\t\tyield put(apiFailure(`bad call markit data ${error}`));\n\t\t} finally {\n\t\t\t// Catchall to turn off the loader\n\t\t\tif (action.loader && action.fetchName) {\n\t\t\t\tyield put(action.loader(action.fetchName));\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction* watcher() {\n\t\tyield takeEvery(getApiRequestTypes(), worker);\n\t\tyield takeLatest(getApiSingleRequestTypes(), worker);\n\t}\n\n\treturn {\n\t\twatcher,\n\t\tworker\n\t};\n};\n","/* global window */\nimport { fork } from 'redux-saga/effects';\nimport markitDataSaga from './MarkitDataSaga';\nimport cibcDataSaga from './CibcDataSaga';\nimport markitApi from '../services/MarkitApi';\n\nconst rootSaga = token => {\n\twindow.MD = window.MD || {};\n\tlet platformUrl = window.MD.apiBaseUrl;\n\tlet cibcApiUrl = window.MD.apiBaseCibcUrl;\n\n\tif (!platformUrl) {\n\t\t// console.error('No global API path found, falling back on default');\n\t\tplatformUrl = 'https://qa-api.markitdigital.com';\n\t}\n\n\tif (!cibcApiUrl) {\n\t\t// console.error('No global API path found, falling back on default');\n\t\tcibcApiUrl = 'https://cibc.api.markitdigital.com/cibc-obr2-api/v1/';\n\t}\n\n\tconst platformApi = markitApi.create(platformUrl, token);\n\tconst cibcApi = markitApi.create(cibcApiUrl, token);\n\n\tfunction* root() {\n\t\tyield fork(cibcDataSaga(cibcApi).watcher);\n\t\tyield fork(markitDataSaga(platformApi).watcher);\n\t}\n\treturn root;\n};\n\nexport default rootSaga;\n","/* eslint-disable no-console */\n/* eslint-disable max-len */\nimport {\n\tcall,\n\tput,\n\ttakeEvery,\n\ttakeLatest\n} from 'redux-saga/effects';\nimport {\n\tgetCibcApiRequestTypes,\n\tgetCibcApiSingleRequestTypes,\n\tgetAjaxHandlerType\n} from './sagaHelpers';\nimport { apiFailure } from '../Actions/UtilityActions';\nimport { receiveUserInfoFail } from '../Actions/UserActions';\n\nexport default api => {\n\tfunction* worker(action) {\n\t\tconst {\n\t\t\tajaxType,\n\t\t\tparams,\n\t\t\tendPoint,\n\t\t\toptions\n\t\t} = action;\n\t\t// Get the handler for the verb type GET, POST, PUT, DELETE, ect\n\t\tconst apiType = getAjaxHandlerType(ajaxType, api);\n\n\t\ttry {\n\t\t\tlet response;\n\n\t\t\tif (action.abort) {\n\t\t\t\tyield call(action.loader(action.fetchName));\n\t\t\t} else {\n\t\t\t\t// call the API\n\t\t\t\tresponse = yield call(apiType, endPoint, params, options);\n\t\t\t}\n\n\t\t\tswitch (response.status) {\n\t\t\t\tcase 304:\n\t\t\t\tcase 200:\n\t\t\t\t\t// call our success method to hand the data off\n\t\t\t\t\tyield put(action.onSuccess(response.data, action.responseDetails));\n\t\t\t\t\tbreak;\n\t\t\t\t\t// Unauthorized request - attempt a logout\n\t\t\t\tcase 400:\n\t\t\t\t\tif (action.on400) {\n\t\t\t\t\t\tyield put(action.on400(response.data));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tyield put(apiFailure(`400 data response from action: ${action.type}`));\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 401:\n\t\t\t\tcase 403:\n\t\t\t\t\tyield put(receiveUserInfoFail(response));\n\t\t\t\t\tyield put(apiFailure('bad auth'));\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tyield put(apiFailure(`Bad data response from action: ${action.type}`));\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t} catch (error) {\n\t\t\t// Did we throw an error anywhere?\n\t\t\tyield put(apiFailure(`bad call cibc data ${error}`));\n\t\t} finally {\n\t\t\t// Catchall to turn off the loader\n\t\t\tif (action.loader && action.fetchName) {\n\t\t\t\tyield put(action.loader(action.fetchName));\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction* watcher() {\n\t\tyield takeEvery(getCibcApiRequestTypes(), worker);\n\t\tyield takeLatest(getCibcApiSingleRequestTypes(), worker);\n\t}\n\n\treturn {\n\t\twatcher,\n\t\tworker\n\t};\n};\n","/* eslint-disable no-param-reassign */\n/* eslint-disable class-methods-use-this */\n/* global window, MD, document */\nimport ResizeObserver from 'resize-observer-polyfill';\n\nclass IframeCommunication {\n\tconstructor() {\n\t\tthis.init();\n\t}\n\n\tinit() {\n\t\t// bind listeners\n\t\tthis.bindListeners();\n\t\tthis.actions = {\n\t\t\tadvancedChart: 'advancedChart',\n\t\t\tkeepAlive: 'keepAlive',\n\t\t\ttokenExpired: 'tokenExpired',\n\t\t\ttrade: 'trade',\n\t\t\tiframeSize: 'iframeSize',\n\t\t\tnavigation: 'navigation',\n\t\t\tmodal: 'modal',\n\t\t\tscrollTo: 'scrollTo',\n\t\t\tcheckParentFrame: 'checkParentFrame',\n\t\t\tparentFrameValid: 'parentFrameValid'\n\t\t};\n\t\tthis.minListHeight = 0;\n\t\tthis.startKeepAliveTimer();\n\t}\n\n\tbindListeners() {\n\t\tconst self = this;\n\t\t// messages from parent\n\t\twindow.addEventListener('message', event => self.receiveMessage(event, self), false);\n\t\t// listen for body resize events\n\t\tconst ro = new ResizeObserver(\n\t\t\tentries => this.handleResize(entries, this)\n\t\t);\n\t\tro.observe(document.body);\n\t}\n\n\tbindIframeListener(iframe) {\n\t\tthis.tcFrame = iframe;\n\t}\n\n\tbindTRIframeListener(iframe) {\n\t\tthis.tipranksFrame = iframe;\n\t}\n\n\tsendMessage(message) {\n\t\tif (MD && MD.environment !== 'production') {\n\t\t\tconsole.log(message);\n\t\t}\n\t\twindow.parent.postMessage(message, '*');\n\t}\n\n\treceiveMessage(event, self) {\n\t\tif (event && event.isTrusted && event.data) {\n\t\t\tif (!event.data.action && event.origin) {\n\t\t\t\tif (event.origin.indexOf('tipranks') !== -1) {\n\t\t\t\t\tif (event.data.height) {\n\t\t\t\t\t\tevent.data.action = 'trIframeSize';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (event.data.action) {\n\t\t\t\tif (MD && MD.environment !== 'production') {\n\t\t\t\t\tconst message = JSON.stringify(event.data, undefined, 4);\n\t\t\t\t\tconsole.log(message);\n\t\t\t\t}\n\n\t\t\t\tself.handleCommand(event.data, event.origin);\n\t\t\t}\n\t\t}\n\t}\n\n\thandleCommand(message, origin) {\n\t\tswitch (message.action) {\n\t\t\tcase 'language':\n\t\t\t\tthis.handleLanguage(message);\n\t\t\t\tbreak;\n\t\t\tcase 'addToWatchlist':\n\t\t\t\tconsole.log(' Add to watchlist not implemented');\n\t\t\t\tbreak;\n\t\t\tcase 'iframeSize':\n\t\t\t\tthis.handleTcFrameSize(message, origin);\n\t\t\t\tbreak;\n\t\t\tcase 'trIframeSize':\n\t\t\t\tthis.handleTRIFrameSize(message, origin);\n\t\t\t\tbreak;\n\t\t\tcase 'modalPosition':\n\t\t\t\tthis.handleModalPosition(message);\n\t\t\t\tbreak;\n\t\t\tcase 'trade':\n\t\t\tcase 'keepAlive':\n\t\t\tcase 'modal':\n\t\t\t\tthis.handleTcMessages(message, origin);\n\t\t\t\tbreak;\n\t\t\tcase 'advancedChartClosed':\n\t\t\t\tthis.handleAdvancedChartClose(message);\n\t\t\t\tbreak;\n\t\t\tcase 'parentFrameValid':\n\t\t\t\tthis.handleParentFrameCheck(message);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tconsole.log('This command does not have a handler');\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\thandleTcMessages(message, origin) {\n\t\t// passing on messages from the TC iframe to the parent CIBC frame\n\t\tif (message && origin && origin.indexOf('recognia') > -1) {\n\t\t\tif (MD && MD.environment !== 'production') {\n\t\t\t\tconsole.log('passing message from TC: ', message);\n\t\t\t}\n\t\t\tthis.sendMessage(message);\n\t\t}\n\t}\n\n\thandleTcFrameSize(message, origin) {\n\t\tif (message && origin && origin.indexOf('recognia') > -1) {\n\t\t\tthis.tcFrame.setAttribute('height', message.height);\n\t\t}\n\t}\n\n\thandleTRIFrameSize(message, origin) {\n\t\tif (message && origin && origin.indexOf('tipranks') > -1) {\n\t\t\tif (message.height && this.tipranksFrame) {\n\t\t\t\tthis.tipranksFrame.setAttribute('height', message.height + 20);\n\t\t\t}\n\t\t}\n\t}\n\n\tstartKeepAliveTimer() {\n\t\tthis.lastActiveTime = Date.now();\n\t\twindow.setInterval(() => {\n\t\t\tconst elapsed = Date.now() - this.lastActiveTime;\n\t\t\t// if the last activity was less than 5 min ago\n\t\t\t// send keep alive message\n\t\t\tif (elapsed < 300000) {\n\t\t\t\tthis.sendMessage({\n\t\t\t\t\taction: this.actions.keepAlive\n\t\t\t\t});\n\t\t\t}\n\t\t}, 300000);\n\t}\n\n\thandleKeepAlive(event) {\n\t\tif (event) {\n\t\t\tthis.lastActiveTime = Date.now();\n\t\t}\n\t}\n\n\thandleLanguage(message) {\n\t\tconsole.log('the language handler');\n\t\tconsole.log(message);\n\t}\n\n\thandleResize(entries, self) {\n\t\twindow.clearTimeout(this.iframeSizeWait);\n\t\tthis.resizeWait = window.setTimeout(() => {\n\t\t\tentries.forEach(entry => {\n\t\t\t\tconst {\n\t\t\t\t\theight\n\t\t\t\t} = entry.contentRect;\n\n\t\t\t\tif (height !== 0 && self.lastHeight !== height && height > 315) {\n\t\t\t\t\tlet frameHeight = Math.ceil(height) + 20;\n\t\t\t\t\tif (frameHeight < self.minListHeight + 20) {\n\t\t\t\t\t\tframeHeight = Math.ceil(self.minListHeight) + 20;\n\t\t\t\t\t}\n\n\t\t\t\t\tself.lastHeight = frameHeight;\n\t\t\t\t\tself.sendMessage({\n\t\t\t\t\t\taction: self.actions.iframeSize,\n\t\t\t\t\t\theight: frameHeight\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}, 200);\n\t}\n\n\thandleDropdownIframeSize(height) {\n\t\tthis.minListHeight = height;\n\t\tconst { lastHeight, actions, sendMessage } = this;\n\t\tconst body = document.getElementById('mod-body');\n\t\tconst bodyHeight = body ? body.offsetHeight : 0;\n\n\t\tif (lastHeight < height + 60 && height > 315) {\n\t\t\tthis.lastHeight = Math.ceil(height) + 60;\n\t\t\tsendMessage({\n\t\t\t\taction: actions.iframeSize,\n\t\t\t\theight: Math.ceil(height) + 60\n\t\t\t});\n\t\t}\n\n\t\t// When the menu is closed setting the height back to the height of the body\n\t\tif (height === 0 && (bodyHeight + 20) < lastHeight) {\n\t\t\tthis.lastHeight = bodyHeight + 60;\n\t\t\tsendMessage({\n\t\t\t\taction: actions.iframeSize,\n\t\t\t\theight: bodyHeight + 60\n\t\t\t});\n\t\t}\n\t}\n\n\thandleAdvancedChartClose() {\n\t\tif (this.focusRef) {\n\t\t\tthis.focusRef.focus();\n\t\t}\n\t}\n\n\topenAdvancedChart(xid, country, symbol, symbolDescription, page, focusRef) {\n\t\tconst {\n\t\t\tactions,\n\t\t\tsendMessage\n\t\t} = this;\n\t\tthis.focusRef = focusRef;\n\t\tsendMessage({\n\t\t\taction: actions.advancedChart,\n\t\t\tsymbol,\n\t\t\tcountry,\n\t\t\txid,\n\t\t\tsymbolDescription,\n\t\t\tpage\n\t\t});\n\t}\n\n\ttradeOption(exchange, symbol, strike, optionType, expYear, expMonth, expDay, page) {\n\t\tconst {\n\t\t\tactions,\n\t\t\tsendMessage\n\t\t} = this;\n\t\tsendMessage({\n\t\t\taction: actions.trade,\n\t\t\tpage,\n\t\t\ttype: 'D',\n\t\t\tsymbol,\n\t\t\texchange,\n\t\t\tstrike,\n\t\t\toptionType,\n\t\t\texpYear,\n\t\t\texpMonth,\n\t\t\texpDay\n\t\t});\n\t}\n\n\ttradeMutualFund(symbol, page) {\n\t\tconst {\n\t\t\tactions,\n\t\t\tsendMessage\n\t\t} = this;\n\t\tsendMessage({\n\t\t\taction: actions.trade,\n\t\t\tsymbol,\n\t\t\ttype: 'M',\n\t\t\tpage\n\t\t});\n\t}\n\n\ttradeStockEtf(exchange, symbol, page, type = 'E') {\n\t\tconst {\n\t\t\tactions,\n\t\t\tsendMessage\n\t\t} = this;\n\t\tsendMessage({\n\t\t\taction: actions.trade,\n\t\t\ttype,\n\t\t\texchange,\n\t\t\tsymbol,\n\t\t\tpage\n\t\t});\n\t}\n\n\ttokenExpired(goTo) {\n\t\tconst {\n\t\t\tactions,\n\t\t\tsendMessage\n\t\t} = this;\n\t\tsendMessage({\n\t\t\taction: actions.tokenExpired,\n\t\t\tgoTo\n\t\t});\n\t}\n\n\topenModal(isOpen, modalPositionCallBack) {\n\t\tconst {\n\t\t\tactions,\n\t\t\tsendMessage,\n\t\t\tlastHeight\n\t\t} = this;\n\t\tthis.modalPositionCallBack = modalPositionCallBack;\n\n\t\tconst modal = document.getElementById('modal-container') && document.getElementById('modal-container').offsetHeight;\n\t\tconst body = document.getElementById('mod-body').offsetHeight;\n\n\t\tif (lastHeight < (modal + 60) && isOpen) {\n\t\t\tsendMessage({\n\t\t\t\taction: actions.iframeSize,\n\t\t\t\theight: (Math.ceil(modal) + 60)\n\t\t\t});\n\t\t}\n\n\t\tif (!isOpen && body > 315) {\n\t\t\tsendMessage({\n\t\t\t\taction: actions.iframeSize,\n\t\t\t\theight: Math.ceil(body)\n\t\t\t});\n\t\t}\n\n\t\tsendMessage({\n\t\t\taction: actions.modal,\n\t\t\tisOpen\n\t\t});\n\t}\n\n\thandleModalPosition(message) {\n\t\tconst {\n\t\t\tmodalPositionCallBack\n\t\t} = this;\n\t\tconst {\n\t\t\tscrollY\n\t\t} = message;\n\t\tif (modalPositionCallBack && scrollY) {\n\t\t\tmodalPositionCallBack(scrollY);\n\t\t}\n\t}\n\n\tsendNavigation(location) {\n\t\tconst {\n\t\t\tactions,\n\t\t\tsendMessage\n\t\t} = this;\n\t\tthis.clearValidateParentTimer();\n\t\tsendMessage({\n\t\t\taction: actions.navigation,\n\t\t\tlocation\n\t\t});\n\t}\n\n\tscrollTo(distanceFromTop) {\n\t\tconst {\n\t\t\tactions,\n\t\t\tsendMessage\n\t\t} = this;\n\n\t\tsendMessage({\n\t\t\taction: actions.scrollTo,\n\t\t\tdistanceFromTop\n\t\t});\n\t}\n\n\thandleParentFrameCheck(message) {\n\t\tconst {\n\t\t\tvalid\n\t\t} = message;\n\t\tconsole.log('Parent frame message recieved');\n\n\t\tif (valid) {\n\t\t\tconst theValidFrameTime = window.performance.now();\n\t\t\tconsole.log('parentFrameValid at: ', theValidFrameTime);\n\t\t\tconsole.log('Time taken to validate parent frame: ', theValidFrameTime - this.sentCheckParentFrame);\n\t\t\tthis.waitingForParent = false;\n\t\t\tthis.clearValidateParentTimer();\n\t\t}\n\t}\n\n\tclearValidateParentTimer() {\n\t\tconst {\n\t\t\tclearTimeout\n\t\t} = window;\n\t\tif (this.parentCheckTimer) {\n\t\t\tclearTimeout(this.parentCheckTimer);\n\t\t}\n\t}\n\n\tvalidateParentFrame(cibcRedirectUrl) {\n\t\tconst {\n\t\t\tactions,\n\t\t\tsendMessage\n\t\t} = this;\n\t\tconst {\n\t\t\tsetInterval,\n\t\t\tlocation,\n\t\t\tMD\n\t\t} = window;\n\t\tconst {\n\t\t\tenvironment\n\t\t} = MD || {};\n\t\tthis.waitingForParent = true;\n\n\t\tthis.sentCheckParentFrame = window.performance.now();\n\t\tsendMessage({\n\t\t\taction: actions.checkParentFrame,\n\t\t\ttimestamp: this.sentCheckParentFrame\n\t\t});\n\t\tconsole.log('Sending checkParentFrame at: ', this.sentCheckParentFrame);\n\n\t\tthis.clearValidateParentTimer();\n\n\t\tthis.parentCheckTimer = setInterval(() => {\n\t\t\tif (this.waitingForParent && environment !== 'localhost') {\n\t\t\t\tconst { pathname } = location || {};\n\t\t\t\twindow.location.href = `${cibcRedirectUrl}/#/txn/bridge/quotesResearch?mdredirectpath=${pathname}`;\n\t\t\t} else {\n\t\t\t\tthis.clearValidateParentTimer();\n\t\t\t}\n\t\t}, 5000);\n\t}\n}\n\nexport default IframeCommunication;\n","/* eslint-disable import/no-named-as-default */\n/* global window, document */\nimport 'react-app-polyfill/ie9'; // For IE 9-11 support\nimport 'react-app-polyfill/ie11'; // For IE 11 support\nimport 'babel-polyfill';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport { Provider } from 'react-redux';\nimport { PersistGate } from 'redux-persist/integration/react';\nimport { IntlProvider } from 'react-redux-multilingual';\nimport ErrorBoundary from 'Views/Shared/ErrorBoundary/ErrorBoundary';\nimport translations from './SiteConfigs/translations-config';\nimport { requestUserInfo } from './Actions/UserActions';\nimport Routes from './Routes/Routes';\nimport configureStore from './SiteConfigs/configureStore';\nimport format from './Utils/format';\nimport IframeCommunication from './Utils/iframeCommunication';\nimport './assets/styles/bootstrap/bootstrap.scss';\nimport './assets/styles/index.scss';\n\nconst rootElement = document.getElementById('root');\nconst { MD } = window;\nwindow.format = format;\nwindow.iframeCommunication = new IframeCommunication();\n\nconst storeConfiguration = configureStore();\n\n// initing an instance of format that will have global props set\n// removing the need to import it in every file.\n// https://format.dev.services.mdgapp.net/\n\n// make the request for the user info.\nif (MD && MD.apiBaseCibcUrl) {\n\tstoreConfiguration.store.dispatch(requestUserInfo());\n\twindow.onpopstate = () => {\n\t\t// ensures that we pass the location to CIBC on browser back\n\t\twindow.iframeCommunication.sendNavigation(window.location.pathname);\n\t\tstoreConfiguration.store.dispatch(requestUserInfo());\n\t};\n}\n\nReactDOM.render(\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t, rootElement\n);\n","/* global window, localStorage */\nimport { createStore, applyMiddleware, compose } from 'redux';\nimport createSagaMiddleware from 'redux-saga';\nimport reduxMulti from 'redux-multi';\nimport reduxReset from 'redux-reset';\nimport createCompressor from 'redux-persist-transform-compress';\nimport { persistStore, persistReducer } from 'redux-persist';\nimport storageSession from 'redux-persist/lib/storage/session';\nimport accessTokenService from '../services/accessTokenService';\nimport rootReducer from '../Reducers';\nimport rootSaga from '../Sagas/index';\n\nexport default function configureStore() {\n\tconst compressor = createCompressor();\n\n\tconst persistConfig = {\n\t\tkey: 'root',\n\t\tstorage: storageSession,\n\t\ttransforms: [compressor],\n\t\tblacklist: ['userData', 'Intl', 'quotesData', 'optionData', 'researchData', 'alertsData']\n\t};\n\n\tconst persistedReducer = persistReducer(persistConfig, rootReducer);\n\n\tlet myState;\n\tconst sagaMiddleware = createSagaMiddleware();\n\tconst middleware = applyMiddleware(sagaMiddleware, reduxMulti);\n\tconst enhancer = compose(\n\t\tmiddleware,\n\t\treduxReset()\n\t);\n\tconst composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\n\tconst store = createStore(persistedReducer, myState, composeEnhancers(enhancer));\n\tconst persistor = persistStore(store);\n\n\tconst previousToken = accessTokenService.getPreviousToken();\n\tconst token = accessTokenService.retrieve(null);\n\n\tif ((previousToken !== token) || (!previousToken && !token)) {\n\t\t/* When we get a new token we will flush and purge and reset the redux store\n\t\tThere is a case that 2 diff users could login on the same machine using the same browser\n\t\tThis will prevent the 2nd user from seeing any content belonging to the 1st user\n\t\t*/\n\t\tpersistor.flush();\n\t\tpersistor.purge();\n\t\tstore.dispatch({\n\t\t\ttype: 'RESET'\n\t\t});\n\t}\n\n\tif (token) {\n\t\tlocalStorage.setItem('access_token', token);\n\t}\n\n\t// run sagas\n\tsagaMiddleware.run(rootSaga(token));\n\n\treturn {\n\t\tstore,\n\t\tpersistor\n\t};\n}\n","/* eslint-disable no-underscore-dangle */\nimport React, { Component } from 'react';\n\nexport default function asyncComponent(importComponent) {\n\tclass AsyncComponent extends Component {\n\t\tconstructor(props) {\n\t\t\tsuper(props);\n\n\t\t\tthis.state = {\n\t\t\t\tcomponent: null\n\t\t\t};\n\n\t\t\tthis._isMounted = false;\n\t\t}\n\n\t\tcomponentDidMount() {\n\t\t\tthis._isMounted = true;\n\t\t\tthis.getAsyncComponent();\n\t\t}\n\n\t\tcomponentWillUnmount() {\n\t\t\tthis._isMounted = false;\n\t\t}\n\n\t\tasync getAsyncComponent() {\n\t\t\tconst { default: component } = await importComponent();\n\t\t\tif (this._isMounted) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tcomponent\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\trender() {\n\t\t\t// eslint-disable-next-line react/destructuring-assignment\n\t\t\tconst C = this.state.component;\n\n\t\t\t// eslint-disable-next-line react/jsx-props-no-spreading\n\t\t\treturn C && this._isMounted ? : null;\n\t\t}\n\t}\n\n\treturn AsyncComponent;\n}\n","import React from 'react';\nimport ErrorWarning from 'assets/images/ErrorWarning.svg';\nimport './ErrorBoundary.scss';\n\nclass ErrorBoundary extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = { hasError: false };\n\t}\n\n\tstatic getDerivedStateFromError(error) {\n\t\t// Update state so the next render will show the fallback UI.\n\t\treturn {\n\t\t\thasError: true,\n\t\t\terror\n\t\t};\n\t}\n\n\tcomponentDidCatch(error, errorInfo) {\n\t\t// You can also log the error to an error reporting service\n\t\t// logErrorToMyService(error, errorInfo);\n\t\tconsole.error(error);\n\t\tconsole.error(errorInfo);\n\t}\n\n\trender() {\n\t\tconst { children } = this.props;\n\t\tconst { hasError } = this.state;\n\n\t\tif (hasError) {\n\t\t\t// You can render any custom fallback UI\n\t\t\treturn (\n\t\t\t\t<>\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\"Warning\"\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
Your requested information is unavailable. Please retry later.
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{'Visit the '}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tMarket Centre\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t.\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\"Attention\"\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
Les renseignements que vous avez demandés ne sont pas accessibles. Veuillez réessayer plus tard.
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{'Visitez le '}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tCentre des marchés\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t.\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\n\t\t\t);\n\t\t}\n\n\t\treturn children;\n\t}\n}\n\nexport default ErrorBoundary;\n","const chartColorHelper = {};\n\nchartColorHelper.colors = [\n\t'#0065AA',\n\t'#1B7D5A',\n\t'#B73917',\n\t'#333479',\n\t'#8A1C41',\n\t'#995002',\n\t'#024423',\n\t'#D03E5E',\n\t'#7B6E74',\n\t'#101316'\n];\n\nchartColorHelper.getColorByIndex = index => {\n\tconst num = `${index}`;\n\treturn chartColorHelper.colors[num.slice(-1)];\n};\n\nexport default chartColorHelper;\n","module.exports = __webpack_public_path__ + \"static/media/ErrorWarning.2c930901.svg\";","// eslint-disable-next-line no-undef\nconst { navigator } = window;\nconst { msSaveOrOpenBlob } = navigator || {};\nconst isIe = typeof msSaveOrOpenBlob !== 'undefined';\n// eslint-disable-next-line no-confusing-arrow\nconst cacheBust = () => isIe ? Date.now() : false;\n\nexport default (parameters, options) => {\n\treturn cacheBust() && !(options && options.skipCacheBust)\n\t\t? { ...parameters, cacheBust: cacheBust() }\n\t\t: parameters;\n};\n","/* eslint-disable max-len */\n/* eslint-disable arrow-body-style */\n// a library to wrap and simplify api calls\nimport apisauce from 'apisauce';\nimport { isDebugInfoOn } from 'Utils/pathUtils';\nimport writeToDebug from 'Utils/writeToDebug';\nimport showDebugRequestTransform from './showDebugTransforms/showDebugRequestTransform';\nimport buildParams from '../Utils/apiParametersBuilderHelper';\n\nconst create = (baseURL, authToken) => {\n\tconst api = apisauce.create({\n\t\t// base URL is read from the \"constructor\"\n\t\tbaseURL,\n\t\t// here are some default headers\n\t\theaders: {\n\t\t\tAccept: '*/*',\n\t\t\t'Cache-Control': 'no-store',\n\t\t\tAuthorization: `Bearer ${authToken}`\n\t\t},\n\t\t// 20 second timeout...\n\t\ttimeout: 20000\n\t});\n\n\tconst getData = (endPoint, parameters, options) => api.get(endPoint, buildParams(parameters, options));\n\tconst getPdfData = (endPoint, parameters, options) => api.get(endPoint, buildParams(parameters, options), { responseType: 'arraybuffer', withCredentials: false });\n\tconst postData = (endPoint, parameters) => api.post(endPoint, parameters);\n\tconst putData = (endPoint, parameters) => api.put(endPoint, parameters);\n\t// This is a hack so the parameters of a DELETE method are sent as the body in the request\n\tconst deleteData = (endPoint, parameters) => api.post(endPoint, parameters, { method: 'delete' });\n\tconst getDataDownload = (endPoint, parameters) => api.post(endPoint, parameters, { responseType: 'blob', withCredentials: false });\n\tapi.addRequestTransform(showDebugRequestTransform);\n\tapi.addResponseTransform(response => {\n\t\tif (isDebugInfoOn()) {\n\t\t\twriteToDebug(response);\n\t\t}\n\t});\n\treturn {\n\t\t// a list of the API functions from step 2\n\t\tapi,\n\t\tgetData,\n\t\tgetPdfData,\n\t\tpostData,\n\t\tputData,\n\t\tgetDataDownload,\n\t\tdeleteData\n\t};\n};\n\n// let's return back our create method as the default.\nexport default {\n\tcreate\n};\n","import Types from './Types';\n\nconst MarketHoursTradeType = {\n\tNormal: 'normal',\n\tExtended: 'extended',\n\tAll: 'all'\n};\n\nconst getRealtimeByTier = tier => {\n\tconst { code } = tier || {};\n\n\tswitch (code) {\n\t\tcase 'IEE':\n\t\tcase 'IISE':\n\t\tcase 'PEE':\n\t\t\treturn true;\n\t\tdefault:\n\t\t\treturn false;\n\t}\n};\n\nconst receiveQuotes = response => {\n\treturn ({\n\t\ttype: Types.API_RECEIVE_QUOTE,\n\t\tresponse\n\t});\n};\n\nconst handleLoader = fetchName => {\n\treturn ({\n\t\ttype: Types.API_HANDLE_QUOTE_LOADER,\n\t\tfetchName\n\t});\n};\n\nconst requestQuotes = (XidsArray, MarketHoursType = MarketHoursTradeType.Normal,\n\ttier = {}, realTimeOverride = undefined, responseHandler) => {\n\tconst realtime = (realTimeOverride !== undefined ? realTimeOverride : getRealtimeByTier(tier));\n\tconst XidsString = XidsArray.join(',');\n\tconst result = {\n\t\ttype: Types.API_REQUEST_QUOTE,\n\t\tendPoint: '/quote/v1/details',\n\t\tparams: {\n\t\t\tvenueXids: XidsString,\n\t\t\tmarketHoursTradeType: MarketHoursType\n\t\t},\n\t\theaders: {\n\t\t\trealtime\n\t\t},\n\t\tajaxType: 'GET',\n\t\tonSuccess: responseHandler || receiveQuotes,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingQuoteData'\n\t};\n\n\treturn result;\n};\n\nconst receiveLegacyQuotes = response => {\n\treturn ({\n\t\ttype: Types.API_CIBC_RECEIVE_LEGACY_QUOTE,\n\t\tresponse\n\t});\n};\n\nconst requestLegacyQuotes = (xid, tier = {}) => {\n\tconst result = {\n\t\ttype: Types.API_CIBC_REQUEST_LEGACY_QUOTE,\n\t\tendPoint: `/quote/legacy/${xid}`,\n\t\tparams: {},\n\t\theaders: {\n\t\t\trealtime: getRealtimeByTier(tier)\n\t\t},\n\t\tajaxType: 'GET',\n\t\tonSuccess: receiveLegacyQuotes,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingLegacyQuoteData'\n\t};\n\n\treturn result;\n};\n\nexport {\n\trequestQuotes,\n\treceiveQuotes,\n\tMarketHoursTradeType,\n\tgetRealtimeByTier,\n\trequestLegacyQuotes\n};\n","/* eslint-disable no-use-before-define */\n/* eslint-disable import/prefer-default-export */\nimport { findLastIndex } from 'lodash';\nimport { requestXrefByVenueXids } from './xrefActions';\nimport Types from './Types';\n\nconst deliveryConfigDefaults = {\n\tnoDelivery: {\n\t\tcoverCode: 'CB048',\n\t\tdelivery: 'NONE',\n\t\tdestinationId: 'noDelivery',\n\t\taddress: '',\n\t\tformat: 'TEXT',\n\t\tintraDaySuspend: {\n\t\t\tisOn: false\n\t\t},\n\t\tisOnDeliveryHold: false,\n\t\tisOnVacation: false,\n\t\tisSuspended: true,\n\t\tisUndeliverable: false,\n\t\tsuspensions: [{\n\t\t\tdescription: 'Global Suspend',\n\t\t\ttypeId: 1\n\t\t}]\n\t}\n};\n\nconst buildUpdateMarketAlert = (item, exchangeCode, timeframe, destinations) => {\n\treturn ({\n\t\tcriteria: {\n\t\t\texchangeCode,\n\t\t\ttimeframe\n\t\t},\n\t\tdestinations: destinations.map(d => d.destinationId),\n\t\titem\n\t});\n};\n\nconst buildStockAlert = (item, criteria, destinations) => {\n\treturn ({\n\t\tcriteria,\n\t\tdestinations: destinations.map(d => d.destinationId),\n\t\titem\n\t});\n};\n\nconst buildAnalystReportAlert = (alert, subscribed, destinations) => {\n\tconst { attributesMap, criteria } = alert || {};\n\tconst attributes = Object.keys(attributesMap).map(key => {\n\t\treturn ({\n\t\t\tname: key,\n\t\t\tvalue: JSON.stringify(attributesMap[key])\n\t\t});\n\t});\n\tconst input = {\n\t\tattributes,\n\t\titem: subscribed ? 634 : 628,\n\t\tcriteria,\n\t\tdestinations: destinations.map(d => d.destinationId)\n\t};\n\n\treturn (input);\n};\n\nconst handleLoader = fetchName => {\n\treturn ({\n\t\ttype: Types.API_HANDLE_ALERTS_LOADER,\n\t\tfetchName\n\t});\n};\n\nconst receiveAlertsProfile = response => {\n\treturn ({\n\t\ttype: Types.API_RECEIVE_ALERTS_PROFILE,\n\t\tresponse\n\t});\n};\n\nconst requestAlertsProfile = (includeSuspendInfo = true) => {\n\treturn ({\n\t\ttype: Types.API_REQUEST_ALERTS_PROFILE,\n\t\tendPoint: 'alerts/v1/profile',\n\t\tparams: {\n\t\t\tincludeSuspendInfo\n\t\t},\n\t\tajaxType: 'GET',\n\t\tonSuccess: receiveAlertsProfile,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingAlertsProfile'\n\t});\n};\n\nconst receiveAlertsDestinations = response => {\n\tconst actions = [{\n\t\ttype: Types.API_RECEIVE_ALERTS_PROFILE_DESTINATIONS,\n\t\tresponse\n\t}];\n\n\t// Adding this destination so there is always at least one destination\n\t// so that alerts can be set before there has been an email set\n\tif (response && response.data && response.data.items) {\n\t\tconst { items } = response.data;\n\t\tconst noDeliveryIndex = findLastIndex(items, { destinationId: 'noDelivery' });\n\n\t\t// Adding the noDelivery destination if it does not exist\n\t\tif (noDeliveryIndex === -1) {\n\t\t\tconst { noDelivery } = deliveryConfigDefaults;\n\t\t\tconst { destinationId } = noDelivery;\n\t\t\tactions.push(requestPutDestination(destinationId, noDelivery));\n\t\t}\n\t}\n\n\treturn actions;\n};\n\nconst requestAlertsDestinations = (includeSuspendInfo = true) => {\n\treturn ({\n\t\ttype: Types.API_REQUEST_ALERTS_PROFILE_DESTINATIONS,\n\t\tendPoint: 'alerts/v1/profile/destinations',\n\t\tparams: {\n\t\t\tincludeSuspendInfo\n\t\t},\n\t\tajaxType: 'GET',\n\t\tonSuccess: receiveAlertsDestinations,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingAlertsDestination'\n\t});\n};\n\nconst receiveAlertsSubscriptions = response => {\n\tconst actions = [{\n\t\ttype: Types.API_RECEIVE_ALERTS_SUBSCRIPTIONS,\n\t\tresponse\n\t}];\n\tconst { data } = response;\n\tconst { items } = data || {};\n\n\tif (items && items.length) {\n\t\tconst xids = [];\n\n\t\titems.forEach(item => {\n\t\t\tif (item.criteria && item.criteria.venueXid && xids.indexOf(item.criteria.venueXid) === -1) {\n\t\t\t\txids.push(item.criteria.venueXid);\n\t\t\t}\n\t\t});\n\n\t\tif (xids.length > 0) {\n\t\t\tconst chunk = 40;\n\t\t\tfor (let i = 0; i < xids.length; i += chunk) {\n\t\t\t\tconst tempXids = xids.slice(i, i + chunk);\n\t\t\t\t// breaking the xref calls into chunks of 40\n\t\t\t\tactions.push(requestXrefByVenueXids(tempXids));\n\t\t\t}\n\t\t}\n\t}\n\n\treturn actions;\n};\n\nconst requestAlertsSubscriptions = (\n\titem,\n\tvenueXid,\n\talertCategory,\n\tdestinationId,\n\toffset,\n\tlimit = 1000\n) => {\n\treturn ({\n\t\ttype: Types.API_REQUEST_ALERTS_SUBSCRIPTIONS,\n\t\tendPoint: 'alerts/v1/subscriptions',\n\t\tparams: {\n\t\t\titem,\n\t\t\tvenueXid,\n\t\t\talertCategory,\n\t\t\tdestinationId,\n\t\t\tlimit,\n\t\t\toffset\n\t\t},\n\t\tajaxType: 'GET',\n\t\tonSuccess: receiveAlertsSubscriptions,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingAlertsSubscriptions'\n\t});\n};\n\nconst requestAlertById = itemId => {\n\treturn ({\n\t\ttype: Types.API_REQUEST_ALERTS_SUBSCRIPTIONS,\n\t\tendPoint: `alerts/v1/subscriptions/${itemId}`,\n\t\tparams: {\n\t\t\tdestinationId: 'noDelivery'\n\t\t},\n\t\tajaxType: 'GET',\n\t\tonSuccess: receiveAlertsSubscriptions,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingAlertsSubscriptions'\n\t});\n};\n\nconst requestAlertByCategory = (alertCategory, limit) => {\n\treturn ({\n\t\ttype: Types.API_REQUEST_ALERTS_SUBSCRIPTIONS,\n\t\tendPoint: 'alerts/v1/subscriptions/',\n\t\tparams: {\n\t\t\talertCategory,\n\t\t\tlimit\n\t\t},\n\t\tajaxType: 'GET',\n\t\tonSuccess: receiveAlertsSubscriptions,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingAlertsSubscriptions'\n\t});\n};\n\nconst receiveDeleteDestination = response => {\n\treturn ({\n\t\ttype: Types.API_RECEIVE_ALERTS_DELETE_DESTINATION,\n\t\tresponse\n\t}, requestAlertsDestinations());\n};\n\nconst requestDeleteDestination = destinationId => {\n\treturn ({\n\t\ttype: Types.API_REQUEST_ALERTS_DELETE_DESTINATION,\n\t\tendPoint: `alerts/v1/profile/destinations/${destinationId}`,\n\t\tajaxType: 'DELETE',\n\t\tonSuccess: receiveDeleteDestination,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingDeleteDestination'\n\t});\n};\n\nconst receivePutDestination = response => {\n\treturn ({\n\t\ttype: Types.API_RECEIVE_ALERTS_PUT_DESTINATION,\n\t\tresponse\n\t}, requestAlertsDestinations());\n};\n\nconst requestPutDestination = (\n\tdestinationId,\n\tdestination\n) => {\n\treturn ({\n\t\ttype: Types.API_REQUEST_ALERTS_PUT_DESTINATION,\n\t\tendPoint: `alerts/v1/profile/destinations/${destinationId}`,\n\t\tparams: destination,\n\t\tajaxType: 'PUT',\n\t\tonSuccess: receivePutDestination,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingPutDestination'\n\t});\n};\n\nconst receivePostProfile = response => {\n\treturn ({\n\t\ttype: Types.API_RECEIVE_ALERTS_POST_PROFILE,\n\t\tresponse\n\t});\n};\n\nconst requestPostProfile = profileObj => {\n\treturn ({\n\t\ttype: Types.API_REQUEST_ALERTS_POST_PROFILE,\n\t\tendPoint: 'alerts/v1/profile',\n\t\tparams: profileObj,\n\t\tajaxType: 'POST',\n\t\tonSuccess: receivePostProfile,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingPostProfile'\n\t});\n};\n\nconst receiveDeleteAlerts = response => {\n\treturn ({\n\t\ttype: Types.API_RECEIVE_ALERTS_DELETE,\n\t\tresponse\n\t});\n};\n\nconst requestDeleteAlerts = itemIds => {\n\treturn ({\n\t\ttype: Types.API_REQUEST_ALERTS_DELETE,\n\t\tendPoint: `alerts/v1/subscriptions/${itemIds.join(',')}`,\n\t\tajaxType: 'DELETE',\n\t\tonSuccess: receiveDeleteAlerts,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingDeleteAlerts'\n\t});\n};\n\nconst receiveUpdateAlert = response => {\n\treturn ({\n\t\ttype: Types.API_RECEIVE_ALERT_UPDATE,\n\t\tresponse\n\t});\n};\n\nconst requestUpdateAlert = (itemId, alert) => {\n\treturn ({\n\t\ttype: Types.API_REQUEST_ALERT_UPDATE,\n\t\tendPoint: `alerts/v1/subscriptions/${itemId}`,\n\t\tajaxType: 'PUT',\n\t\tparams: alert,\n\t\tonSuccess: receiveUpdateAlert,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingUpdateAlert'\n\t});\n};\n\nconst receiveUpdateAnalystResearchAlert = response => {\n\tconst actions = [\n\t\treceiveUpdateAlert(response),\n\t\trequestAlertsSubscriptions()\n\t];\n\n\treturn actions;\n};\n\nconst requestUpdateAnalystResearchAlert = (itemId, alert) => {\n\treturn ({\n\t\ttype: Types.API_CIBC_REQUEST_ALERT_UPDATE,\n\t\tendPoint: `/analystresearch/alerts/${itemId}`,\n\t\tajaxType: 'PUT',\n\t\tparams: alert,\n\t\tonSuccess: receiveUpdateAnalystResearchAlert,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingUpdateAlert'\n\t});\n};\n\nconst requestSetAnalystResearchAlert = alert => {\n\treturn ({\n\t\ttype: Types.API_CIBC_REQUEST_ALERT_UPDATE,\n\t\tendPoint: '/analystresearch/alerts',\n\t\tajaxType: 'POST',\n\t\tparams: alert,\n\t\tonSuccess: receiveUpdateAnalystResearchAlert,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingUpdateAlert'\n\t});\n};\n\nconst receiveAddAlerts = response => {\n\treturn ({\n\t\ttype: Types.API_RECEIVE_ALERTS_ADD,\n\t\tresponse\n\t});\n};\n\nconst requestAddAlerts = alerts => {\n\treturn ({\n\t\ttype: Types.API_REQUEST_ALERTS_ADD,\n\t\tendPoint: 'alerts/v1/subscriptions',\n\t\tajaxType: 'POST',\n\t\tparams: alerts,\n\t\tonSuccess: receiveAddAlerts,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingAddAlerts'\n\t});\n};\n\nexport {\n\trequestAlertsProfile,\n\trequestAlertsDestinations,\n\trequestAlertsSubscriptions,\n\trequestAlertById,\n\trequestAlertByCategory,\n\trequestDeleteDestination,\n\trequestPutDestination,\n\trequestPostProfile,\n\trequestUpdateAlert,\n\trequestUpdateAnalystResearchAlert,\n\trequestSetAnalystResearchAlert,\n\trequestDeleteAlerts,\n\trequestAddAlerts,\n\tbuildUpdateMarketAlert,\n\tbuildAnalystReportAlert,\n\tbuildStockAlert\n};\n","/* eslint-disable max-len */\n/* global window */\nexport default response => {\n\tif (window.Debug) {\n\t\tconst responseData = response.data;\n\n\t\ttry {\n\t\t\tlet o;\n\t\t\teval(`o=${responseData}`);// eslint-disable-line no-eval\n\t\t\tresponse.data = o;\n\t\t} catch (e) {\n\t\t\te.message = `Error writing to debug: ${e.message}`;\n\t\t\tthrow e;\n\t\t}\n\n\t\t// Fallback if response did not serialize correctly; with a little luck this code never gets hit.\n\t\t// MIGHTDO this does not perform as expected.\n\t\tif (!response.data || !Object.keys(response.data).length) {\n\t\t\t// First line of string contains JSON\n\t\t\tconst firstLine = responseData.split('\\n')[0];\n\t\t\tlet parsedData;\n\n\t\t\ttry {\n\t\t\t\tparsedData = JSON.parse(firstLine);\n\t\t\t} catch (e) {\n\t\t\t\tthrow new Error('Unable to convert response to JSON object');\n\t\t\t}\n\n\t\t\tresponse.data = parsedData;\n\t\t}\n\t}\n};\n","import { isDebugInfoOn } from '../../Utils/pathUtils';\n\nexport default request => {\n\tif (isDebugInfoOn()) {\n\t\t// params don't work on POST and PUT requests; we'll have to add the query manually\n\t\tif (request.method.toLowerCase() === 'post' || request.method.toLowerCase() === 'put') {\n\t\t\trequest.url = request.url.indexOf('?') === -1\n\t\t\t\t? `${request.url}?..showdebugdata..=on`\n\t\t\t\t: `${request.url}&..showdebugdata..=on`;\n\t\t} else {\n\t\t\trequest.params['..showdebugdata..'] = 'on';\n\t\t}\n\t}\n};\n","import React from 'react';\nimport { withTranslate } from 'react-redux-multilingual';\n\nconst NoData = props => {\n\tconst { translate, errorString } = props;\n\n\treturn (\n\t\t<>\n\t\t\t{errorString}\n\t\t\t{translate && translate('noData')}\n\t\t\n\t);\n};\n\nexport default withTranslate(NoData);\n","/* eslint-disable no-restricted-globals */\n/* eslint-disable no-mixed-spaces-and-tabs */\n// https://format.dev.services.mdgapp.net/ formatting docs.\nimport MarkitFormat from '@markit/format';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport 'moment/locale/fr';\nimport NoData from 'components/NoData/NoData';\nimport React from 'react';\nimport { get, forEach, set } from 'lodash';\n\nconst formatOptions = {\n\tdateFormat: 'L',\n\terrorString: '--',\n\tinputTimezone: 'America/New_York',\n\tlocale: null, // MIGHTDO pull this from query string if CIBC decides to pass language there\n\tpercentModifier: 0.01,\n\tprecision: {\n\t\tnumber: 0,\n\t\tpercent: 2,\n\t\tprice: 2\n\t},\n\tshowNegAsParentheses: false,\n\tshowSign: false,\n\ttimeFormat: 'LT'\n};\n\nconst frenchLocale = {\n\tdelimiters: {\n\t\tthousands: ' ',\n\t\tdecimal: ','\n\t},\n\tabbreviations: {\n\t\tthousand: 'k',\n\t\tmillion: 'm',\n\t\tbillion: 'b',\n\t\ttrillion: 't'\n\t},\n\tordinal: number => {\n\t\treturn number === 1 ? 'er' : 'ème';\n\t},\n\tcurrency: {\n\t\tsymbol: ' $'\n\t}\n};\n\nMarkitFormat.extend({\n\tmyLocale(lang) {\n\t\tMarkitFormat.setLocale(lang);\n\t\tif (lang === 'fr') {\n\t\t\tthis.numeral.locales.fr = frenchLocale;\n\t\t}\n\t},\n\n\tsetDocumentLocale(lang) {\n\t\t// eslint-disable-next-line no-undef\n\t\tconst htmlDoc = document.getElementsByTagName('html')[0];\n\t\thtmlDoc.setAttribute('lang', lang);\n\t},\n\tunformat(formattedInput) {\n\t\tif (formattedInput && typeof formattedInput === 'string') {\n\t\t\treturn this.numeral(formattedInput).value();\n\t\t}\n\t\treturn formattedInput;\n\t},\n\tisValidNumber(input) {\n\t\tif (input !== undefined && input != null && input !== '' && !isNaN(input) && input !== -32768 && input !== '-32768') {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},\n\tisValidString(input) {\n\t\tif (input && input != null && input.replace(/^\\s+/, '').replace(/\\s+$/, '') !== '' && input !== '-32768') {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},\n\tisValidDateString(input) {\n\t\tif (input && typeof (input) === 'string' && input.length) {\n\t\t\tconst year = this.moment(input, 'YYYY').year();\n\t\t\tif (year >= 1900) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t},\n\tisValidMsDate(input) {\n\t\treturn this.isValidNumber(input) && input > 2000;\n\t},\n\t/**\n\t * Checks string for null or emtpy values and returns error string or input as a string.\n\t * @param {string || number} input\n\t */\n\tstring(input) {\n\t\tif (input === undefined || input === null || input === '' || input === -32768 || input === '-32768') {\n\t\t\treturn this.errorValue();\n\t\t}\n\t\treturn `${input}`;\n\t},\n\t/**\n\t * Just returns the currently configured error value\n\t */\n\terrorValue() {\n\t\treturn ;\n\t},\n\t/**\n\t * Formats number as price and variable decimal places, min 2 max 4 based on data\n\t * @param {number} input\n\t * @param {number} precision\n\t * @param {object} options\n\t */\n\tpriceVariablePrecision(input, decimals) {\n\t\tif (input === 0 && !decimals) {\n\t\t\treturn this.numeral(input).format('0.00');\n\t\t}\n\t\tif (!this.isValidNumber(input)) {\n\t\t\treturn this.errorValue();\n\t\t}\n\n\t\tlet decimalString = '00[00]';\n\t\tif (decimals) {\n\t\t\tdecimalString = '[';\n\t\t\tfor (let index = 0; index < decimals; index += 1) {\n\t\t\t\tdecimalString = `${decimalString}0`;\n\t\t\t}\n\t\t\tdecimalString = `${decimalString}]`;\n\t\t}\n\n\t\tif (this.moment.locale() === 'fr') {\n\t\t\treturn this.numeral(input).format(`0,000.${decimalString}$`);\n\t\t}\n\t\treturn this.numeral(input).format(`$0,000.${decimalString}`);\n\t},\n\t/**\n\t * Formats number as price and variable decimal places, min 2 max 4 based on data\n\t * @param {number} input\n\t * @param {number} precision\n\t * @param {object} options\n\t */\n\tpriceWithSignVariablePrecision(input, decimals) {\n\t\tif (!this.isValidNumber(input)) {\n\t\t\treturn this.errorValue();\n\t\t}\n\n\t\tlet decimalString = '00[00]';\n\t\tif (decimals) {\n\t\t\tdecimalString = '[';\n\t\t\tfor (let index = 0; index < decimals; index += 1) {\n\t\t\t\tdecimalString = `${decimalString}0`;\n\t\t\t}\n\t\t\tdecimalString = `${decimalString}]`;\n\t\t}\n\n\t\tif (input > 0) {\n\t\t\tif (this.moment.locale() === 'fr') {\n\t\t\t\treturn this.numeral(input).format(`+0,000.${decimalString}$`);\n\t\t\t}\n\t\t\treturn this.numeral(input).format(`+$0,000.${decimalString}`);\n\t\t}\n\n\t\tif (this.moment.locale() === 'fr') {\n\t\t\treturn this.numeral(input).format(`0,000.${decimalString}$`);\n\t\t}\n\t\treturn this.numeral(input).format(`$0,000.${decimalString}`);\n\t},\n\t/**\n\t * Formats number with variable decimal places, min 2 max 4 based on data\n\t * @param {number} input\n\t * @param {number} precision\n\t * @param {object} options\n\t */\n\tnumberVariablePrecision(input, decimals) {\n\t\tif (!this.isValidNumber(input)) {\n\t\t\treturn this.errorValue();\n\t\t}\n\t\tlet decimalString = '00[00]';\n\t\tif (decimals) {\n\t\t\tdecimalString = '[';\n\t\t\tfor (let index = 0; index < decimals; index += 1) {\n\t\t\t\tdecimalString = `${decimalString}0`;\n\t\t\t}\n\t\t\tdecimalString = `${decimalString}]`;\n\t\t}\n\t\treturn this.numeral(input).format(`0,000.${decimalString}`);\n\t},\n\t/**\n\t * Formats number with variable decimal places, min 2 max 4 based on data with sign\n\t * @param {number} input\n\t * @param {number} precision\n\t * @param {object} options\n\t */\n\tnumberWithSignVariablePrecision(input, decimals) {\n\t\tif (input === 0 && !decimals) {\n\t\t\treturn this.numeral(input).format('0.00');\n\t\t}\n\t\tif (!this.isValidNumber(input)) {\n\t\t\treturn this.errorValue();\n\t\t}\n\t\tlet decimalString = '00[00]';\n\t\tif (decimals) {\n\t\t\tdecimalString = '[';\n\t\t\tfor (let index = 0; index < decimals; index += 1) {\n\t\t\t\tdecimalString = `${decimalString}0`;\n\t\t\t}\n\t\t\tdecimalString = `${decimalString}]`;\n\t\t}\n\t\treturn this.numeral(input).format(`+0,000.${decimalString}`);\n\t},\n\t/**\n\t * Formats number as percent with variable decimal places, min 2 max 4 based on data with sign\n\t * @param {number} input\n\t * @param {number} precision\n\t * @param {object} options\n\t */\n\tpercentWithSignVariablePrecision(input) {\n\t\tif (input === 0) {\n\t\t\treturn this.numeral(input).format('0.00%');\n\t\t}\n\t\tif (!this.isValidNumber(input)) {\n\t\t\treturn this.errorValue();\n\t\t}\n\t\treturn this.numeral(input / 100).format('+0.00[00]%');\n\t},\n\t/**\n\t * Formats number as percent with variable decimal places, min 2 max 4 based on data\n\t * @param {number} input\n\t * @param {number} precision\n\t * @param {object} options\n\t */\n\tpercentVariablePrecision(input) {\n\t\tif (!this.isValidNumber(input)) {\n\t\t\treturn this.errorValue();\n\t\t}\n\t\treturn this.numeral(input / 100).format('0.00[00]%');\n\t},\n\t/**\n\t * Formats number as price with no sign\n\t * @param {number} input\n\t * @param {number} precision\n\t * @param {object} options\n\t */\n\tpriceNoSign(input, precision = null, options = null) {\n\t\tif (input === 0) {\n\t\t\treturn this.numeral(input).format('0.00');\n\t\t}\n\t\tif (!this.isValidNumber(input)) {\n\t\t\treturn this.errorValue();\n\t\t}\n\t\tif (precision != null) {\n\t\t\tif (this.moment.locale() === 'fr') {\n\t\t\t\tconst formatted = this.price(input, precision, { showSign: false, ...options });\n\t\t\t\treturn `${formatted.replace('$', '')} $`;\n\t\t\t}\n\t\t\treturn this.price(input, precision, { showSign: false, ...options });\n\t\t}\n\t\treturn this.priceVariablePrecision(input);\n\t},\n\t/**\n\t * Formats number as price with sign\n\t * @param {number} input\n\t */\n\tpriceWithSign(input, precision = null, options = null) {\n\t\tif (input === 0) {\n\t\t\treturn this.numeral(input).format('0.00');\n\t\t}\n\t\tif (!this.isValidNumber(input)) {\n\t\t\treturn this.errorValue();\n\t\t}\n\t\tif (precision != null) {\n\t\t\tif (this.moment.locale() === 'fr') {\n\t\t\t\tconst formatted = this.price(input, precision, { showSign: true, ...options });\n\t\t\t\treturn `${formatted.replace('$', '')} $`;\n\t\t\t}\n\t\t\treturn this.price(input, precision, { showSign: true, ...options });\n\t\t}\n\t\treturn this.priceWithSignVariablePrecision(input);\n\t},\n\t/**\n\t * Formats number as percent multiplied by 100\n\t * @param {number} input\n\t * @param {number} precision\n\t * @param {object} options\n\t */\n\tpercentMultiplied(input, precision = 2, options = null) {\n\t\tif (input === 0) {\n\t\t\treturn this.numeral(input).format('0.00%');\n\t\t}\n\t\tif (!this.isValidNumber(input)) {\n\t\t\treturn this.errorValue();\n\t\t}\n\t\treturn this.percent(input, precision, { percentModifier: 1, ...options });\n\t},\n\t/**\n\t * Formats number as percent with sign\n\t * @param {number} input\n\t */\n\tpercentWithSign(input, precision = 2, options = null) {\n\t\tif (input === 0) {\n\t\t\treturn this.numeral(input).format('0.00%');\n\t\t}\n\t\tif (!this.isValidNumber(input)) {\n\t\t\treturn this.errorValue();\n\t\t}\n\t\treturn this.percent(input, precision, { showSign: true, ...options });\n\t},\n\t/**\n\t * Formats number as percent with no sign\n\t * @param {number} input\n\t */\n\tpercentNoSign(input, precision = 2, options = null) {\n\t\tif (input === 0) {\n\t\t\treturn this.numeral(input).format('0.00%');\n\t\t}\n\t\tif (!this.isValidNumber(input)) {\n\t\t\treturn this.errorValue();\n\t\t}\n\t\treturn this.percent(input, precision, { showSign: false, ...options });\n\t},\n\t/**\n\t * Formats number with sign\n\t * @param {number} input\n\t * @param {number} precision\n\t * @param {object} options\n\t */\n\tnumberWithSign(input, precision = null, options = null) {\n\t\tif (input === 0) {\n\t\t\treturn this.numeral(input).format('0.00');\n\t\t}\n\t\tif (!this.isValidNumber(input)) {\n\t\t\treturn this.errorValue();\n\t\t}\n\t\tif (precision != null) {\n\t\t\treturn this.number(input, precision, { showSign: true, ...options });\n\t\t}\n\t\treturn this.numberWithSignVariablePrecision(input);\n\t},\n\tnumberInput(input) {\n\t\treturn this.numeral(input).format('0,000.[00]');\n\t},\n\t/**\n\t * Formats number with no sign\n\t * @param {number} input\n\t * @param {number} precision\n\t * @param {object} options\n\t */\n\tnumberNoSign(input, precision = null, options = null) {\n\t\tif (input === 0) {\n\t\t\treturn precision !== null\n\t\t\t\t? this.number(input, precision, { showSign: false, ...options })\n\t\t\t\t: this.numeral(input).format('0.00');\n\t\t}\n\n\t\tif (!this.isValidNumber(input)) {\n\t\t\treturn this.errorValue();\n\t\t}\n\t\tif (precision != null) {\n\t\t\treturn this.number(input, precision, { showSign: false, ...options });\n\t\t}\n\t\treturn this.numberVariablePrecision(input);\n\t},\n\tnumberupTo5Decimal(input) {\n\t\treturn this.numeral(input).format('0,000.[00000]');\n\t},\n\t/**\n\t * Adds x to the from of the bid or ask size \"x3\"\n\t * @param {number} input\n\t * @param {number} precision\n\t * @param {object} options\n\t */\n\tbidSize(input, precision = 0, options = null) {\n\t\tif (!this.isValidNumber(input)) {\n\t\t\treturn this.errorValue();\n\t\t}\n\t\treturn `${input ? 'x' : ''}${this.number(input, precision, { ...options })}`;\n\t},\n\t/**\n\t * Adds x to the back of the bid or ask size \"13.21x\"\n\t * @param {number} input\n\t * @param {number} precision\n\t * @param {object} options\n\t */\n\tnumberX(input, precision = 2, options = null) {\n\t\tif (!this.isValidNumber(input)) {\n\t\t\treturn this.errorValue();\n\t\t}\n\t\treturn `${this.number(input, precision, { ...options })}x`;\n\t},\n\t/**\n\t * Formats number with magnitude indicator\n\t * 2 m, 1.4 k, if the value is < 1000 the precision is ignored;\n\t * @param {number} input\n\t * @param {number} precision\n\t * @param {object} options\n\t */\n\tpriceVariableMagnitude(input, precision = 1, options = null) {\n\t\tif (precision !== null && input < 1000) {\n\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\tprecision = null;\n\t\t}\n\t\tif (!this.isValidNumber(input)) {\n\t\t\treturn this.errorValue();\n\t\t}\n\t\treturn this.price(input, precision, { showMagnitude: true, ...options }).replace(' ', '').toUpperCase();\n\t},\n\t/**\n\t * Formats number with magnitude indicator\n\t * 2 m, 1.4 k, if the value is < 1000 the precision is ignored;\n\t * @param {number} input\n\t * @param {number} precision\n\t * @param {object} options\n\t */\n\tnumberVariableMagnitude(input, precision = null, options = null) {\n\t\tif (precision !== null && input < 1000) {\n\t\t\t// eslint-disable-next-line no-param-reassign\n\t\t\tprecision = null;\n\t\t}\n\t\tif (!this.isValidNumber(input)) {\n\t\t\treturn this.errorValue();\n\t\t}\n\t\treturn this.number(input, precision, { showMagnitude: true, ...options }).replace(' ', '').toUpperCase();\n\t},\n\t/**\n\t * Formats number with magnitude indicator 2 m, 1.4 k\n\t * @param {*} input\n\t * @param {*} precision\n\t * @param {*} options\n\t */\n\tnumberMagnitude(input, precision = null, options = null) {\n\t\tif (!this.isValidNumber(input)) {\n\t\t\treturn this.errorValue();\n\t\t}\n\t\treturn this.number(input, precision, { showMagnitude: true, ...options }).replace(' ', '').toUpperCase();\n\t},\n\t/**\n\t * Formats date object as Wednesday, October 21, 2015 10:29 AM\n\t * @param {object} input\n\t * @param {string} format\n\t * @param {object} options\n\t */\n\tdateTimeLong(input, format = 'LLLL', options = null) {\n\t\tif (this.isValidDateString(input)) {\n\t\t\treturn this.time(input, format, options);\n\t\t}\n\n\t\treturn this.errorValue();\n\t},\n\t/**\n\t * Formats date object as 10/12/20\n\t * @param {object} input\n\t * @param {string} format\n\t * @param {object} options\n\t */\n\tmonthDayYearShort(input, format = 'M/DD/YY', options = null) {\n\t\tif (this.isValidDateString(input)) {\n\t\t\treturn this.time(input, format, { outputTimezone: 'America/New_York', ...options });\n\t\t}\n\n\t\treturn this.errorValue();\n\t},\n\t/**\n\t * Formats date object as 10/12/2020\n\t * @param {object} input\n\t * @param {string} format\n\t * @param {object} options\n\t */\n\tmonthDayLongYear(input, format = 'M/DD/YYYY', options = null) {\n\t\tif (this.isValidDateString(input)) {\n\t\t\treturn this.time(input, format, { outputTimezone: 'America/New_York', ...options });\n\t\t}\n\n\t\treturn this.errorValue();\n\t},\n\t/**\n\t * Formats date object as October 21\n\t * @param {object} input\n\t * @param {string} format\n\t * @param {object} options\n\t */\n\tmonthDayShort(input, format = 'MMMM DD', options = null) {\n\t\tif (this.isValidDateString(input)) {\n\t\t\treturn this.time(input, format, { outputTimezone: 'America/New_York', ...options });\n\t\t}\n\n\t\treturn this.errorValue();\n\t},\n\t/**\n\t * Formats date object as Oct 21, 2020\n\t * @param {object} input\n\t * @param {string} format\n\t * @param {object} options\n\t */\n\tmonthDayYear(input, format = 'MMM DD, YYYY', options = null) {\n\t\tif (this.isValidDateString(input)\n\t\t|| (options && options.isMSDate && this.isValidMsDate(input))) {\n\t\t\treturn this.time(input, format, { outputTimezone: 'America/New_York', ...options });\n\t\t}\n\t\treturn this.errorValue();\n\t},\n\t/**\n\t * Formats date object as Oct 21, 2020 - no conversion to ET\n\t * @param {object} input\n\t * @param {string} format\n\t * @param {object} options\n\t */\n\tmonthDayYearUtc(input, format = 'MMM DD, YYYY', options = null) {\n\t\tif (this.isValidDateString(input)\n\t\t|| (options && options.isMSDate && this.isValidMsDate(input))) {\n\t\t\treturn this.time(input, format, { outputTimezone: 'UTC', ...options });\n\t\t}\n\t\treturn this.errorValue();\n\t},\n\t/**\n\t * Formats date object as Oct 21, 2020 3:15 ET\n\t * @param {object} input\n\t * @param {string} format\n\t * @param {object} options\n\t */\n\tmonthDay2DigitYearTime(input, format = 'MMM DD, YY h:mm', options = null) {\n\t\tif (this.isValidDateString(input)) {\n\t\t\treturn `${this.time(input, format, { outputTimezone: 'America/New_York', ...options })} ET`;\n\t\t}\n\t\treturn this.errorValue();\n\t},\n\t/**\n\t * Formats date object as Oct\n\t * @param {object} input\n\t * @param {string} format\n\t * @param {object} options\n\t */\n\tmonth(input, format = 'MMM', options = null) {\n\t\treturn this.time(input, format, { outputTimezone: 'America/New_York', ...options });\n\t},\n\t/**\n\t * Formats date object as 21\n\t * @param {object} input\n\t * @param {string} format\n\t * @param {object} options\n\t */\n\tday(input, format = 'DD', options = null) {\n\t\treturn this.time(input, format, { outputTimezone: 'America/New_York', ...options });\n\t},\n\t/**\n\t * Formats date object as 21\n\t * @param {object} input\n\t * @param {string} format\n\t * @param {object} options\n\t */\n\tyear(input, format = 'YY', options = null) {\n\t\treturn this.time(input, format, { outputTimezone: 'America/New_York', ...options });\n\t},\n\t/**\n\t * Formats date object as October 21, 2020\n\t * @param {object} input\n\t * @param {string} format\n\t * @param {object} options\n\t */\n\tmonthDayYearLong(input, format = 'MMMM DD, YYYY', options = null) {\n\t\tif (this.isValidDateString(input)) {\n\t\t\treturn this.time(input, format, { outputTimezone: 'America/New_York', ...options });\n\t\t}\n\n\t\treturn this.errorValue();\n\t},\n\t/**\n\t * Formats date object as Wednesday, October 21, 2015 10:29 AM\n\t * @param {object} input\n\t * @param {string} format\n\t * @param {object} options\n\t */\n\tmonthDayYearTime(input, format = 'MMM DD, YYYY h:mmA', options = null) {\n\t\tif (this.isValidDateString(input)) {\n\t\t\treturn `${this.time(input, format, { outputTimezone: 'America/New_York', ...options })} ET`;\n\t\t}\n\n\t\treturn this.errorValue();\n\t},\n\t/**\n\t * Formats date object as 2020-05-29 12:07AM ET\n\t * @param {object} input\n\t * @param {string} format\n\t * @param {object} options\n\t */\n\tmonthDayYearTimeNoZone(input, format = 'MMM DD, YYYY h:mmA z', options = null) {\n\t\tif (this.isValidDateString(input)) {\n\t\t\treturn this.time(input, format, { ...options });\n\t\t}\n\n\t\treturn this.errorValue();\n\t},\n\t/**\n\t * Formats date object as 05/28/20 10:07PM ET\n\t * @param {object} input\n\t * @param {string} format\n\t * @param {object} options\n\t */\n\tmonthDayYearShortTimeNoZone(input, format = 'M/DD/YY h:mmA z', options = null) {\n\t\tif (this.isValidDateString(input)) {\n\t\t\treturn this.time(input, format, { ...options });\n\t\t}\n\n\t\treturn this.errorValue();\n\t},\n\t/**\n\t * Formats date object as 05/28/2020 10:07PM ET\n\t * @param {object} input\n\t * @param {string} format\n\t * @param {object} options\n\t */\n\tmonthDayYearShortTimeUTCtoET(input, format = 'M/DD/YYYY h:mm A', options = {\n\t\tinputTimezone: 'UTC',\n\t\toutputTimezone: 'America/New_York'\n\t}) {\n\t\tif (this.isValidDateString(input)) {\n\t\t\treturn `${this.time(input, format, { ...options })} ET`;\n\t\t}\n\n\t\treturn this.errorValue();\n\t},\n\t/**\n\t * Formats date object as 05/28/2020 10:07PM\n\t * @param {object} input\n\t * @param {string} format\n\t * @param {object} options\n\t */\n\t monthDayYearShortTime(input,\n\t\tformat = this.moment.locale() === 'en' ? 'MM/DD/YYYY h:mm A' : 'DD/MM/YYYY \\\\à H \\\\h mm',\n\t options = null) {\n\t\tif (this.isValidDateString(input)) {\n\t\t\treturn `${this.time(input, format, { ...options })}`;\n\t\t}\n\n\t\treturn this.errorValue();\n\t},\n\t/**\n\t * Formats date object as 10:29 AM ET\n\t * @param {object} input\n\t * @param {string} format\n\t * @param {object} options\n\t */\n\ttimeWithTimezone(input, format = 'h:mmA', options = null) {\n\t\tif (this.isValidDateString(input)) {\n\t\t\treturn `${this.time(input, format, { outputTimezone: 'America/New_York', ...options })} ET`;\n\t\t}\n\n\t\treturn this.errorValue();\n\t},\n\t/**\n\t * Formats date object as 2020-10-21 10:29AM\n\t * @param {object} input\n\t * @param {string} format\n\t * @param {object} options\n\t */\n\tyearMonthDayTimeNoZone(input, format = 'YYYY-MM-DD h:mmA', options = null) {\n\t\treturn this.time(input, format, { outputTimezone: 'America/New_York', ...options });\n\t},\n\t/**\n\t * Returns class 'red' for negative or 'green' for positive\n\t * @param {*} input\n\t */\n\tgetColorClass(input) {\n\t\tif (this.isValidNumber(input) && input !== 0) {\n\t\t\treturn input > 0 ? 'green' : 'red';\n\t\t}\n\t\treturn '';\n\t},\n\tratio(input, precision, options) {\n\t\treturn `${this.number(input, precision, { ...options })}${this.isValidNumber(input) ? 'x' : ''}`;\n\t},\n\tpeRatio(input, precision, options) {\n\t\tif (this.isValidNumber(input) && input > 0) {\n\t\t\treturn this.ratio(input, precision, options);\n\t\t}\n\n\t\treturn this.errorValue();\n\t},\n\tfileSize(input) {\n\t\tif (this.isValidNumber(input)) {\n\t\t\tconst value = Math.floor(input / 1024);\n\t\t\treturn `${value} KB`;\n\t\t}\n\n\t\treturn this.errorValue();\n\t},\n\tupDown(input) {\n\t\tlet result = '';\n\t\tif (input && this.isValidNumber(input) && (input !== 0)) {\n\t\t\tresult = (input > 0 ? 'up' : 'down');\n\t\t}\n\n\t\treturn result;\n\t},\n\t/**\n\t * converts number value to AAA credit string\n\t */\n\tcreditQualityConverter(credit, translate) {\n\t\tlet creditText = this.errorValue();\n\n\t\tif (credit < 3) {\n\t\t\tcreditText = 'AAA';\n\t\t} else if (credit < 6) {\n\t\t\tcreditText = 'AA';\n\t\t} else if (credit < 9) {\n\t\t\tcreditText = 'A';\n\t\t} else if (credit < 12) {\n\t\t\tcreditText = 'BBB';\n\t\t} else if (credit < 15) {\n\t\t\tcreditText = 'BB';\n\t\t} else if (credit < 18) {\n\t\t\tcreditText = 'B';\n\t\t} else {\n\t\t\tcreditText = translate('belowB');\n\t\t}\n\n\t\treturn creditText;\n\t},\n\t/**\n\t * Removes the utc timezone signifier from a date object/string property on an object\n\t * and replaces it in-place with the specified date format\n\t * @param {object} object\n\t * @param {string} propertyName\n\t * @param {string} dateFormat\n\t */\n\tremoveUtcTimezoneFromProperty(object, propertyName, dateFormat = 'YYYY-MM-DDTHH:mm:ss') {\n\t\tconst propValue = get(object, propertyName);\n\t\tif (propValue) {\n\t\t\tset(object, propertyName, this.moment(propValue).utc().format(dateFormat));\n\t\t}\n\t},\n\t/**\n\t * Removes the utc timezone signifier from date objects/strings properties on objects\n\t * in a collection and replaces it in-place with the specified date format\n\t * @param {object} collection\n\t * @param {string} propertyName\n\t * @param {string} dateFormat\n\t */\n\tremoveUtcTimezoneFromPropertyOnCollection(collection, propertyName, dateFormat = 'YYYY-MM-DDTHH:mm:ss') {\n\t\tforEach(collection, sector => this.removeUtcTimezoneFromProperty(\n\t\t\tsector, propertyName, dateFormat\n\t\t));\n\t},\n\n\t/**\n\t * Converts a boolean value either 0/1 or false/true to a No/Yes string\n\t * translated for the current locale.\n\t * @param {*} value\n\t * @param {object} translate\n\t */\n\tyesNo(value, translate) {\n\t\tlet result = this.errorValue();\n\t\tif ((value !== null) && (value !== undefined)) {\n\t\t\tresult = (((value === 0) || (value === false)) ? translate('no') : translate('yes'));\n\t\t}\n\n\t\treturn result;\n\t}\n});\n\n/**\n * Add any extention methods or customization here\n */\n\nexport default MarkitFormat(formatOptions);\n","/* eslint-disable arrow-body-style */\n/* eslint-disable no-use-before-define */\nconst marketsCentreOverview = {\n\tkey: 'marketsCentreOverview',\n\tgroup: 'marketsCentre',\n\troute: '/markets',\n\tname: 'Overview',\n\tisExact: true,\n\tcomponentPath: 'MarketsCentre/MarketsOverview',\n\theirarchy: ['quotes-research', 'market-centre'],\n\tnavItems: () => navOrder.marketsCentre\n};\n\nconst marketsAtAGlance = {\n\tkey: 'marketsAtAGlance',\n\troute: '/markets/glance',\n\tname: 'Markets at a glance',\n\tcomponentPath: 'MarketsCentre/MarketsGlance',\n\theirarchy: ['quotes-research', 'market-centre'],\n\tnavItems: () => navOrder.marketsCentre\n};\n\nconst marketMovers = {\n\tkey: 'marketMovers',\n\troute: '/markets/movers',\n\tname: 'Market movers',\n\tcomponentPath: 'MarketsCentre/MarketMovers',\n\theirarchy: ['quotes-research', 'market-centre'],\n\tnavItems: () => navOrder.marketsCentre\n};\n\nconst marketsNews = {\n\tkey: 'marketsNews',\n\troute: '/markets/news',\n\tname: 'News',\n\tcomponentPath: 'MarketsCentre/MarketsNews',\n\theirarchy: ['quotes-research', 'market-centre'],\n\tnavItems: () => navOrder.marketsCentre\n};\n\nconst marketsTechnicalAnalysisNews = {\n\tkey: 'marketsTechnicalAnalysisNews',\n\troute: '/markets/technicalanalysis/:page',\n\tname: 'Technical analysis',\n\tcheckTechAnalysis: true,\n\tredirectPath: '/markets',\n\thideFromNav: true,\n\tcomponentPath: 'MarketsCentre/MarketTechnicalAnalysis',\n\theirarchy: ['quotes-research', 'market-centre'],\n\tnavItems: () => navOrder.marketsCentre\n};\n\nconst stockCentreCustomizeScreeners = {\n\tkey: 'stockCentreCustomizeScreeners',\n\troute: '/stocks/customizescreener',\n\tname: 'customizeScreener',\n\tcomponentPath: 'StockCentre/CustomizeScreener',\n\tisExact: true,\n\theirarchy: ['quotes-research', 'stock-centre'],\n\tnavItems: () => navOrder.stockCentre\n};\n\nconst stockCentreOverview = {\n\tkey: 'stockCentreOverview',\n\troute: '/stocks',\n\tisExact: true,\n\tname: 'Overview',\n\tcomponentPath: 'StockCentre/StockCentreOverview',\n\theirarchy: ['quotes-research', 'stock-centre'],\n\tnavItems: () => navOrder.stockCentre\n};\n\nconst stocksUpgradesAndDowngrades = {\n\tkey: 'stocksUpgradesAndDowngrades',\n\troute: '/stocks/upgradesdowngrades',\n\tname: 'upgradesAndDowngrades',\n\tcomponentPath: 'StockCentre/StocksUpgradesDowngrades',\n\theirarchy: ['quotes-research', 'stock-centre'],\n\tnavItems: () => navOrder.stockCentre\n};\n\nconst stockScreener = {\n\tkey: 'stockScreener',\n\troute: '/stocks/screener',\n\tname: 'stockScreener',\n\tcomponentPath: 'StockCentre/Screener',\n\theirarchy: ['quotes-research', 'stock-centre'],\n\tnavItems: () => navOrder.stockCentre\n};\n\n// const stockCentreScreenerTest = {\n// key: 'stockCentreScreenerTest',\n// group: 'stockCentre',\n// route: '/stocks/screenertest',\n// name: 'ScreenerTest',\n// isExact: true,\n// componentPath: 'StockCentre/StockCentreScreenerTest',\n// navItems: () => areas.stockCentre\n// };\n\nconst stocksSnapshot = {\n\tkey: 'stocksSnapshot',\n\troute: '/stocks/:country/:symbol/snapshot',\n\tname: 'snapshot',\n\tsubComponentPath: 'Stocks/Snapshot',\n\tcomponentPath: 'Stocks/Stocks',\n\tnavItems: () => navOrder.stocks,\n\theirarchy: ['quotes-research', 'stock-centre'],\n\tisExact: true\n};\n\nconst stocksNews = {\n\tkey: 'stocksNews',\n\troute: '/stocks/:country/:symbol/news',\n\tname: 'news',\n\tsubComponentPath: 'Stocks/News',\n\tcomponentPath: 'Stocks/Stocks',\n\tnavItems: () => navOrder.stocks,\n\theirarchy: ['quotes-research', 'stock-centre'],\n\tisExact: true\n};\n\nconst stocksCharts = {\n\tkey: 'stocksChart',\n\troute: '/stocks/:country/:symbol/charts',\n\tname: 'charts',\n\tsubComponentPath: 'Stocks/Charts',\n\tcomponentPath: 'Stocks/Stocks',\n\tnavItems: () => navOrder.stocks,\n\theirarchy: ['quotes-research', 'stock-centre'],\n\tisExact: true\n};\n\nconst stocksReports = {\n\tkey: 'stocksReports',\n\troute: '/stocks/:country/:symbol/reports',\n\tname: 'reports',\n\tsubComponentPath: 'Stocks/Reports',\n\tcomponentPath: 'Stocks/Stocks',\n\tnavItems: () => navOrder.stocks,\n\theirarchy: ['quotes-research', 'stock-centre'],\n\tisExact: true\n};\n\nconst stocksFundamentals = {\n\tkey: 'stocksFundamentals',\n\troute: '/stocks/:country/:symbol/fundamentals',\n\tname: 'fundamentals',\n\tsubComponentPath: 'Stocks/Fundamentals',\n\tcomponentPath: 'Stocks/Stocks',\n\tnavItems: () => navOrder.stocks,\n\theirarchy: ['quotes-research', 'stock-centre'],\n\tisExact: true\n};\n\nconst stocksEarnings = {\n\tkey: 'stocksEarnings',\n\troute: '/stocks/:country/:symbol/earnings',\n\tname: 'earnings',\n\tsubComponentPath: 'Stocks/Earnings',\n\tcomponentPath: 'Stocks/Stocks',\n\tnavItems: () => navOrder.stocks,\n\theirarchy: ['quotes-research', 'stock-centre'],\n\tisExact: true\n};\n\nconst stocksFinancials = {\n\tkey: 'stocksFinancials',\n\troute: '/stocks/:country/:symbol/financials',\n\tname: 'financials',\n\tsubComponentPath: 'Stocks/Financials',\n\tcomponentPath: 'Stocks/Stocks',\n\theirarchy: ['quotes-research', 'stock-centre'],\n\tnavItems: () => navOrder.stocks,\n\tisExact: true\n};\n\nconst stocksOptions = {\n\tkey: 'stocksOptions',\n\troute: '/stocks/:country/:symbol/options',\n\tname: 'options',\n\tcheckOptions: true,\n\tsubComponentPath: 'Stocks/Options',\n\tcomponentPath: 'Stocks/Stocks',\n\tnavItems: () => navOrder.stocks,\n\theirarchy: ['quotes-research', 'stock-centre'],\n\tisExact: true\n};\n\nconst stocksTechnicalAnalysis = {\n\tkey: 'stocksTechnicalAnalysis',\n\troute: '/stocks/:country/:symbol/technicalanalysis',\n\tname: 'Technical analysis',\n\tsubComponentPath: 'Stocks/TechnicalAnalysis',\n\tcheckTechAnalysis: true,\n\tredirectPath: '/stocks',\n\tcomponentPath: 'Stocks/Stocks',\n\theirarchy: ['quotes-research', 'stock-centre'],\n\tnavItems: () => navOrder.stocks\n};\n\nconst stocksAnalysts = {\n\tkey: 'stocksAnalysts',\n\troute: '/stocks/:country/:symbol/analysts',\n\tname: 'analysts',\n\tsubComponentPath: 'Stocks/Analysts',\n\tcheckAnalysts: true,\n\tredirectPath: '/stocks',\n\tcomponentPath: 'Stocks/Stocks',\n\theirarchy: ['quotes-research', 'stock-centre'],\n\tnavItems: () => navOrder.stocks\n};\n\nconst quotelistsWatchlists = {\n\tkey: 'quotelistsWatchlists',\n\tgroup: 'quotelists',\n\troute: '/quotelists/watchlist',\n\tmatchPaths: ['/quotelists/watchlist/edit/:portfolioId/',\n\t\t'/quotelists/watchlist/create/',\n\t\t'/quotelists/watchlist/create/:xids',\n\t\t'/quotelists/watchlist/edit/:portfolioId/:xids',\n\t\t'/quotelists/watchlist/:tab/:portfolioId?'],\n\tname: 'Watch lists',\n\tisExact: true,\n\theirarchy: ['quotes-research', 'my-watch-lists', 'watch-lists'],\n\tcomponentPath: 'Quotelists/Watchlist',\n\tnavItems: () => areas.quotelists\n};\n\nconst quotelistsWatchlistTabs = {\n\tkey: 'quotelistsWatchlistQuoteDetail',\n\tgroup: 'quotelists',\n\thideFromNav: true,\n\troute: '/quotelists/watchlist/:tab/:portfolioId?',\n\tname: 'Watch Lists',\n\tstrict: true,\n\tisExact: true,\n\tcomponentPath: 'Quotelists/Watchlist',\n\theirarchy: ['quotes-research', 'my-watch-lists', 'watch-lists'],\n\ttabNameMapping: {\n\t\tquotedetail: 'quote-detail', portfolio: 'portfolio', performance: 'performance', fundamentals: 'fundamentals', estimates: 'estimates'\n\t},\n\taddParams: true,\n\tnavItems: () => areas.quotelists\n};\n\nconst quotelistsWatchlistsEdit = {\n\tkey: 'quotelistsWatchlistsEdit',\n\tgroup: 'quotelists',\n\thideFromNav: true,\n\troute: '/quotelists/watchlist/edit/:portfolioId/',\n\tname: 'Watch Lists',\n\tstrict: true,\n\tisExact: true,\n\tcomponentPath: 'Quotelists/CreateEditWatchlist',\n\theirarchy: ['quotes-research', 'my-watch-lists', 'watch-lists'],\n\tnavItems: () => areas.quotelists\n};\n\nconst quotelistsWatchlistsAdd = {\n\tkey: 'quotelistsWatchlistsAdd',\n\tgroup: 'quotelists',\n\thideFromNav: true,\n\troute: '/quotelists/watchlist/edit/:portfolioId/:xids',\n\tname: 'Watch Lists',\n\tisExact: true,\n\tcomponentPath: 'Quotelists/CreateEditWatchlist',\n\theirarchy: ['quotes-research', 'my-watchl-ists', 'watch-lists'],\n\tnavItems: () => areas.quotelists\n};\n\nconst quotelistsWatchlistsCreate = {\n\tkey: 'quotelistsWatchlistsCreate',\n\tgroup: 'quotelists',\n\thideFromNav: true,\n\tstrict: true,\n\tisExact: true,\n\troute: '/quotelists/watchlist/create/',\n\tname: 'Watch lists',\n\tcomponentPath: 'Quotelists/CreateEditWatchlist',\n\theirarchy: ['quotes-research', 'my-watch-lists', 'watch-list'],\n\tnavItems: () => areas.quotelists\n};\n\nconst quotelistsWatchlistsCreateWithXids = {\n\tkey: 'quotelistsWatchlistsCreate',\n\tgroup: 'quotelists',\n\thideFromNav: true,\n\tstrict: true,\n\tisExact: false,\n\troute: '/quotelists/watchlist/create/:xids',\n\tname: 'Watch lists',\n\tcomponentPath: 'Quotelists/CreateEditWatchlist',\n\theirarchy: ['quotes-research', 'my-watch-lists', 'watch-list'],\n\tnavItems: () => areas.quotelists\n};\n\nconst quotelistsQuotelists = {\n\tkey: 'quotelistsQuotelists',\n\tgroup: 'quotelists',\n\troute: '/quotelists/quotelist',\n\tmatchPaths: ['/quotelists/quotelist',\n\t\t'/quotelists/quotelist/:tab'],\n\tname: 'Quote lists',\n\tisExact: true,\n\tcomponentPath: 'Quotelists/Quotelist',\n\theirarchy: ['quotes-research', 'my-watch-lists', 'quote-lists'],\n\tnavItems: () => areas.quotelists\n};\n\nconst quotelistsQuotelistsTabs = {\n\tkey: 'quotelistsQuotelistsTabs',\n\tgroup: 'quotelists',\n\troute: '/quotelists/quotelist/:tab',\n\thideFromNav: true,\n\tname: 'Quote lists',\n\tisExact: true,\n\tcomponentPath: 'Quotelists/Quotelist',\n\taddParams: true,\n\theirarchy: ['quotes-research', 'my-watch-lists', 'quote-lists'],\n\ttabNameMapping: { stocks: 'stocks-etfs-indices', mutualfunds: 'mutual-funds', options: 'options' },\n\tnavItems: () => areas.quotelists\n};\n\nconst notImplemented = {\n\tkey: 'notImplemented',\n\tgroup: 'notImplemented',\n\troute: '/notimplemented/:from',\n\tname: 'Not Implemented',\n\tisExact: true,\n\tcomponentPath: 'Shared/PageNotFound/PageNotFound',\n\tnavItems: () => areas.pageNotFound\n};\n\nconst etfCentreOverview = {\n\tkey: 'etfCentreOverview',\n\tgroup: 'etfCentre',\n\troute: '/etfcentre/overview',\n\tmatchPaths: ['/etfcentre/overview/:tab'],\n\tname: 'Overview',\n\tstrict: true,\n\tisExact: true,\n\theirarchy: ['quotes-research', 'etf-centre'],\n\tcomponentPath: 'EtfCentre/EtfCentre',\n\tnavItems: () => navOrder.etfCentre\n};\n\nconst etfCentreOverviewTabs = {\n\tkey: 'etfCentreScreenerTabs',\n\tgroup: 'etfCentre',\n\thideFromNav: true,\n\troute: '/etfcentre/overview/:tab',\n\tname: 'Overview',\n\tstrict: true,\n\tisExact: true,\n\tcomponentPath: 'EtfCentre/EtfCentre',\n\theirarchy: ['quotes-research', 'etf-centre', 'overview'],\n\tnavItems: () => navOrder.etfCentre\n};\n\nconst etfCentreScreener = {\n\tkey: 'etfCentreScreener',\n\tgroup: 'etfCentre',\n\troute: '/etfcentre/screener',\n\tmatchPaths: ['/etfcentre/screener/:tab'],\n\tname: 'Screener',\n\tstrict: true,\n\tisExact: true,\n\t// CIBC-5171 componentPath: 'EtfCentre/EtfCentreScreener'\n\tcomponentPath: 'EtfCentre/EtfCentreScreener',\n\theirarchy: ['quotes-research', 'etf-centre', 'screener'],\n\tnavItems: () => navOrder.etfCentre\n};\n\nconst etfCentreScreenerTabs = {\n\tkey: 'etfCentreScreenerTabs',\n\tgroup: 'etfCentre',\n\thideFromNav: true,\n\troute: '/etfcentre/screener/:tab',\n\tname: 'Screener',\n\tisExact: true,\n\t// CIBC-5171 componentPath: 'EtfCentre/EtfCentreScreener'\n\theirarchy: ['quotes-research', 'etf-centre', 'screener'],\n\ttabNameMapping: {\n\t\tsavedscreens: 'saved-screens', quickscreener: 'quick-screener', featuredscreens: 'featured-screens', customscreener: 'custom-screener'\n\t},\n\taddParams: true,\n\tcomponentPath: 'EtfCentre/EtfCentreScreener',\n\tnavItems: () => navOrder.etfCentre\n};\n\nconst etfCentreCompare = {\n\tkey: 'etfCentreCompare',\n\tgroup: 'etfCentre',\n\troute: '/etfcentre/compare',\n\tname: 'Compare',\n\tisExact: true,\n\tcomponentPath: 'EtfCentre/Compare',\n\theirarchy: ['quotes-research', 'etf-centre'],\n\tnavItems: () => navOrder.etfCentre\n};\n\nconst etfCentreCommentary = {\n\tkey: 'etfCentreCommentary',\n\tgroup: 'etfCentre',\n\troute: '/etfcentre/commentary',\n\tname: 'Commentary',\n\tisExact: true,\n\tcomponentPath: 'EtfCentre/Commentary',\n\theirarchy: ['quotes-research', 'etf-centre'],\n\tnavItems: () => navOrder.etfCentre\n};\n\nconst etfCentreHolding = {\n\tkey: 'etfCentreHolding',\n\tgroup: 'etfCentre',\n\troute: '/etfcentre/:country/:symbol/',\n\tmatchPaths: [\n\t\t'/etfcentre/:country/:symbol',\n\t\t'/etfcentre/:country/:symbol/snapshot',\n\t\t'/etfcentre/:country/:symbol/performance',\n\t\t'/etfcentre/:country/:symbol/portfolio',\n\t\t'/etfcentre/:country/:symbol/charts',\n\t\t'/etfcentre/:country/:symbol/reports',\n\t\t'/etfcentre/:country/:symbol/options',\n\t\t'/etfcentre/:country/:symbol/technicalanalysis'\n\t],\n\tname: 'EtfHolding',\n\tnavComponentPath: 'Shared/Navigation/SymbolTab',\n\tstrict: true,\n\tisExact: true,\n\tcomponentPath: 'EtfCentre/EtfHolding',\n\theirarchy: ['quotes-research', 'etf-centre'],\n\tnavItems: () => areas.etfCentre\n};\n\nconst etfCentreSnapshot = {\n\tkey: 'etfCentreSnapshot',\n\troute: '/etfcentre/:country/:symbol/snapshot',\n\tname: 'snapshot',\n\thideFromNav: true,\n\tsubComponentPath: 'EtfCentre/Snapshot',\n\tcomponentPath: 'EtfCentre/EtfHolding',\n\theirarchy: ['quotes-research', 'etf-centre'],\n\tisExact: true\n};\n\nconst etfCentrePerformance = {\n\tkey: 'etfCentrePerformance',\n\troute: '/etfcentre/:country/:symbol/performance',\n\tname: 'performance',\n\thideFromNav: true,\n\tsubComponentPath: 'EtfCentre/Performance',\n\tcomponentPath: 'EtfCentre/EtfHolding',\n\theirarchy: ['quotes-research', 'etf-centre'],\n\tisExact: true\n};\n\nconst etfCentrePortfolio = {\n\tkey: 'etfCentrePortfolio',\n\troute: '/etfcentre/:country/:symbol/portfolio',\n\tname: 'portfolio',\n\thideFromNav: true,\n\tsubComponentPath: 'EtfCentre/Portfolio',\n\tcomponentPath: 'EtfCentre/EtfHolding',\n\theirarchy: ['quotes-research', 'etf-centre'],\n\tisExact: true\n};\n\nconst etfCentreCharts = {\n\tkey: 'etfCentreCharts',\n\troute: '/etfcentre/:country/:symbol/charts',\n\tname: 'charts',\n\thideFromNav: true,\n\tsubComponentPath: 'EtfCentre/Charts',\n\tcomponentPath: 'EtfCentre/EtfHolding',\n\theirarchy: ['quotes-research', 'etf-centre'],\n\tisExact: true\n};\n\nconst etfCentreReports = {\n\tkey: 'etfCentreReports',\n\troute: '/etfcentre/:country/:symbol/reports',\n\tname: 'reports',\n\thideFromNav: true,\n\tsubComponentPath: 'EtfCentre/Reports',\n\tcomponentPath: 'EtfCentre/EtfHolding',\n\theirarchy: ['quotes-research', 'etf-centre'],\n\tisExact: true\n};\n\nconst etfCentreOptions = {\n\tkey: 'etfCentreOptions',\n\troute: '/etfcentre/:country/:symbol/options',\n\tname: 'options',\n\tcheckOptions: true,\n\thideFromNav: true,\n\tsubComponentPath: 'EtfCentre/Options',\n\tcomponentPath: 'EtfCentre/EtfHolding',\n\theirarchy: ['quotes-research', 'etf-centre'],\n\tisExact: true\n};\n\nconst etfCentreTechnicalAnalysis = {\n\tkey: 'etfCentreTechnicalAnalysis',\n\troute: '/etfcentre/:country/:symbol/technicalanalysis',\n\tname: 'technicalAnalysis',\n\tcheckTechAnalysis: true,\n\tredirectPath: '/etfcentre/overview',\n\thideFromNav: true,\n\tsubComponentPath: 'EtfCentre/TechnicalAnalysis',\n\tcomponentPath: 'EtfCentre/EtfHolding',\n\theirarchy: ['quotes-research', 'etf-centre'],\n\tisExact: true\n};\n\nconst pdfDownload = {\n\tkey: 'pdf-download',\n\troute: '/getpdf/:id/:docId',\n\tname: 'PDF download',\n\tcomponentPath: 'Shared/PdfDownload/PdfDownload',\n\tisExact: true,\n\tstrict: true\n};\n\nconst fundCentreSnapShot = {\n\tkey: 'fundCentreSnapShot',\n\troute: '/fundcentre/:country/:symbol/snapshot',\n\tname: 'snapshot',\n\thideFromNav: true,\n\tcheckLipperLeaders: false,\n\tcheckIndividualSecurityView: true,\n\tredirectPath: '/fundcentre/overview',\n\tsubComponentPath: 'FundCentre/Snapshot',\n\tcomponentPath: 'FundCentre/FundCentreHolding',\n\theirarchy: ['quotes-research', 'fund-centre'],\n\tisExact: true\n};\n\nconst fundCentreCharts = {\n\tkey: 'fundCentreCharts',\n\troute: '/fundcentre/:country/:symbol/charts',\n\tname: 'charts',\n\thideFromNav: true,\n\tcheckLipperLeaders: false,\n\tcheckIndividualSecurityView: true,\n\tredirectPath: '/fundcentre/overview',\n\tsubComponentPath: 'FundCentre/Charts',\n\tcomponentPath: 'FundCentre/FundCentreHolding',\n\theirarchy: ['quotes-research', 'fund-centre'],\n\tisExact: true\n};\n\nconst fundCentreHoldingPerformance = {\n\tkey: 'fundCentreHoldingPerformance',\n\troute: '/fundcentre/:country/:symbol/performance',\n\tname: 'performance',\n\thideFromNav: true,\n\tcheckLipperLeaders: false,\n\tcheckIndividualSecurityView: true,\n\tredirectPath: '/fundcentre/overview',\n\tsubComponentPath: 'FundCentre/HoldingPerformance',\n\tcomponentPath: 'FundCentre/FundCentreHolding',\n\theirarchy: ['quotes-research', 'fund-centre'],\n\tisExact: true\n};\n\nconst fundCentrePortfolio = {\n\tkey: 'fundCentrePortfolio',\n\troute: '/fundcentre/:country/:symbol/portfolio',\n\tname: 'portfolio',\n\thideFromNav: true,\n\tcheckLipperLeaders: false,\n\tcheckIndividualSecurityView: true,\n\tredirectPath: '/fundcentre/overview',\n\tsubComponentPath: 'FundCentre/Portfolio',\n\tcomponentPath: 'FundCentre/FundCentreHolding',\n\theirarchy: ['quotes-research', 'fund-centre'],\n\tisExact: true\n};\n\nconst fundCentreLipperLeaders = {\n\tkey: 'fundCentreLipperLeaders',\n\troute: '/fundcentre/:country/:symbol/lipperleaders',\n\tname: 'lipperLeaders',\n\thideFromNav: true,\n\tcheckLipperLeaders: true,\n\tcheckIndividualSecurityView: true,\n\tredirectPath: '/fundcentre/overview',\n\tsubComponentPath: 'FundCentre/LipperLeaders',\n\tcomponentPath: 'FundCentre/FundCentreHolding',\n\theirarchy: ['quotes-research', 'fund-centre'],\n\tisExact: true\n};\n\nconst fundCentreOptions = {\n\tkey: 'fundCentreOptions',\n\troute: '/fundcentre/:country/:symbol/options',\n\tname: 'options',\n\tcheckOptions: true,\n\thideFromNav: true,\n\tsubComponentPath: 'FundCentre/Options',\n\tcomponentPath: 'FundCentre/FundCentreHolding',\n\theirarchy: ['quotes-research', 'fund-centre'],\n\tisExact: true\n};\n\nconst fundCentreOverview = {\n\tkey: 'fundCentreOverview',\n\troute: '/fundcentre/overview',\n\tname: 'overview',\n\tcomponentPath: 'FundCentre/FundCentreOverview',\n\tisExact: true,\n\tnavItems: () => areas.fundCentre,\n\tcheckFundCentre: true,\n\theirarchy: ['quotes-research', 'fund-centre'],\n\tredirectPath: '/markets'\n};\n\nconst fundCentrePerformance = {\n\tkey: 'fundCentreOverview',\n\troute: '/fundcentre/performance',\n\tname: 'Performance',\n\tcomponentPath: 'FundCentre/FundCentrePerformance',\n\tmatchPaths: ['/fundcentre/performance/:tab'],\n\tisExact: true,\n\tnavItems: () => areas.fundCentre,\n\tcheckFundCentre: true,\n\theirarchy: ['quotes-research', 'fund-centre', 'performance'],\n\tredirectPath: '/markets'\n};\n\nconst fundCentrePerformanceTabs = {\n\tkey: 'fundCentrePerformanceTabs',\n\tgroup: 'fundCentre',\n\thideFromNav: true,\n\troute: '/fundcentre/performance/:tab',\n\tname: 'Performance',\n\tstrict: true,\n\tisExact: true,\n\tcomponentPath: 'FundCentre/FundCentrePerformance',\n\tnavItems: () => areas.fundCentre,\n\tcheckFundCentre: true,\n\taddParams: true,\n\theirarchy: ['quotes-research', 'fund-centre', 'performance'],\n\ttabNameMapping: { mutualfunds: 'mutual-funds', totalnetassets: 'total-net-assets', lipperleaders: 'lipper-leaders' },\n\tredirectPath: '/markets'\n};\n\nconst fundCentreScreeners = {\n\tkey: 'fundCentreScreener',\n\troute: '/fundcentre/screener',\n\tname: 'Screener',\n\tcomponentPath: 'FundCentre/FundCentreScreeners',\n\tisExact: true,\n\tnavItems: () => areas.fundCentre,\n\tcheckFundCentre: true,\n\theirarchy: ['quotes-research', 'fund-centre'],\n\tredirectPath: '/markets'\n};\n\nconst fundCentreCustomizeScreeners = {\n\tkey: 'fundCentreCustomizeScreeners',\n\troute: '/fundcentre/customizescreener',\n\tname: 'customizeScreener',\n\tcomponentPath: 'FundCentre/CustomizeScreener',\n\tisExact: true,\n\tnavItems: () => areas.fundCentre,\n\tcheckFundCentre: true,\n\theirarchy: ['quotes-research', 'fund-centre'],\n\tredirectPath: '/markets'\n};\n\nconst fundCentreEtfs = {\n\tkey: 'fundCentreEtfs',\n\troute: '/fundcentre/etfs',\n\tname: 'etfs',\n\twgeOnly: true, // only show this tab if the user is Wood Gundy\n\tcomponentPath: 'FundCentre/FundCentreEtfs',\n\tredirectPath: '/fundcentre/overview',\n\tcheckFundCentreETFs: true,\n\tisExact: true,\n\theirarchy: ['quotes-research', 'fund-centre'],\n\tnavItems: () => areas.fundCentre\n};\n\nconst alertsOverview = {\n\tkey: 'alertsOverview',\n\troute: '/alerts/overview',\n\tname: 'overview',\n\tcomponentPath: 'Alerts/Overview',\n\tredirectPath: '/markets',\n\tcheckAlerts: true,\n\tisExact: true,\n\theirarchy: ['quotes-research', 'my-alerts'],\n\tnavItems: () => areas.alerts\n};\n\nconst alertsMarkets = {\n\tkey: 'alertsMarkets',\n\troute: '/alerts/markets',\n\tname: 'markets',\n\tmatchPaths: [\n\t\t'/alerts/markets',\n\t\t'/alerts/markets/:tab'\n\t],\n\tcomponentPath: 'Alerts/Markets',\n\tredirectPath: '/markets',\n\tcheckAlerts: true,\n\tisExact: true,\n\theirarchy: ['quotes-research', 'my-alerts'],\n\tnavItems: () => areas.alerts\n};\n\nconst alertsMarketsEdit = {\n\tkey: 'alertsMarketsEdit',\n\troute: '/alerts/markets/:tab',\n\tname: 'markets',\n\thideFromNav: true,\n\tcomponentPath: 'Alerts/Markets',\n\tredirectPath: '/markets',\n\tcheckAlerts: true,\n\tisExact: true,\n\taddParams: true,\n\theirarchy: ['quotes-research', 'my-alerts'],\n\tnavItems: () => areas.alerts\n};\n\nconst alertsStocks = {\n\tkey: 'alertsStocks',\n\troute: '/alerts/stocks',\n\tmatchPaths: [\n\t\t'/alerts/stocks',\n\t\t'/alerts/stocks/:country/:symbol'\n\t],\n\tname: 'stocks',\n\tcomponentPath: 'Alerts/Stocks',\n\tredirectPath: '/markets',\n\tcheckAlerts: true,\n\tisExact: true,\n\theirarchy: ['quotes-research', 'my-alerts'],\n\tnavItems: () => areas.alerts\n};\n\nconst alertsIndividualStock = {\n\tkey: 'alertsIndividualStock',\n\troute: '/alerts/stocks/:country/:symbol',\n\tname: 'stocks',\n\thideFromNav: true,\n\tcomponentPath: 'Alerts/Stocks',\n\tredirectPath: '/markets',\n\tcheckAlerts: true,\n\tisExact: true,\n\theirarchy: ['quotes-research', 'my-alerts'],\n\tnavItems: () => areas.alerts\n};\n\nconst alertsWatchlist = {\n\tkey: 'alertsIndividualStock',\n\troute: '/alerts/watchlist',\n\tname: 'Watch list',\n\tcomponentPath: 'Alerts/Watchlist',\n\tredirectPath: '/markets',\n\tcheckAlerts: true,\n\tisExact: true,\n\theirarchy: ['quotes-research', 'my-alerts'],\n\tnavItems: () => areas.alerts\n};\n\nconst alertsTechnicalAnalysis = {\n\tkey: 'alertsTechnicalAnalysis',\n\troute: '/alerts/technicalanalysis',\n\tname: 'Technical analysis',\n\tcomponentPath: 'Alerts/TechnicalAnalysisAlerts',\n\tredirectPath: '/alerts/overview',\n\tcheckAlerts: true,\n\tcheckTechAnalysis: true,\n\tisExact: true,\n\theirarchy: ['quotes-research', 'my-alerts'],\n\tnavItems: () => areas.alerts\n};\n\nconst alertsAnalystReports = {\n\tkey: 'alertsAnalystReports',\n\troute: '/alerts/analystreports',\n\tname: 'analystReports',\n\t// CIBC-5171 componentPath: 'Alerts/AnalystReports'\n\tcomponentPath: 'Alerts/AnalystReports',\n\t// componentPath: 'Shared/ComingSoon/ComingSoon',\n\tredirectPath: '/markets',\n\tcheckAlerts: true,\n\tisExact: true,\n\theirarchy: ['quotes-research', 'my-alerts'],\n\tnavItems: () => areas.alerts\n};\n\nconst alertsPreferences = {\n\tkey: 'alertsPreferences',\n\troute: '/alerts/preferences',\n\tname: 'preferences',\n\tcomponentPath: 'Alerts/Preferences',\n\tredirectPath: '/markets',\n\tcheckAlerts: true,\n\tisExact: true,\n\theirarchy: ['quotes-research', 'my-alerts'],\n\tnavItems: () => areas.alerts\n};\n\nconst analystReportsOverview = {\n\tkey: 'analystReportsOverview',\n\troute: '/analystreports/overview',\n\tname: 'overview',\n\tcomponentPath: 'AnalystReports/Overview',\n\tisExact: true,\n\theirarchy: ['quotes-research', 'analyst-reports'],\n\tnavItems: () => areas.analystReports\n};\n\nconst analystReportsEquities = {\n\tkey: 'analystReportsEquities',\n\troute: '/analystreports/equities',\n\tname: 'equities',\n\tcomponentPath: 'AnalystReports/Equities',\n\tisExact: true,\n\theirarchy: ['quotes-research', 'analyst-reports'],\n\tnavItems: () => areas.analystReports\n};\n\nconst analystReportsEconomics = {\n\tkey: 'analystReportsEconomics',\n\troute: '/analystreports/economics',\n\tname: 'economics',\n\tcomponentPath: 'AnalystReports/Economics',\n\tisExact: true,\n\theirarchy: ['quotes-research', 'analyst-reports'],\n\tnavItems: () => areas.analystReports\n};\n\nconst analystReportsCustomSearch = {\n\tkey: 'analystReportsCustomSearch',\n\troute: '/analystreports/customsearch',\n\tmatchPaths: ['/analystreports/customsearch/:itemId',\n\t\t'/analystreports/customsearch'],\n\tname: 'customSearch',\n\tcomponentPath: 'AnalystReports/CustomSearch',\n\tisExact: true,\n\theirarchy: ['quotes-research', 'analyst-reports'],\n\tnavItems: () => areas.analystReports\n};\n\nconst analystReportsCustomSearchEdit = {\n\tkey: 'analystReportsCustomSearchEdit',\n\thideFromNav: true,\n\troute: '/analystreports/customsearch/:itemId',\n\tname: 'customSearchEdit',\n\tcomponentPath: 'AnalystReports/CustomSearch',\n\tisExact: true,\n\theirarchy: ['quotes-research', 'analyst-reports'],\n\tnavItems: () => areas.analystReports\n};\n\nconst analystReportsSavedSearches = {\n\tkey: 'analystReportsSavedSearches',\n\troute: '/analystreports/savedsearches',\n\tmatchPaths: ['/analystreports/savedsearches/:itemId',\n\t\t'/analystreports/savedsearches'],\n\tname: 'savedSearches',\n\tcomponentPath: 'AnalystReports/SavedSearches',\n\tnavComponentPath: 'AnalystReports/SavedSearchesTab',\n\theirarchy: ['quotes-research', 'analyst-reports'],\n\tisExact: true,\n\tnavItems: () => areas.analystReports\n};\n\nconst analystReportsSavedSearchesView = {\n\tkey: 'analystReportsSavedSearchesView',\n\thideFromNav: true,\n\troute: '/analystreports/savedsearches/:itemId',\n\tname: 'savedSearchesView',\n\tcomponentPath: 'AnalystReports/SavedSearches',\n\tnavComponentPath: 'AnalystReports/SavedSearchesTab',\n\tisExact: true,\n\theirarchy: ['quotes-research', 'analyst-reports'],\n\tnavItems: () => areas.analystReports\n};\n\nconst pages = {\n\tmarketsCentreOverview,\n\tmarketsAtAGlance,\n\tmarketMovers,\n\tmarketsNews,\n\tstocksUpgradesAndDowngrades,\n\tstockScreener,\n\tstockCentreCustomizeScreeners,\n\tstocksSnapshot,\n\tstocksNews,\n\tstocksCharts,\n\tstocksReports,\n\tstocksFundamentals,\n\tstocksEarnings,\n\tstocksFinancials,\n\tstocksOptions,\n\tstocksTechnicalAnalysis,\n\tstocksAnalysts,\n\tstockCentreOverview,\n\t// stockCentreScreenerTest,\n\tquotelistsWatchlistsEdit,\n\tquotelistsWatchlistsCreate,\n\tquotelistsWatchlistsCreateWithXids,\n\tquotelistsWatchlistTabs,\n\tquotelistsQuotelistsTabs,\n\tquotelistsWatchlists,\n\tquotelistsQuotelists,\n\tetfCentreOverview,\n\tetfCentreOverviewTabs,\n\tetfCentreScreenerTabs,\n\tetfCentreScreener,\n\t// etfCentreScreenerTest,\n\tetfCentreCompare,\n\tetfCentreCommentary,\n\tetfCentreSnapshot,\n\tetfCentrePerformance,\n\tetfCentrePortfolio,\n\tetfCentreCharts,\n\tetfCentreReports,\n\tetfCentreOptions,\n\tetfCentreTechnicalAnalysis,\n\tfundCentreSnapShot,\n\tfundCentreCharts,\n\tfundCentreHoldingPerformance,\n\tfundCentrePortfolio,\n\tfundCentreLipperLeaders,\n\tfundCentreOptions,\n\tfundCentrePerformanceTabs,\n\tfundCentrePerformance,\n\tfundCentreEtfs,\n\tfundCentreScreeners,\n\tfundCentreCustomizeScreeners,\n\tfundCentreOverview,\n\talertsOverview,\n\talertsMarkets,\n\talertsStocks,\n\talertsIndividualStock,\n\talertsWatchlist,\n\talertsMarketsEdit,\n\talertsTechnicalAnalysis,\n\talertsAnalystReports,\n\talertsPreferences,\n\tanalystReportsOverview,\n\tanalystReportsEquities,\n\tanalystReportsEconomics,\n\tanalystReportsCustomSearch,\n\tanalystReportsSavedSearches,\n\tnotImplemented,\n\tpdfDownload\n};\n\nconst navOrder = {\n\tmarketsCentre: [\n\t\tmarketsCentreOverview,\n\t\tmarketsAtAGlance,\n\t\tmarketMovers,\n\t\tmarketsNews,\n\t\tmarketsTechnicalAnalysisNews\n\t],\n\tstockCentre: [\n\t\tstockCentreOverview,\n\t\tstocksUpgradesAndDowngrades,\n\t\tstockScreener,\n\t\tstockCentreCustomizeScreeners\n\t],\n\tetfCentre: [\n\t\tetfCentreOverviewTabs,\n\t\tetfCentreOverview,\n\t\t// etfCentreScreenerTest,\n\t\tetfCentreScreenerTabs,\n\t\tetfCentreScreener,\n\t\tetfCentreCompare,\n\t\tetfCentreCommentary,\n\t\tetfCentreHolding\n\t],\n\tstocks: [\n\t\tstocksSnapshot,\n\t\tstocksNews,\n\t\tstocksCharts,\n\t\tstocksAnalysts,\n\t\tstocksReports,\n\t\tstocksFundamentals,\n\t\tstocksEarnings,\n\t\tstocksFinancials,\n\t\tstocksOptions,\n\t\tstocksTechnicalAnalysis\n\t]\n};\n\nconst areas = {\n\tmarketsCentre: [\n\t\tmarketsAtAGlance,\n\t\tmarketMovers,\n\t\tmarketsNews,\n\t\tmarketsTechnicalAnalysisNews,\n\t\tmarketsCentreOverview\n\t],\n\tstockCentre: [\n\t\tstocksUpgradesAndDowngrades,\n\t\tstockScreener,\n\t\t// stockCentreScreenerTest,\n\t\tstockCentreCustomizeScreeners\n\t],\n\tstocks: [\n\t\tstocksSnapshot,\n\t\tstocksNews,\n\t\tstocksCharts,\n\t\tstocksAnalysts,\n\t\tstocksReports,\n\t\tstocksFundamentals,\n\t\tstocksEarnings,\n\t\tstocksFinancials,\n\t\tstocksOptions,\n\t\tstocksTechnicalAnalysis,\n\t\tstockCentreOverview\n\t],\n\tquotelists: [\n\t\tquotelistsWatchlistsEdit,\n\t\tquotelistsWatchlistsCreate,\n\t\tquotelistsWatchlistsCreateWithXids,\n\t\tquotelistsWatchlistsAdd,\n\t\tquotelistsWatchlistTabs,\n\t\tquotelistsQuotelistsTabs,\n\t\tquotelistsWatchlists,\n\t\tquotelistsQuotelists\n\t],\n\tetfCentre: [\n\t\tetfCentreOverviewTabs,\n\t\tetfCentreOverview,\n\t\t// etfCentreScreenerTest,\n\t\tetfCentreScreenerTabs,\n\t\tetfCentreScreener,\n\t\tetfCentreCompare,\n\t\tetfCentreCommentary\n\t],\n\tetfCentreIndividualHolding: [\n\t\tetfCentreSnapshot,\n\t\tetfCentrePerformance,\n\t\tetfCentrePortfolio,\n\t\tetfCentreCharts,\n\t\tetfCentreReports,\n\t\tetfCentreOptions,\n\t\tetfCentreTechnicalAnalysis\n\t],\n\tfundCentreIndividualHolding: [\n\t\tfundCentreSnapShot,\n\t\tfundCentreCharts,\n\t\tfundCentreHoldingPerformance,\n\t\tfundCentrePortfolio,\n\t\tfundCentreLipperLeaders,\n\t\tfundCentreOptions\n\t],\n\tfundCentre: [\n\t\tfundCentreOverview,\n\t\tfundCentrePerformanceTabs,\n\t\tfundCentrePerformance,\n\t\tfundCentreEtfs,\n\t\tfundCentreScreeners,\n\t\tfundCentreCustomizeScreeners\n\t],\n\talerts: [\n\t\talertsOverview,\n\t\talertsMarkets,\n\t\talertsMarketsEdit,\n\t\talertsStocks,\n\t\talertsIndividualStock,\n\t\talertsWatchlist,\n\t\talertsTechnicalAnalysis,\n\t\talertsAnalystReports,\n\t\talertsPreferences\n\t],\n\tanalystReports: [\n\t\tanalystReportsOverview,\n\t\tanalystReportsEquities,\n\t\tanalystReportsEconomics,\n\t\tanalystReportsCustomSearch,\n\t\tanalystReportsCustomSearchEdit,\n\t\tanalystReportsSavedSearches,\n\t\tanalystReportsSavedSearchesView\n\t],\n\tpageNotFound: [\n\t\tnotImplemented\n\t],\n\tpdfDownload: [\n\t\tpdfDownload\n\t]\n};\n\nconst checkAllPages = (pagesToCheck, location) => {\n\tlet name = null;\n\tconst keys = Object.keys(pagesToCheck);\n\n\tfor (let index = 0; index < keys.length; index += 1) {\n\t\tconst page = pagesToCheck[keys[index]];\n\t\tif (page.route === location) {\n\t\t\tname = page.name;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn name;\n};\n\nconst getDisplayNameByLocation = location => {\n\treturn checkAllPages(pages, location);\n};\n\n// Using this pattern here som it can be easily imported by the node js script\nmodule.exports = {\n\tpages,\n\tareas,\n\tgetDisplayNameByLocation,\n\tnavOrder\n};\n","var map = {\n\t\"./Alerts/AnalystReports\": [\n\t\t597,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t18,\n\t\t84\n\t],\n\t\"./Alerts/AnalystReports.js\": [\n\t\t597,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t18,\n\t\t84\n\t],\n\t\"./Alerts/Markets\": [\n\t\t598,\n\t\t9,\n\t\t0,\n\t\t34,\n\t\t5,\n\t\t33,\n\t\t278\n\t],\n\t\"./Alerts/Markets.js\": [\n\t\t598,\n\t\t9,\n\t\t0,\n\t\t34,\n\t\t5,\n\t\t33,\n\t\t278\n\t],\n\t\"./Alerts/Markets.scss\": [\n\t\t1170,\n\t\t7,\n\t\t424\n\t],\n\t\"./Alerts/Overview\": [\n\t\t599,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t18,\n\t\t78\n\t],\n\t\"./Alerts/Overview.js\": [\n\t\t599,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t18,\n\t\t78\n\t],\n\t\"./Alerts/Overview.scss\": [\n\t\t1171,\n\t\t7,\n\t\t425\n\t],\n\t\"./Alerts/Preferences\": [\n\t\t600,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t5,\n\t\t28,\n\t\t284\n\t],\n\t\"./Alerts/Preferences.js\": [\n\t\t600,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t5,\n\t\t28,\n\t\t284\n\t],\n\t\"./Alerts/Stocks\": [\n\t\t601,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t19,\n\t\t5,\n\t\t110\n\t],\n\t\"./Alerts/Stocks.js\": [\n\t\t601,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t19,\n\t\t5,\n\t\t110\n\t],\n\t\"./Alerts/TechnicalAnalysisAlerts\": [\n\t\t602,\n\t\t9,\n\t\t0,\n\t\t98\n\t],\n\t\"./Alerts/TechnicalAnalysisAlerts.js\": [\n\t\t602,\n\t\t9,\n\t\t0,\n\t\t98\n\t],\n\t\"./Alerts/Watchlist\": [\n\t\t603,\n\t\t9,\n\t\t0,\n\t\t35,\n\t\t5,\n\t\t266\n\t],\n\t\"./Alerts/Watchlist.js\": [\n\t\t603,\n\t\t9,\n\t\t0,\n\t\t35,\n\t\t5,\n\t\t266\n\t],\n\t\"./Alerts/modules/NoEmailBanner\": [\n\t\t377,\n\t\t9,\n\t\t385\n\t],\n\t\"./Alerts/modules/NoEmailBanner.js\": [\n\t\t377,\n\t\t9,\n\t\t385\n\t],\n\t\"./Alerts/modules/NoEmailBanner.scss\": [\n\t\t1134,\n\t\t7,\n\t\t426\n\t],\n\t\"./Alerts/modules/NoEmailModal\": [\n\t\t375,\n\t\t9,\n\t\t0,\n\t\t211\n\t],\n\t\"./Alerts/modules/NoEmailModal.js\": [\n\t\t375,\n\t\t9,\n\t\t0,\n\t\t211\n\t],\n\t\"./Alerts/modules/analystReports/EditAnalystReportAlerts\": [\n\t\t419,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t18,\n\t\t149\n\t],\n\t\"./Alerts/modules/analystReports/EditAnalystReportAlerts.js\": [\n\t\t419,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t18,\n\t\t149\n\t],\n\t\"./Alerts/modules/analystReports/EditAnalystReportAlerts.scss\": [\n\t\t1169,\n\t\t7,\n\t\t427\n\t],\n\t\"./Alerts/modules/markets/EditMarketAlerts\": [\n\t\t585,\n\t\t9,\n\t\t0,\n\t\t34,\n\t\t33,\n\t\t264\n\t],\n\t\"./Alerts/modules/markets/EditMarketAlerts.js\": [\n\t\t585,\n\t\t9,\n\t\t0,\n\t\t34,\n\t\t33,\n\t\t264\n\t],\n\t\"./Alerts/modules/markets/EditMarketAlerts.scss\": [\n\t\t1248,\n\t\t7,\n\t\t428\n\t],\n\t\"./Alerts/modules/markets/MarketAlertInput\": [\n\t\t485,\n\t\t9,\n\t\t180\n\t],\n\t\"./Alerts/modules/markets/MarketAlertInput.js\": [\n\t\t485,\n\t\t9,\n\t\t180\n\t],\n\t\"./Alerts/modules/markets/MarketAlertInput.scss\": [\n\t\t1187,\n\t\t7,\n\t\t429\n\t],\n\t\"./Alerts/modules/overview/MarketAlerts\": [\n\t\t486,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t181\n\t],\n\t\"./Alerts/modules/overview/MarketAlerts.js\": [\n\t\t486,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t181\n\t],\n\t\"./Alerts/modules/overview/MarketAlerts.scss\": [\n\t\t1188,\n\t\t7,\n\t\t430\n\t],\n\t\"./Alerts/modules/overview/StockAlerts\": [\n\t\t487,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t117\n\t],\n\t\"./Alerts/modules/overview/StockAlerts.js\": [\n\t\t487,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t117\n\t],\n\t\"./Alerts/modules/overview/StockAlerts.scss\": [\n\t\t1142,\n\t\t7,\n\t\t431\n\t],\n\t\"./Alerts/modules/overview/StockAlertsSearch\": [\n\t\t388,\n\t\t9,\n\t\t0,\n\t\t134\n\t],\n\t\"./Alerts/modules/overview/StockAlertsSearch.js\": [\n\t\t388,\n\t\t9,\n\t\t0,\n\t\t134\n\t],\n\t\"./Alerts/modules/overview/WatchlistAlerts\": [\n\t\t488,\n\t\t9,\n\t\t341\n\t],\n\t\"./Alerts/modules/overview/WatchlistAlerts.js\": [\n\t\t488,\n\t\t9,\n\t\t341\n\t],\n\t\"./Alerts/modules/overview/WatchlistAlerts.scss\": [\n\t\t1189,\n\t\t7,\n\t\t432\n\t],\n\t\"./Alerts/modules/preferences/AlertPreferences\": [\n\t\t586,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t28,\n\t\t268\n\t],\n\t\"./Alerts/modules/preferences/AlertPreferences.js\": [\n\t\t586,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t28,\n\t\t268\n\t],\n\t\"./Alerts/modules/preferences/AlertPreferences.scss\": [\n\t\t1249,\n\t\t7,\n\t\t433\n\t],\n\t\"./Alerts/modules/stocks/EditStockAlerts\": [\n\t\t489,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t19,\n\t\t26,\n\t\t161\n\t],\n\t\"./Alerts/modules/stocks/EditStockAlerts.js\": [\n\t\t489,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t19,\n\t\t26,\n\t\t161\n\t],\n\t\"./Alerts/modules/stocks/EditStockAlerts.scss\": [\n\t\t1172,\n\t\t7,\n\t\t434\n\t],\n\t\"./Alerts/modules/stocks/StockAlertsInputsList\": [\n\t\t482,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t19,\n\t\t26,\n\t\t263\n\t],\n\t\"./Alerts/modules/stocks/StockAlertsInputsList.js\": [\n\t\t482,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t19,\n\t\t26,\n\t\t263\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/AnalystReportAlerts\": [\n\t\t434,\n\t\t9,\n\t\t234\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/AnalystReportAlerts.js\": [\n\t\t434,\n\t\t9,\n\t\t234\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/AnnualEarningsAnnounced\": [\n\t\t432,\n\t\t9,\n\t\t235\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/AnnualEarningsAnnounced.js\": [\n\t\t432,\n\t\t9,\n\t\t235\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/MovingAverage\": [\n\t\t425,\n\t\t9,\n\t\t205\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/MovingAverage.js\": [\n\t\t425,\n\t\t9,\n\t\t205\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/NewsStories\": [\n\t\t433,\n\t\t9,\n\t\t236\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/NewsStories.js\": [\n\t\t433,\n\t\t9,\n\t\t236\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/PeRisesAbove\": [\n\t\t422,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t212\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/PeRisesAbove.js\": [\n\t\t422,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t212\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/PriceAboveBelow\": [\n\t\t420,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t175\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/PriceAboveBelow.js\": [\n\t\t420,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t175\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/PriceChanges\": [\n\t\t424,\n\t\t9,\n\t\t170\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/PriceChanges.js\": [\n\t\t424,\n\t\t9,\n\t\t170\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/PriceChangesFaster\": [\n\t\t426,\n\t\t9,\n\t\t206\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/PriceChangesFaster.js\": [\n\t\t426,\n\t\t9,\n\t\t206\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/PriceGap\": [\n\t\t421,\n\t\t9,\n\t\t207\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/PriceGap.js\": [\n\t\t421,\n\t\t9,\n\t\t207\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/QuarterlyEarningsAnnounced\": [\n\t\t431,\n\t\t9,\n\t\t237\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/QuarterlyEarningsAnnounced.js\": [\n\t\t431,\n\t\t9,\n\t\t237\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/ReachesNew52Week\": [\n\t\t423,\n\t\t9,\n\t\t171\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/ReachesNew52Week.js\": [\n\t\t423,\n\t\t9,\n\t\t171\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/RsiOverBoughtSold\": [\n\t\t428,\n\t\t9,\n\t\t238\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/RsiOverBoughtSold.js\": [\n\t\t428,\n\t\t9,\n\t\t238\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/RsiUnderBoughtSold\": [\n\t\t429,\n\t\t9,\n\t\t239\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/RsiUnderBoughtSold.js\": [\n\t\t429,\n\t\t9,\n\t\t239\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/StockAlertInput.scss\": [\n\t\t1127,\n\t\t7,\n\t\t435\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/StockSplitAnnounced\": [\n\t\t430,\n\t\t9,\n\t\t240\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/StockSplitAnnounced.js\": [\n\t\t430,\n\t\t9,\n\t\t240\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/TradingVolumeExceeds\": [\n\t\t427,\n\t\t9,\n\t\t208\n\t],\n\t\"./Alerts/modules/stocks/alertTypes/TradingVolumeExceeds.js\": [\n\t\t427,\n\t\t9,\n\t\t208\n\t],\n\t\"./Alerts/modules/watchlist/EditWatchlistAlerts\": [\n\t\t490,\n\t\t9,\n\t\t0,\n\t\t35,\n\t\t190\n\t],\n\t\"./Alerts/modules/watchlist/EditWatchlistAlerts.js\": [\n\t\t490,\n\t\t9,\n\t\t0,\n\t\t35,\n\t\t190\n\t],\n\t\"./Alerts/modules/watchlist/EditWatchlistAlerts.scss\": [\n\t\t1190,\n\t\t7,\n\t\t436\n\t],\n\t\"./AnalystReports/AnalystReports.scss\": [\n\t\t1150,\n\t\t7,\n\t\t437\n\t],\n\t\"./AnalystReports/CustomSearch\": [\n\t\t604,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t68\n\t],\n\t\"./AnalystReports/CustomSearch.js\": [\n\t\t604,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t68\n\t],\n\t\"./AnalystReports/CustomSearch.scss\": [\n\t\t1250,\n\t\t7,\n\t\t438\n\t],\n\t\"./AnalystReports/CustomSearch/CriteriaView\": [\n\t\t435,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t79\n\t],\n\t\"./AnalystReports/CustomSearch/CriteriaView.js\": [\n\t\t435,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t79\n\t],\n\t\"./AnalystReports/CustomSearch/Industry\": [\n\t\t403,\n\t\t9,\n\t\t152\n\t],\n\t\"./AnalystReports/CustomSearch/Industry.js\": [\n\t\t403,\n\t\t9,\n\t\t152\n\t],\n\t\"./AnalystReports/CustomSearch/KeywordsRow\": [\n\t\t401,\n\t\t9,\n\t\t172\n\t],\n\t\"./AnalystReports/CustomSearch/KeywordsRow.js\": [\n\t\t401,\n\t\t9,\n\t\t172\n\t],\n\t\"./AnalystReports/CustomSearch/KeywordsRow.scss\": [\n\t\t1155,\n\t\t7,\n\t\t439\n\t],\n\t\"./AnalystReports/CustomSearch/KeywordsTooltip\": [\n\t\t404,\n\t\t9,\n\t\t398\n\t],\n\t\"./AnalystReports/CustomSearch/KeywordsTooltip.js\": [\n\t\t404,\n\t\t9,\n\t\t398\n\t],\n\t\"./AnalystReports/CustomSearch/PeriodRow\": [\n\t\t399,\n\t\t9,\n\t\t136\n\t],\n\t\"./AnalystReports/CustomSearch/PeriodRow.js\": [\n\t\t399,\n\t\t9,\n\t\t136\n\t],\n\t\"./AnalystReports/CustomSearch/PeriodRow.scss\": [\n\t\t1154,\n\t\t7,\n\t\t440\n\t],\n\t\"./AnalystReports/CustomSearch/ResultsView\": [\n\t\t389,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t362,\n\t\t22,\n\t\t316\n\t],\n\t\"./AnalystReports/CustomSearch/ResultsView.js\": [\n\t\t389,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t362,\n\t\t22,\n\t\t316\n\t],\n\t\"./AnalystReports/CustomSearch/ResultsView.scss\": [\n\t\t1151,\n\t\t7,\n\t\t441\n\t],\n\t\"./AnalystReports/CustomSearch/SaveSearchButton\": [\n\t\t379,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t22,\n\t\t361\n\t],\n\t\"./AnalystReports/CustomSearch/SaveSearchButton.js\": [\n\t\t379,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t22,\n\t\t361\n\t],\n\t\"./AnalystReports/CustomSearch/SaveSearchButton.scss\": [\n\t\t1143,\n\t\t7,\n\t\t442\n\t],\n\t\"./AnalystReports/CustomSearch/Source\": [\n\t\t402,\n\t\t9,\n\t\t147\n\t],\n\t\"./AnalystReports/CustomSearch/Source.js\": [\n\t\t402,\n\t\t9,\n\t\t147\n\t],\n\t\"./AnalystReports/CustomSearch/Source.scss\": [\n\t\t1141,\n\t\t7,\n\t\t443\n\t],\n\t\"./AnalystReports/CustomSearch/SymbolCompanyName\": [\n\t\t400,\n\t\t9,\n\t\t0,\n\t\t8,\n\t\t366\n\t],\n\t\"./AnalystReports/CustomSearch/SymbolCompanyName.js\": [\n\t\t400,\n\t\t9,\n\t\t0,\n\t\t8,\n\t\t366\n\t],\n\t\"./AnalystReports/Disclaimer/Disclaimer\": [\n\t\t383,\n\t\t9,\n\t\t0,\n\t\t350\n\t],\n\t\"./AnalystReports/Disclaimer/Disclaimer.js\": [\n\t\t383,\n\t\t9,\n\t\t0,\n\t\t350\n\t],\n\t\"./AnalystReports/Disclaimer/Disclaimer.scss\": [\n\t\t1144,\n\t\t7,\n\t\t444\n\t],\n\t\"./AnalystReports/Economics\": [\n\t\t605,\n\t\t9,\n\t\t0,\n\t\t319,\n\t\t100\n\t],\n\t\"./AnalystReports/Economics.js\": [\n\t\t605,\n\t\t9,\n\t\t0,\n\t\t319,\n\t\t100\n\t],\n\t\"./AnalystReports/Economics.scss\": [\n\t\t1251,\n\t\t7,\n\t\t445\n\t],\n\t\"./AnalystReports/Equities\": [\n\t\t606,\n\t\t9,\n\t\t0,\n\t\t320,\n\t\t17,\n\t\t105\n\t],\n\t\"./AnalystReports/Equities.js\": [\n\t\t606,\n\t\t9,\n\t\t0,\n\t\t320,\n\t\t17,\n\t\t105\n\t],\n\t\"./AnalystReports/Equities.scss\": [\n\t\t1253,\n\t\t7,\n\t\t446\n\t],\n\t\"./AnalystReports/Overview\": [\n\t\t607,\n\t\t9,\n\t\t0,\n\t\t321,\n\t\t25,\n\t\t277\n\t],\n\t\"./AnalystReports/Overview.js\": [\n\t\t607,\n\t\t9,\n\t\t0,\n\t\t321,\n\t\t25,\n\t\t277\n\t],\n\t\"./AnalystReports/Overview/MySearches\": [\n\t\t493,\n\t\t9,\n\t\t342\n\t],\n\t\"./AnalystReports/Overview/MySearches.js\": [\n\t\t493,\n\t\t9,\n\t\t342\n\t],\n\t\"./AnalystReports/Overview/MySearches.scss\": [\n\t\t1191,\n\t\t7,\n\t\t447\n\t],\n\t\"./AnalystReports/Overview/ResearchHighlights\": [\n\t\t587,\n\t\t9,\n\t\t25,\n\t\t388\n\t],\n\t\"./AnalystReports/Overview/ResearchHighlights.js\": [\n\t\t587,\n\t\t9,\n\t\t25,\n\t\t388\n\t],\n\t\"./AnalystReports/SavedSearches\": [\n\t\t608,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t75\n\t],\n\t\"./AnalystReports/SavedSearches.js\": [\n\t\t608,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t75\n\t],\n\t\"./AnalystReports/SavedSearches/SavedSearchList\": [\n\t\t494,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t94\n\t],\n\t\"./AnalystReports/SavedSearches/SavedSearchList.js\": [\n\t\t494,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t94\n\t],\n\t\"./AnalystReports/SavedSearches/SavedSearchList.scss\": [\n\t\t1192,\n\t\t7,\n\t\t448\n\t],\n\t\"./AnalystReports/SavedSearches/SavedSearchMenu\": [\n\t\t436,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t162\n\t],\n\t\"./AnalystReports/SavedSearches/SavedSearchMenu.js\": [\n\t\t436,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t162\n\t],\n\t\"./AnalystReports/SavedSearches/SavedSearchMenu.scss\": [\n\t\t1173,\n\t\t7,\n\t\t449\n\t],\n\t\"./AnalystReports/SavedSearchesTab\": [\n\t\t609,\n\t\t9,\n\t\t375\n\t],\n\t\"./AnalystReports/SavedSearchesTab.js\": [\n\t\t609,\n\t\t9,\n\t\t375\n\t],\n\t\"./AnalystReports/SearchCriteria\": [\n\t\t491,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t73\n\t],\n\t\"./AnalystReports/SearchCriteria.js\": [\n\t\t491,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t73\n\t],\n\t\"./EtfCentre/Charts\": [\n\t\t610,\n\t\t9,\n\t\t296\n\t],\n\t\"./EtfCentre/Charts.js\": [\n\t\t610,\n\t\t9,\n\t\t296\n\t],\n\t\"./EtfCentre/Commentary\": [\n\t\t611,\n\t\t9,\n\t\t0,\n\t\t290,\n\t\t5,\n\t\t272\n\t],\n\t\"./EtfCentre/Commentary.js\": [\n\t\t611,\n\t\t9,\n\t\t0,\n\t\t290,\n\t\t5,\n\t\t272\n\t],\n\t\"./EtfCentre/Commentary.scss\": [\n\t\t1254,\n\t\t7,\n\t\t450\n\t],\n\t\"./EtfCentre/Compare\": [\n\t\t612,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t4,\n\t\t67\n\t],\n\t\"./EtfCentre/Compare.js\": [\n\t\t612,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t4,\n\t\t67\n\t],\n\t\"./EtfCentre/Compare.scss\": [\n\t\t1255,\n\t\t7,\n\t\t451\n\t],\n\t\"./EtfCentre/EtfCentre\": [\n\t\t613,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t38\n\t],\n\t\"./EtfCentre/EtfCentre.js\": [\n\t\t613,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t38\n\t],\n\t\"./EtfCentre/EtfCentre.scss\": [\n\t\t1256,\n\t\t7,\n\t\t452\n\t],\n\t\"./EtfCentre/EtfCentreContextMenu\": [\n\t\t372,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t7,\n\t\t119\n\t],\n\t\"./EtfCentre/EtfCentreContextMenu.js\": [\n\t\t372,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t7,\n\t\t119\n\t],\n\t\"./EtfCentre/EtfCentreContextMenu.scss\": [\n\t\t1137,\n\t\t7,\n\t\t453\n\t],\n\t\"./EtfCentre/EtfCentreScreener\": [\n\t\t614,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t39\n\t],\n\t\"./EtfCentre/EtfCentreScreener.js\": [\n\t\t614,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t39\n\t],\n\t\"./EtfCentre/EtfCentreScreener.scss\": [\n\t\t1257,\n\t\t7,\n\t\t454\n\t],\n\t\"./EtfCentre/EtfCentreScreenerTest\": [\n\t\t615,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t6,\n\t\t312,\n\t\t90\n\t],\n\t\"./EtfCentre/EtfCentreScreenerTest.js\": [\n\t\t615,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t6,\n\t\t312,\n\t\t90\n\t],\n\t\"./EtfCentre/EtfDisclaimers\": [\n\t\t384,\n\t\t9,\n\t\t0,\n\t\t343\n\t],\n\t\"./EtfCentre/EtfDisclaimers.js\": [\n\t\t384,\n\t\t9,\n\t\t0,\n\t\t343\n\t],\n\t\"./EtfCentre/EtfDisclaimers.scss\": [\n\t\t1145,\n\t\t7,\n\t\t455\n\t],\n\t\"./EtfCentre/EtfHolding\": [\n\t\t616,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t4,\n\t\t7,\n\t\t69\n\t],\n\t\"./EtfCentre/EtfHolding.js\": [\n\t\t616,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t4,\n\t\t7,\n\t\t69\n\t],\n\t\"./EtfCentre/Options\": [\n\t\t617,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t14,\n\t\t107\n\t],\n\t\"./EtfCentre/Options.js\": [\n\t\t617,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t14,\n\t\t107\n\t],\n\t\"./EtfCentre/Performance\": [\n\t\t618,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t20,\n\t\t282\n\t],\n\t\"./EtfCentre/Performance.js\": [\n\t\t618,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t20,\n\t\t282\n\t],\n\t\"./EtfCentre/Portfolio\": [\n\t\t619,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t11,\n\t\t27,\n\t\t153\n\t],\n\t\"./EtfCentre/Portfolio.js\": [\n\t\t619,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t11,\n\t\t27,\n\t\t153\n\t],\n\t\"./EtfCentre/Portfolio.scss\": [\n\t\t1261,\n\t\t7,\n\t\t456\n\t],\n\t\"./EtfCentre/Reports\": [\n\t\t620,\n\t\t9,\n\t\t2,\n\t\t12,\n\t\t21,\n\t\t349\n\t],\n\t\"./EtfCentre/Reports.js\": [\n\t\t620,\n\t\t9,\n\t\t2,\n\t\t12,\n\t\t21,\n\t\t349\n\t],\n\t\"./EtfCentre/Reports.scss\": [\n\t\t1262,\n\t\t7,\n\t\t457\n\t],\n\t\"./EtfCentre/Snapshot\": [\n\t\t621,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t37\n\t],\n\t\"./EtfCentre/Snapshot.js\": [\n\t\t621,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t37\n\t],\n\t\"./EtfCentre/TechnicalAnalysis\": [\n\t\t622,\n\t\t9,\n\t\t351\n\t],\n\t\"./EtfCentre/TechnicalAnalysis.js\": [\n\t\t622,\n\t\t9,\n\t\t351\n\t],\n\t\"./EtfCentre/eftHolding.scss\": [\n\t\t1258,\n\t\t7,\n\t\t458\n\t],\n\t\"./EtfCentre/modules/MyWatchlistModal\": [\n\t\t381,\n\t\t9,\n\t\t0,\n\t\t5,\n\t\t326\n\t],\n\t\"./EtfCentre/modules/MyWatchlistModal.js\": [\n\t\t381,\n\t\t9,\n\t\t0,\n\t\t5,\n\t\t326\n\t],\n\t\"./EtfCentre/modules/MyWatchlistModal.scss\": [\n\t\t1139,\n\t\t7,\n\t\t459\n\t],\n\t\"./EtfCentre/modules/compare/AddEtf\": [\n\t\t437,\n\t\t9,\n\t\t0,\n\t\t145\n\t],\n\t\"./EtfCentre/modules/compare/AddEtf.js\": [\n\t\t437,\n\t\t9,\n\t\t0,\n\t\t145\n\t],\n\t\"./EtfCentre/modules/compare/BasicComparison\": [\n\t\t495,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t4,\n\t\t82\n\t],\n\t\"./EtfCentre/modules/compare/BasicComparison.js\": [\n\t\t495,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t4,\n\t\t82\n\t],\n\t\"./EtfCentre/modules/compare/BasicComparison.scss\": [\n\t\t1135,\n\t\t7,\n\t\t460\n\t],\n\t\"./EtfCentre/modules/compare/DistributionInformation\": [\n\t\t501,\n\t\t9,\n\t\t0,\n\t\t257\n\t],\n\t\"./EtfCentre/modules/compare/DistributionInformation.js\": [\n\t\t501,\n\t\t9,\n\t\t0,\n\t\t257\n\t],\n\t\"./EtfCentre/modules/compare/FundOverview\": [\n\t\t496,\n\t\t9,\n\t\t0,\n\t\t245\n\t],\n\t\"./EtfCentre/modules/compare/FundOverview.js\": [\n\t\t496,\n\t\t9,\n\t\t0,\n\t\t245\n\t],\n\t\"./EtfCentre/modules/compare/MorningstarRatings\": [\n\t\t500,\n\t\t9,\n\t\t0,\n\t\t246\n\t],\n\t\"./EtfCentre/modules/compare/MorningstarRatings.js\": [\n\t\t500,\n\t\t9,\n\t\t0,\n\t\t246\n\t],\n\t\"./EtfCentre/modules/compare/Performance\": [\n\t\t497,\n\t\t9,\n\t\t0,\n\t\t250\n\t],\n\t\"./EtfCentre/modules/compare/Performance.js\": [\n\t\t497,\n\t\t9,\n\t\t0,\n\t\t250\n\t],\n\t\"./EtfCentre/modules/compare/Portfolio\": [\n\t\t502,\n\t\t9,\n\t\t0,\n\t\t258\n\t],\n\t\"./EtfCentre/modules/compare/Portfolio.js\": [\n\t\t502,\n\t\t9,\n\t\t0,\n\t\t258\n\t],\n\t\"./EtfCentre/modules/compare/PremiumDiscount\": [\n\t\t499,\n\t\t9,\n\t\t0,\n\t\t259\n\t],\n\t\"./EtfCentre/modules/compare/PremiumDiscount.js\": [\n\t\t499,\n\t\t9,\n\t\t0,\n\t\t259\n\t],\n\t\"./EtfCentre/modules/compare/Risk\": [\n\t\t498,\n\t\t9,\n\t\t0,\n\t\t260\n\t],\n\t\"./EtfCentre/modules/compare/Risk.js\": [\n\t\t498,\n\t\t9,\n\t\t0,\n\t\t260\n\t],\n\t\"./EtfCentre/modules/compare/SimilarEtfDropdown\": [\n\t\t480,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t176\n\t],\n\t\"./EtfCentre/modules/compare/SimilarEtfDropdown.js\": [\n\t\t480,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t176\n\t],\n\t\"./EtfCentre/modules/compare/SimilarEtfDropdown.scss\": [\n\t\t1174,\n\t\t7,\n\t\t461\n\t],\n\t\"./EtfCentre/modules/overview/BrowseEtfs\": [\n\t\t503,\n\t\t9,\n\t\t6,\n\t\t156\n\t],\n\t\"./EtfCentre/modules/overview/BrowseEtfs.js\": [\n\t\t503,\n\t\t9,\n\t\t6,\n\t\t156\n\t],\n\t\"./EtfCentre/modules/overview/BrowseEtfs.scss\": [\n\t\t1193,\n\t\t7,\n\t\t462\n\t],\n\t\"./EtfCentre/modules/overview/ETFTypeToRanksetNameMap\": [\n\t\t397,\n\t\t9,\n\t\t399\n\t],\n\t\"./EtfCentre/modules/overview/ETFTypeToRanksetNameMap.js\": [\n\t\t397,\n\t\t9,\n\t\t399\n\t],\n\t\"./EtfCentre/modules/overview/FeaturedScreens\": [\n\t\t510,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t55\n\t],\n\t\"./EtfCentre/modules/overview/FeaturedScreens.js\": [\n\t\t510,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t55\n\t],\n\t\"./EtfCentre/modules/overview/FeaturedScreens.scss\": [\n\t\t1200,\n\t\t7,\n\t\t463\n\t],\n\t\"./EtfCentre/modules/overview/FindSimilarEtfs\": [\n\t\t504,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t253\n\t],\n\t\"./EtfCentre/modules/overview/FindSimilarEtfs.js\": [\n\t\t504,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t253\n\t],\n\t\"./EtfCentre/modules/overview/FindSimilarEtfs.scss\": [\n\t\t1194,\n\t\t7,\n\t\t464\n\t],\n\t\"./EtfCentre/modules/overview/HoldingsSearch\": [\n\t\t509,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t7,\n\t\t99\n\t],\n\t\"./EtfCentre/modules/overview/HoldingsSearch.js\": [\n\t\t509,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t7,\n\t\t99\n\t],\n\t\"./EtfCentre/modules/overview/HoldingsSearch.scss\": [\n\t\t1199,\n\t\t7,\n\t\t465\n\t],\n\t\"./EtfCentre/modules/overview/LatestEtfCommentary\": [\n\t\t505,\n\t\t9,\n\t\t0,\n\t\t360,\n\t\t160\n\t],\n\t\"./EtfCentre/modules/overview/LatestEtfCommentary.js\": [\n\t\t505,\n\t\t9,\n\t\t0,\n\t\t360,\n\t\t160\n\t],\n\t\"./EtfCentre/modules/overview/LatestEtfCommentary.scss\": [\n\t\t1195,\n\t\t7,\n\t\t466\n\t],\n\t\"./EtfCentre/modules/overview/MostActive\": [\n\t\t507,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t4,\n\t\t76\n\t],\n\t\"./EtfCentre/modules/overview/MostActive.js\": [\n\t\t507,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t4,\n\t\t76\n\t],\n\t\"./EtfCentre/modules/overview/MostActive.scss\": [\n\t\t1197,\n\t\t7,\n\t\t467\n\t],\n\t\"./EtfCentre/modules/overview/Performers\": [\n\t\t508,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t4,\n\t\t81\n\t],\n\t\"./EtfCentre/modules/overview/Performers.js\": [\n\t\t508,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t4,\n\t\t81\n\t],\n\t\"./EtfCentre/modules/overview/Performers.scss\": [\n\t\t1198,\n\t\t7,\n\t\t468\n\t],\n\t\"./EtfCentre/modules/overview/TodaysMovers\": [\n\t\t506,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t4,\n\t\t77\n\t],\n\t\"./EtfCentre/modules/overview/TodaysMovers.js\": [\n\t\t506,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t4,\n\t\t77\n\t],\n\t\"./EtfCentre/modules/overview/TodaysMovers.scss\": [\n\t\t1196,\n\t\t7,\n\t\t469\n\t],\n\t\"./EtfCentre/modules/overview/TopThreeChart\": [\n\t\t390,\n\t\t9,\n\t\t392\n\t],\n\t\"./EtfCentre/modules/overview/TopThreeChart.js\": [\n\t\t390,\n\t\t9,\n\t\t392\n\t],\n\t\"./EtfCentre/modules/overview/TopThreeCharts\": [\n\t\t396,\n\t\t9,\n\t\t348\n\t],\n\t\"./EtfCentre/modules/overview/TopThreeCharts.js\": [\n\t\t396,\n\t\t9,\n\t\t348\n\t],\n\t\"./EtfCentre/modules/overview/TopThreeCharts.scss\": [\n\t\t1157,\n\t\t7,\n\t\t470\n\t],\n\t\"./EtfCentre/modules/performance/AnnualPerformance\": [\n\t\t593,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t20\n\t],\n\t\"./EtfCentre/modules/performance/AnnualPerformance.js\": [\n\t\t593,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t20\n\t],\n\t\"./EtfCentre/modules/performance/AnnualPerformance.scss\": [\n\t\t1259,\n\t\t7,\n\t\t471\n\t],\n\t\"./EtfCentre/modules/performance/AnnualizedReturns\": [\n\t\t519,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t138\n\t],\n\t\"./EtfCentre/modules/performance/AnnualizedReturns.js\": [\n\t\t519,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t138\n\t],\n\t\"./EtfCentre/modules/performance/AnnualizedReturns.scss\": [\n\t\t1206,\n\t\t7,\n\t\t472\n\t],\n\t\"./EtfCentre/modules/performance/Growth10KChart\": [\n\t\t481,\n\t\t9,\n\t\t306\n\t],\n\t\"./EtfCentre/modules/performance/Growth10KChart.js\": [\n\t\t481,\n\t\t9,\n\t\t306\n\t],\n\t\"./EtfCentre/modules/performance/Growth10KChart.scss\": [\n\t\t1175,\n\t\t7,\n\t\t473\n\t],\n\t\"./EtfCentre/modules/performance/MorningstarRiskRating\": [\n\t\t518,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t146\n\t],\n\t\"./EtfCentre/modules/performance/MorningstarRiskRating.js\": [\n\t\t518,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t146\n\t],\n\t\"./EtfCentre/modules/performance/MorningstarRiskRating.scss\": [\n\t\t1204,\n\t\t7,\n\t\t474\n\t],\n\t\"./EtfCentre/modules/performance/TrailingReturnsChart\": [\n\t\t580,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t137\n\t],\n\t\"./EtfCentre/modules/performance/TrailingReturnsChart.js\": [\n\t\t580,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t137\n\t],\n\t\"./EtfCentre/modules/performance/TrailingReturnsChart.scss\": [\n\t\t1205,\n\t\t7,\n\t\t475\n\t],\n\t\"./EtfCentre/modules/performance/Volatility\": [\n\t\t520,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t154\n\t],\n\t\"./EtfCentre/modules/performance/Volatility.js\": [\n\t\t520,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t154\n\t],\n\t\"./EtfCentre/modules/performance/Volatility.scss\": [\n\t\t1207,\n\t\t7,\n\t\t476\n\t],\n\t\"./EtfCentre/modules/portfolio/AssetAllocation\": [\n\t\t521,\n\t\t9,\n\t\t11,\n\t\t283\n\t],\n\t\"./EtfCentre/modules/portfolio/AssetAllocation.js\": [\n\t\t521,\n\t\t9,\n\t\t11,\n\t\t283\n\t],\n\t\"./EtfCentre/modules/portfolio/AssetAllocation.scss\": [\n\t\t1208,\n\t\t7,\n\t\t477\n\t],\n\t\"./EtfCentre/modules/portfolio/TopGlobalHoldings\": [\n\t\t522,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t135\n\t],\n\t\"./EtfCentre/modules/portfolio/TopGlobalHoldings.js\": [\n\t\t522,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t135\n\t],\n\t\"./EtfCentre/modules/portfolio/TopGlobalHoldings.scss\": [\n\t\t1209,\n\t\t7,\n\t\t478\n\t],\n\t\"./EtfCentre/modules/portfolio/TopHoldings\": [\n\t\t523,\n\t\t9,\n\t\t11,\n\t\t280\n\t],\n\t\"./EtfCentre/modules/portfolio/TopHoldings.js\": [\n\t\t523,\n\t\t9,\n\t\t11,\n\t\t280\n\t],\n\t\"./EtfCentre/modules/portfolio/TopHoldings.scss\": [\n\t\t1210,\n\t\t7,\n\t\t479\n\t],\n\t\"./EtfCentre/modules/portfolio/TopSectorHoldings\": [\n\t\t588,\n\t\t9,\n\t\t11,\n\t\t27\n\t],\n\t\"./EtfCentre/modules/portfolio/TopSectorHoldings.js\": [\n\t\t588,\n\t\t9,\n\t\t11,\n\t\t27\n\t],\n\t\"./EtfCentre/modules/portfolio/TopSectorHoldings.scss\": [\n\t\t1260,\n\t\t7,\n\t\t480\n\t],\n\t\"./EtfCentre/modules/reports/EtfHoldingNews\": [\n\t\t589,\n\t\t9,\n\t\t2,\n\t\t12,\n\t\t21\n\t],\n\t\"./EtfCentre/modules/reports/EtfHoldingNews.js\": [\n\t\t589,\n\t\t9,\n\t\t2,\n\t\t12,\n\t\t21\n\t],\n\t\"./EtfCentre/modules/reports/EtfNews\": [\n\t\t525,\n\t\t9,\n\t\t2,\n\t\t12,\n\t\t169\n\t],\n\t\"./EtfCentre/modules/reports/EtfNews.js\": [\n\t\t525,\n\t\t9,\n\t\t2,\n\t\t12,\n\t\t169\n\t],\n\t\"./EtfCentre/modules/reports/MorningstarAnalystReport\": [\n\t\t524,\n\t\t9,\n\t\t255\n\t],\n\t\"./EtfCentre/modules/reports/MorningstarAnalystReport.js\": [\n\t\t524,\n\t\t9,\n\t\t255\n\t],\n\t\"./EtfCentre/modules/reports/MorningstarAnalystReport.scss\": [\n\t\t1211,\n\t\t7,\n\t\t481\n\t],\n\t\"./EtfCentre/modules/screener/AddCriteria\": [\n\t\t515,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t8,\n\t\t9,\n\t\t91\n\t],\n\t\"./EtfCentre/modules/screener/AddCriteria.js\": [\n\t\t515,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t8,\n\t\t9,\n\t\t91\n\t],\n\t\"./EtfCentre/modules/screener/AddCriteria.scss\": [\n\t\t1202,\n\t\t7,\n\t\t482\n\t],\n\t\"./EtfCentre/modules/screener/CriteriaCard\": [\n\t\t517,\n\t\t9,\n\t\t2,\n\t\t177\n\t],\n\t\"./EtfCentre/modules/screener/CriteriaCard.js\": [\n\t\t517,\n\t\t9,\n\t\t2,\n\t\t177\n\t],\n\t\"./EtfCentre/modules/screener/CriteriaCard.scss\": [\n\t\t1203,\n\t\t7,\n\t\t483\n\t],\n\t\"./EtfCentre/modules/screener/CustomScreener\": [\n\t\t513,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t46\n\t],\n\t\"./EtfCentre/modules/screener/CustomScreener.js\": [\n\t\t513,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t46\n\t],\n\t\"./EtfCentre/modules/screener/CustomScreener.scss\": [\n\t\t1166,\n\t\t7,\n\t\t484\n\t],\n\t\"./EtfCentre/modules/screener/FeaturedScreens\": [\n\t\t511,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t48\n\t],\n\t\"./EtfCentre/modules/screener/FeaturedScreens.js\": [\n\t\t511,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t48\n\t],\n\t\"./EtfCentre/modules/screener/QuickScreener\": [\n\t\t512,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t47\n\t],\n\t\"./EtfCentre/modules/screener/QuickScreener.js\": [\n\t\t512,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t47\n\t],\n\t\"./EtfCentre/modules/screener/SavedScreenMenu\": [\n\t\t438,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t139\n\t],\n\t\"./EtfCentre/modules/screener/SavedScreenMenu.js\": [\n\t\t438,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t139\n\t],\n\t\"./EtfCentre/modules/screener/SavedScreenTab\": [\n\t\t516,\n\t\t9,\n\t\t400\n\t],\n\t\"./EtfCentre/modules/screener/SavedScreenTab.js\": [\n\t\t516,\n\t\t9,\n\t\t400\n\t],\n\t\"./EtfCentre/modules/screener/SavedScreens\": [\n\t\t514,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t49\n\t],\n\t\"./EtfCentre/modules/screener/SavedScreens.js\": [\n\t\t514,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t49\n\t],\n\t\"./EtfCentre/modules/screener/SavedScreens.scss\": [\n\t\t1158,\n\t\t7,\n\t\t485\n\t],\n\t\"./EtfCentre/modules/screener/ScreenerCriteria\": [\n\t\t398,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t63\n\t],\n\t\"./EtfCentre/modules/screener/ScreenerCriteria.js\": [\n\t\t398,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t63\n\t],\n\t\"./EtfCentre/modules/screener/featuredScreens.scss\": [\n\t\t1201,\n\t\t7,\n\t\t486\n\t],\n\t\"./EtfCentre/modules/screener/modules/FeaturedScreensConfig\": [\n\t\t391,\n\t\t9,\n\t\t401\n\t],\n\t\"./EtfCentre/modules/screener/modules/FeaturedScreensConfig.js\": [\n\t\t391,\n\t\t9,\n\t\t401\n\t],\n\t\"./EtfCentre/modules/snapshot/DistributionInfo\": [\n\t\t531,\n\t\t9,\n\t\t299\n\t],\n\t\"./EtfCentre/modules/snapshot/DistributionInfo.js\": [\n\t\t531,\n\t\t9,\n\t\t299\n\t],\n\t\"./EtfCentre/modules/snapshot/DistributionInfo.scss\": [\n\t\t1218,\n\t\t7,\n\t\t487\n\t],\n\t\"./EtfCentre/modules/snapshot/FundOverview\": [\n\t\t527,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t58\n\t],\n\t\"./EtfCentre/modules/snapshot/FundOverview.js\": [\n\t\t527,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t58\n\t],\n\t\"./EtfCentre/modules/snapshot/FundOverview.scss\": [\n\t\t1213,\n\t\t7,\n\t\t488\n\t],\n\t\"./EtfCentre/modules/snapshot/Fundamentals\": [\n\t\t529,\n\t\t9,\n\t\t345\n\t],\n\t\"./EtfCentre/modules/snapshot/Fundamentals.js\": [\n\t\t529,\n\t\t9,\n\t\t345\n\t],\n\t\"./EtfCentre/modules/snapshot/Fundamentals.scss\": [\n\t\t1215,\n\t\t7,\n\t\t489\n\t],\n\t\"./EtfCentre/modules/snapshot/MorningstarReports\": [\n\t\t530,\n\t\t9,\n\t\t262\n\t],\n\t\"./EtfCentre/modules/snapshot/MorningstarReports.js\": [\n\t\t530,\n\t\t9,\n\t\t262\n\t],\n\t\"./EtfCentre/modules/snapshot/MorningstarReports.scss\": [\n\t\t1216,\n\t\t7,\n\t\t490\n\t],\n\t\"./EtfCentre/modules/snapshot/Portfolio\": [\n\t\t532,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t11,\n\t\t122\n\t],\n\t\"./EtfCentre/modules/snapshot/Portfolio.js\": [\n\t\t532,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t11,\n\t\t122\n\t],\n\t\"./EtfCentre/modules/snapshot/Portfolio.scss\": [\n\t\t1219,\n\t\t7,\n\t\t491\n\t],\n\t\"./EtfCentre/modules/snapshot/PremiumDiscount\": [\n\t\t526,\n\t\t9,\n\t\t332\n\t],\n\t\"./EtfCentre/modules/snapshot/PremiumDiscount.js\": [\n\t\t526,\n\t\t9,\n\t\t332\n\t],\n\t\"./EtfCentre/modules/snapshot/PremiumDiscount.scss\": [\n\t\t1212,\n\t\t7,\n\t\t492\n\t],\n\t\"./EtfCentre/modules/snapshot/PremiumDiscountChart\": [\n\t\t581,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t155\n\t],\n\t\"./EtfCentre/modules/snapshot/PremiumDiscountChart.js\": [\n\t\t581,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t155\n\t],\n\t\"./EtfCentre/modules/snapshot/PremiumDiscountChart.scss\": [\n\t\t1217,\n\t\t7,\n\t\t493\n\t],\n\t\"./EtfCentre/modules/snapshot/PremiumDiscountChartHover\": [\n\t\t440,\n\t\t9,\n\t\t402\n\t],\n\t\"./EtfCentre/modules/snapshot/PremiumDiscountChartHover.js\": [\n\t\t440,\n\t\t9,\n\t\t402\n\t],\n\t\"./EtfCentre/modules/snapshot/SimilarETFs\": [\n\t\t528,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t4,\n\t\t356,\n\t\t124\n\t],\n\t\"./EtfCentre/modules/snapshot/SimilarETFs.js\": [\n\t\t528,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t4,\n\t\t356,\n\t\t124\n\t],\n\t\"./EtfCentre/modules/snapshot/SimilarETFs.scss\": [\n\t\t1214,\n\t\t7,\n\t\t494\n\t],\n\t\"./FundCentre/Charts\": [\n\t\t623,\n\t\t9,\n\t\t5,\n\t\t285\n\t],\n\t\"./FundCentre/Charts.js\": [\n\t\t623,\n\t\t9,\n\t\t5,\n\t\t285\n\t],\n\t\"./FundCentre/CustomizeScreener\": [\n\t\t624,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t40\n\t],\n\t\"./FundCentre/CustomizeScreener.js\": [\n\t\t624,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t40\n\t],\n\t\"./FundCentre/FundCentreCustomizeScreeners\": [\n\t\t533,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t43\n\t],\n\t\"./FundCentre/FundCentreCustomizeScreeners.js\": [\n\t\t533,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t43\n\t],\n\t\"./FundCentre/FundCentreCustomizeScreeners.scss\": [\n\t\t1220,\n\t\t7,\n\t\t495\n\t],\n\t\"./FundCentre/FundCentreDisclaimers\": [\n\t\t386,\n\t\t9,\n\t\t0,\n\t\t334\n\t],\n\t\"./FundCentre/FundCentreDisclaimers.js\": [\n\t\t386,\n\t\t9,\n\t\t0,\n\t\t334\n\t],\n\t\"./FundCentre/FundCentreDisclaimers.scss\": [\n\t\t1146,\n\t\t7,\n\t\t496\n\t],\n\t\"./FundCentre/FundCentreEtfs\": [\n\t\t625,\n\t\t9,\n\t\t0,\n\t\t6,\n\t\t308,\n\t\t5,\n\t\t276\n\t],\n\t\"./FundCentre/FundCentreEtfs.js\": [\n\t\t625,\n\t\t9,\n\t\t0,\n\t\t6,\n\t\t308,\n\t\t5,\n\t\t276\n\t],\n\t\"./FundCentre/FundCentreHolding\": [\n\t\t626,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t4,\n\t\t7,\n\t\t72\n\t],\n\t\"./FundCentre/FundCentreHolding.js\": [\n\t\t626,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t4,\n\t\t7,\n\t\t72\n\t],\n\t\"./FundCentre/FundCentreHolding.scss\": [\n\t\t1263,\n\t\t7,\n\t\t497\n\t],\n\t\"./FundCentre/FundCentreOverview\": [\n\t\t627,\n\t\t9,\n\t\t0,\n\t\t6,\n\t\t301,\n\t\t5,\n\t\t270\n\t],\n\t\"./FundCentre/FundCentreOverview.js\": [\n\t\t627,\n\t\t9,\n\t\t0,\n\t\t6,\n\t\t301,\n\t\t5,\n\t\t270\n\t],\n\t\"./FundCentre/FundCentreOverview.scss\": [\n\t\t1152,\n\t\t7,\n\t\t498\n\t],\n\t\"./FundCentre/FundCentrePerformance\": [\n\t\t628,\n\t\t9,\n\t\t0,\n\t\t6,\n\t\t298,\n\t\t5,\n\t\t220\n\t],\n\t\"./FundCentre/FundCentrePerformance.js\": [\n\t\t628,\n\t\t9,\n\t\t0,\n\t\t6,\n\t\t298,\n\t\t5,\n\t\t220\n\t],\n\t\"./FundCentre/FundCentrePerformance.scss\": [\n\t\t1264,\n\t\t7,\n\t\t499\n\t],\n\t\"./FundCentre/FundCentreScreeners\": [\n\t\t629,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t42\n\t],\n\t\"./FundCentre/FundCentreScreeners.js\": [\n\t\t629,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t42\n\t],\n\t\"./FundCentre/FundCentreScreeners.scss\": [\n\t\t1221,\n\t\t7,\n\t\t500\n\t],\n\t\"./FundCentre/HoldingPerformance\": [\n\t\t630,\n\t\t9,\n\t\t5,\n\t\t16,\n\t\t288\n\t],\n\t\"./FundCentre/HoldingPerformance.js\": [\n\t\t630,\n\t\t9,\n\t\t5,\n\t\t16,\n\t\t288\n\t],\n\t\"./FundCentre/LipperLeaders\": [\n\t\t631,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t5,\n\t\t30,\n\t\t370\n\t],\n\t\"./FundCentre/LipperLeaders.js\": [\n\t\t631,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t5,\n\t\t30,\n\t\t370\n\t],\n\t\"./FundCentre/Options\": [\n\t\t632,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t14,\n\t\t108\n\t],\n\t\"./FundCentre/Options.js\": [\n\t\t632,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t14,\n\t\t108\n\t],\n\t\"./FundCentre/Portfolio\": [\n\t\t633,\n\t\t9,\n\t\t11,\n\t\t5,\n\t\t29,\n\t\t336\n\t],\n\t\"./FundCentre/Portfolio.js\": [\n\t\t633,\n\t\t9,\n\t\t11,\n\t\t5,\n\t\t29,\n\t\t336\n\t],\n\t\"./FundCentre/Screener/AdditionalFundAttributesCriteriaTable\": [\n\t\t417,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t65\n\t],\n\t\"./FundCentre/Screener/AdditionalFundAttributesCriteriaTable.js\": [\n\t\t417,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t65\n\t],\n\t\"./FundCentre/Screener/CibcFunds\": [\n\t\t541,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t8,\n\t\t9,\n\t\t88\n\t],\n\t\"./FundCentre/Screener/CibcFunds.js\": [\n\t\t541,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t8,\n\t\t9,\n\t\t88\n\t],\n\t\"./FundCentre/Screener/CibcFunds.scss\": [\n\t\t1225,\n\t\t7,\n\t\t501\n\t],\n\t\"./FundCentre/Screener/CibcFundsConfig\": [\n\t\t443,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t8,\n\t\t9,\n\t\t95\n\t],\n\t\"./FundCentre/Screener/CibcFundsConfig.js\": [\n\t\t443,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t8,\n\t\t9,\n\t\t95\n\t],\n\t\"./FundCentre/Screener/CustomizeScreenerCriteria\": [\n\t\t442,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t56\n\t],\n\t\"./FundCentre/Screener/CustomizeScreenerCriteria.js\": [\n\t\t442,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t56\n\t],\n\t\"./FundCentre/Screener/CustomizeScreenerResults\": [\n\t\t441,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t53\n\t],\n\t\"./FundCentre/Screener/CustomizeScreenerResults.js\": [\n\t\t441,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t53\n\t],\n\t\"./FundCentre/Screener/FundCriteriaTable\": [\n\t\t409,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t59\n\t],\n\t\"./FundCentre/Screener/FundCriteriaTable.js\": [\n\t\t409,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t59\n\t],\n\t\"./FundCentre/Screener/FundCriteriaTable.scss\": [\n\t\t1138,\n\t\t7,\n\t\t502\n\t],\n\t\"./FundCentre/Screener/LipperLeaderRatingsCrieriaTable\": [\n\t\t411,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t60\n\t],\n\t\"./FundCentre/Screener/LipperLeaderRatingsCrieriaTable.js\": [\n\t\t411,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t60\n\t],\n\t\"./FundCentre/Screener/Prescreens\": [\n\t\t536,\n\t\t9,\n\t\t367\n\t],\n\t\"./FundCentre/Screener/Prescreens.js\": [\n\t\t536,\n\t\t9,\n\t\t367\n\t],\n\t\"./FundCentre/Screener/SavedScreenMenu\": [\n\t\t444,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t213\n\t],\n\t\"./FundCentre/Screener/SavedScreenMenu.js\": [\n\t\t444,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t213\n\t],\n\t\"./FundCentre/Screener/SavedScreens\": [\n\t\t542,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t6,\n\t\t133\n\t],\n\t\"./FundCentre/Screener/SavedScreens.js\": [\n\t\t542,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t6,\n\t\t133\n\t],\n\t\"./FundCentre/Screener/SavedScreens.scss\": [\n\t\t1161,\n\t\t7,\n\t\t503\n\t],\n\t\"./FundCentre/Screener/TotalReturnPerformanceCriteriaTable\": [\n\t\t410,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t61\n\t],\n\t\"./FundCentre/Screener/TotalReturnPerformanceCriteriaTable.js\": [\n\t\t410,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t61\n\t],\n\t\"./FundCentre/Screener/criteria/LFFundType\": [\n\t\t317,\n\t\t9,\n\t\t217\n\t],\n\t\"./FundCentre/Screener/criteria/LFFundType.js\": [\n\t\t317,\n\t\t9,\n\t\t217\n\t],\n\t\"./FundCentre/Screener/criteria/LFFundType.scss\": [\n\t\t1118,\n\t\t7,\n\t\t504\n\t],\n\t\"./FundCentre/Screener/criteria/LFLoadType\": [\n\t\t316,\n\t\t9,\n\t\t194\n\t],\n\t\"./FundCentre/Screener/criteria/LFLoadType.js\": [\n\t\t316,\n\t\t9,\n\t\t194\n\t],\n\t\"./FundCentre/Screener/criteria/LFMgmtExpenseRatio\": [\n\t\t315,\n\t\t9,\n\t\t195\n\t],\n\t\"./FundCentre/Screener/criteria/LFMgmtExpenseRatio.js\": [\n\t\t315,\n\t\t9,\n\t\t195\n\t],\n\t\"./FundCentre/Screener/criteria/LFMinInitialInvest\": [\n\t\t313,\n\t\t9,\n\t\t196\n\t],\n\t\"./FundCentre/Screener/criteria/LFMinInitialInvest.js\": [\n\t\t313,\n\t\t9,\n\t\t196\n\t],\n\t\"./FundCentre/Screener/criteria/LFTotalNetAssets\": [\n\t\t314,\n\t\t9,\n\t\t197\n\t],\n\t\"./FundCentre/Screener/criteria/LFTotalNetAssets.js\": [\n\t\t314,\n\t\t9,\n\t\t197\n\t],\n\t\"./FundCentre/Snapshot\": [\n\t\t634,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t5,\n\t\t16,\n\t\t269\n\t],\n\t\"./FundCentre/Snapshot.js\": [\n\t\t634,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t5,\n\t\t16,\n\t\t269\n\t],\n\t\"./FundCentre/modules/etfs/ExchangeTradedFunds\": [\n\t\t534,\n\t\t9,\n\t\t6,\n\t\t120\n\t],\n\t\"./FundCentre/modules/etfs/ExchangeTradedFunds.js\": [\n\t\t534,\n\t\t9,\n\t\t6,\n\t\t120\n\t],\n\t\"./FundCentre/modules/etfs/ExchangeTradedFunds.scss\": [\n\t\t1222,\n\t\t7,\n\t\t505\n\t],\n\t\"./FundCentre/modules/holding_performance/ContactInfo\": [\n\t\t545,\n\t\t9,\n\t\t372\n\t],\n\t\"./FundCentre/modules/holding_performance/ContactInfo.js\": [\n\t\t545,\n\t\t9,\n\t\t372\n\t],\n\t\"./FundCentre/modules/holding_performance/ContactInfo.scss\": [\n\t\t1227,\n\t\t7,\n\t\t506\n\t],\n\t\"./FundCentre/modules/holding_performance/Distribution\": [\n\t\t544,\n\t\t9,\n\t\t339\n\t],\n\t\"./FundCentre/modules/holding_performance/Distribution.js\": [\n\t\t544,\n\t\t9,\n\t\t339\n\t],\n\t\"./FundCentre/modules/holding_performance/Distribution.scss\": [\n\t\t1226,\n\t\t7,\n\t\t507\n\t],\n\t\"./FundCentre/modules/lipperLeaders/LipperLeadersRatings\": [\n\t\t590,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t30,\n\t\t271\n\t],\n\t\"./FundCentre/modules/lipperLeaders/LipperLeadersRatings.js\": [\n\t\t590,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t30,\n\t\t271\n\t],\n\t\"./FundCentre/modules/lipperLeaders/LipperLeadersRatings.scss\": [\n\t\t1266,\n\t\t7,\n\t\t508\n\t],\n\t\"./FundCentre/modules/overview/CIBCFunds\": [\n\t\t635,\n\t\t9,\n\t\t368\n\t],\n\t\"./FundCentre/modules/overview/CIBCFunds.js\": [\n\t\t635,\n\t\t9,\n\t\t368\n\t],\n\t\"./FundCentre/modules/overview/SavedScreens\": [\n\t\t537,\n\t\t9,\n\t\t6,\n\t\t323\n\t],\n\t\"./FundCentre/modules/overview/SavedScreens.js\": [\n\t\t537,\n\t\t9,\n\t\t6,\n\t\t323\n\t],\n\t\"./FundCentre/modules/overview/SavedScreens.scss\": [\n\t\t1223,\n\t\t7,\n\t\t509\n\t],\n\t\"./FundCentre/modules/overview/TodaysFunds\": [\n\t\t535,\n\t\t9,\n\t\t6,\n\t\t142\n\t],\n\t\"./FundCentre/modules/overview/TodaysFunds.js\": [\n\t\t535,\n\t\t9,\n\t\t6,\n\t\t142\n\t],\n\t\"./FundCentre/modules/overview/TodaysFunds.scss\": [\n\t\t1167,\n\t\t7,\n\t\t510\n\t],\n\t\"./FundCentre/modules/overview/TodaysIndices\": [\n\t\t582,\n\t\t9,\n\t\t151\n\t],\n\t\"./FundCentre/modules/overview/TodaysIndices.js\": [\n\t\t582,\n\t\t9,\n\t\t151\n\t],\n\t\"./FundCentre/modules/performance/LipperLeaders\": [\n\t\t538,\n\t\t9,\n\t\t6,\n\t\t121\n\t],\n\t\"./FundCentre/modules/performance/LipperLeaders.js\": [\n\t\t538,\n\t\t9,\n\t\t6,\n\t\t121\n\t],\n\t\"./FundCentre/modules/performance/LipperLeaders.scss\": [\n\t\t1224,\n\t\t7,\n\t\t511\n\t],\n\t\"./FundCentre/modules/performance/MutualFunds\": [\n\t\t539,\n\t\t9,\n\t\t6,\n\t\t130\n\t],\n\t\"./FundCentre/modules/performance/MutualFunds.js\": [\n\t\t539,\n\t\t9,\n\t\t6,\n\t\t130\n\t],\n\t\"./FundCentre/modules/performance/MutualFunds.scss\": [\n\t\t1168,\n\t\t7,\n\t\t512\n\t],\n\t\"./FundCentre/modules/performance/TotalNetAssets\": [\n\t\t540,\n\t\t9,\n\t\t6,\n\t\t131\n\t],\n\t\"./FundCentre/modules/performance/TotalNetAssets.js\": [\n\t\t540,\n\t\t9,\n\t\t6,\n\t\t131\n\t],\n\t\"./FundCentre/modules/portfolio/AssetAllocation\": [\n\t\t591,\n\t\t9,\n\t\t11,\n\t\t29,\n\t\t384\n\t],\n\t\"./FundCentre/modules/portfolio/AssetAllocation.js\": [\n\t\t591,\n\t\t9,\n\t\t11,\n\t\t29,\n\t\t384\n\t],\n\t\"./FundCentre/modules/portfolio/AssetAllocation.scss\": [\n\t\t1267,\n\t\t7,\n\t\t513\n\t],\n\t\"./FundCentre/modules/snapshot/DividendInformation\": [\n\t\t547,\n\t\t9,\n\t\t337\n\t],\n\t\"./FundCentre/modules/snapshot/DividendInformation.js\": [\n\t\t547,\n\t\t9,\n\t\t337\n\t],\n\t\"./FundCentre/modules/snapshot/DividendInformation.scss\": [\n\t\t1229,\n\t\t7,\n\t\t514\n\t],\n\t\"./FundCentre/modules/snapshot/FundObjective\": [\n\t\t445,\n\t\t9,\n\t\t363\n\t],\n\t\"./FundCentre/modules/snapshot/FundObjective.js\": [\n\t\t445,\n\t\t9,\n\t\t363\n\t],\n\t\"./FundCentre/modules/snapshot/FundObjective.scss\": [\n\t\t1178,\n\t\t7,\n\t\t515\n\t],\n\t\"./FundCentre/modules/snapshot/FundQuoteDetails\": [\n\t\t546,\n\t\t9,\n\t\t340\n\t],\n\t\"./FundCentre/modules/snapshot/FundQuoteDetails.js\": [\n\t\t546,\n\t\t9,\n\t\t340\n\t],\n\t\"./FundCentre/modules/snapshot/FundQuoteDetails.scss\": [\n\t\t1228,\n\t\t7,\n\t\t516\n\t],\n\t\"./FundCentre/modules/snapshot/PortfolioAllocation\": [\n\t\t446,\n\t\t9,\n\t\t300\n\t],\n\t\"./FundCentre/modules/snapshot/PortfolioAllocation.js\": [\n\t\t446,\n\t\t9,\n\t\t300\n\t],\n\t\"./FundCentre/modules/snapshot/PortfolioAllocation.scss\": [\n\t\t1179,\n\t\t7,\n\t\t517\n\t],\n\t\"./FundCentre/modules/snapshot/PurchaseDetails\": [\n\t\t548,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t244\n\t],\n\t\"./FundCentre/modules/snapshot/PurchaseDetails.js\": [\n\t\t548,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t244\n\t],\n\t\"./FundCentre/modules/snapshot/TotalReturnPerformance\": [\n\t\t543,\n\t\t9,\n\t\t16,\n\t\t417\n\t],\n\t\"./FundCentre/modules/snapshot/TotalReturnPerformance.js\": [\n\t\t543,\n\t\t9,\n\t\t16,\n\t\t417\n\t],\n\t\"./FundCentre/modules/snapshot/TotalReturnPerformance.scss\": [\n\t\t1265,\n\t\t7,\n\t\t518\n\t],\n\t\"./MarketsCentre/MarketMovers\": [\n\t\t636,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t318,\n\t\t92\n\t],\n\t\"./MarketsCentre/MarketMovers.js\": [\n\t\t636,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t318,\n\t\t92\n\t],\n\t\"./MarketsCentre/MarketTechnicalAnalysis\": [\n\t\t637,\n\t\t9,\n\t\t0,\n\t\t104\n\t],\n\t\"./MarketsCentre/MarketTechnicalAnalysis.js\": [\n\t\t637,\n\t\t9,\n\t\t0,\n\t\t104\n\t],\n\t\"./MarketsCentre/Markets.scss\": [\n\t\t1268,\n\t\t7,\n\t\t519\n\t],\n\t\"./MarketsCentre/MarketsGlance\": [\n\t\t638,\n\t\t9,\n\t\t0,\n\t\t309,\n\t\t5,\n\t\t252\n\t],\n\t\"./MarketsCentre/MarketsGlance.js\": [\n\t\t638,\n\t\t9,\n\t\t0,\n\t\t309,\n\t\t5,\n\t\t252\n\t],\n\t\"./MarketsCentre/MarketsNews\": [\n\t\t639,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t327,\n\t\t5,\n\t\t274\n\t],\n\t\"./MarketsCentre/MarketsNews.js\": [\n\t\t639,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t327,\n\t\t5,\n\t\t274\n\t],\n\t\"./MarketsCentre/MarketsNews.scss\": [\n\t\t1269,\n\t\t7,\n\t\t520\n\t],\n\t\"./MarketsCentre/MarketsOverview\": [\n\t\t640,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t292,\n\t\t5,\n\t\t112\n\t],\n\t\"./MarketsCentre/MarketsOverview.js\": [\n\t\t640,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t292,\n\t\t5,\n\t\t112\n\t],\n\t\"./MarketsCentre/Modules/MarketMovers/MarketMoversModule\": [\n\t\t549,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t23,\n\t\t302\n\t],\n\t\"./MarketsCentre/Modules/MarketMovers/MarketMoversModule.js\": [\n\t\t549,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t23,\n\t\t302\n\t],\n\t\"./MarketsCentre/Modules/MarketMovers/MarketMoversModule.scss\": [\n\t\t1230,\n\t\t7,\n\t\t521\n\t],\n\t\"./MarketsCentre/Modules/MarketMovers/MarketMoversTable\": [\n\t\t483,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t23,\n\t\t377\n\t],\n\t\"./MarketsCentre/Modules/MarketMovers/MarketMoversTable.js\": [\n\t\t483,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t23,\n\t\t377\n\t],\n\t\"./MarketsCentre/Modules/MarketsAtAGlance/CommoditiesInDollars\": [\n\t\t579,\n\t\t9,\n\t\t297\n\t],\n\t\"./MarketsCentre/Modules/MarketsAtAGlance/CommoditiesInDollars.js\": [\n\t\t579,\n\t\t9,\n\t\t297\n\t],\n\t\"./MarketsCentre/Modules/MarketsAtAGlance/KeyRates\": [\n\t\t551,\n\t\t9,\n\t\t358\n\t],\n\t\"./MarketsCentre/Modules/MarketsAtAGlance/KeyRates.js\": [\n\t\t551,\n\t\t9,\n\t\t358\n\t],\n\t\"./MarketsCentre/Modules/MarketsAtAGlance/KeyRates.scss\": [\n\t\t1232,\n\t\t7,\n\t\t522\n\t],\n\t\"./MarketsCentre/Modules/MarketsAtAGlance/NorthAmericanMarkets\": [\n\t\t550,\n\t\t9,\n\t\t286\n\t],\n\t\"./MarketsCentre/Modules/MarketsAtAGlance/NorthAmericanMarkets.js\": [\n\t\t550,\n\t\t9,\n\t\t286\n\t],\n\t\"./MarketsCentre/Modules/MarketsAtAGlance/NorthAmericanMarkets.scss\": [\n\t\t1231,\n\t\t7,\n\t\t523\n\t],\n\t\"./MarketsCentre/Modules/MarketsInsights/InsightsAccountOverview\": [\n\t\t670,\n\t\t9,\n\t\t209\n\t],\n\t\"./MarketsCentre/Modules/MarketsInsights/InsightsAccountOverview.js\": [\n\t\t670,\n\t\t9,\n\t\t209\n\t],\n\t\"./MarketsCentre/Modules/MarketsInsights/InsightsAccountOverview.scss\": [\n\t\t1270,\n\t\t7,\n\t\t524\n\t],\n\t\"./MarketsCentre/Modules/MarketsNews/MarketsNewsHeadlines\": [\n\t\t671,\n\t\t9,\n\t\t315\n\t],\n\t\"./MarketsCentre/Modules/MarketsNews/MarketsNewsHeadlines.js\": [\n\t\t671,\n\t\t9,\n\t\t315\n\t],\n\t\"./MarketsCentre/Modules/MarketsNews/MarketsNewsHeadlines.scss\": [\n\t\t1271,\n\t\t7,\n\t\t525\n\t],\n\t\"./MarketsCentre/Modules/MarketsOverviewBanner/MarketsOverviewBanner\": [\n\t\t669,\n\t\t9,\n\t\t333\n\t],\n\t\"./MarketsCentre/Modules/MarketsOverviewBanner/MarketsOverviewBanner.js\": [\n\t\t669,\n\t\t9,\n\t\t333\n\t],\n\t\"./MarketsCentre/Modules/MarketsOverviewBanner/MarketsOverviewBanner.scss\": [\n\t\t1272,\n\t\t7,\n\t\t526\n\t],\n\t\"./MarketsCentre/Modules/Overview/Insights\": [\n\t\t554,\n\t\t9,\n\t\t192\n\t],\n\t\"./MarketsCentre/Modules/Overview/Insights.js\": [\n\t\t554,\n\t\t9,\n\t\t192\n\t],\n\t\"./MarketsCentre/Modules/Overview/Insights.scss\": [\n\t\t1235,\n\t\t7,\n\t\t527\n\t],\n\t\"./MarketsCentre/Modules/Overview/MarketMovers\": [\n\t\t553,\n\t\t9,\n\t\t325\n\t],\n\t\"./MarketsCentre/Modules/Overview/MarketMovers.js\": [\n\t\t553,\n\t\t9,\n\t\t325\n\t],\n\t\"./MarketsCentre/Modules/Overview/MarketMovers.scss\": [\n\t\t1234,\n\t\t7,\n\t\t528\n\t],\n\t\"./MarketsCentre/Modules/Overview/MarketsOverview\": [\n\t\t552,\n\t\t9,\n\t\t287\n\t],\n\t\"./MarketsCentre/Modules/Overview/MarketsOverview.js\": [\n\t\t552,\n\t\t9,\n\t\t287\n\t],\n\t\"./MarketsCentre/Modules/Overview/MarketsOverview.scss\": [\n\t\t1233,\n\t\t7,\n\t\t529\n\t],\n\t\"./Quotelists/CreateEditWatchlist\": [\n\t\t641,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t313,\n\t\t106\n\t],\n\t\"./Quotelists/CreateEditWatchlist.js\": [\n\t\t641,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t313,\n\t\t106\n\t],\n\t\"./Quotelists/CreateEditWatchlist.scss\": [\n\t\t1273,\n\t\t7,\n\t\t530\n\t],\n\t\"./Quotelists/Modules/CreateEditTable\": [\n\t\t556,\n\t\t9,\n\t\t0,\n\t\t174\n\t],\n\t\"./Quotelists/Modules/CreateEditTable.js\": [\n\t\t556,\n\t\t9,\n\t\t0,\n\t\t174\n\t],\n\t\"./Quotelists/Modules/EditPurchaseDetails\": [\n\t\t412,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t140\n\t],\n\t\"./Quotelists/Modules/EditPurchaseDetails.js\": [\n\t\t412,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t140\n\t],\n\t\"./Quotelists/Modules/Quotelist/MutualFunds\": [\n\t\t557,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t7,\n\t\t93\n\t],\n\t\"./Quotelists/Modules/Quotelist/MutualFunds.js\": [\n\t\t557,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t7,\n\t\t93\n\t],\n\t\"./Quotelists/Modules/Quotelist/MutualFunds.scss\": [\n\t\t1236,\n\t\t7,\n\t\t531\n\t],\n\t\"./Quotelists/Modules/Quotelist/MutualFundsTableBuilders\": [\n\t\t642,\n\t\t7,\n\t\t403\n\t],\n\t\"./Quotelists/Modules/Quotelist/MutualFundsTableBuilders.js\": [\n\t\t642,\n\t\t7,\n\t\t403\n\t],\n\t\"./Quotelists/Modules/Quotelist/Options\": [\n\t\t558,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t7,\n\t\t80\n\t],\n\t\"./Quotelists/Modules/Quotelist/Options.js\": [\n\t\t558,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t7,\n\t\t80\n\t],\n\t\"./Quotelists/Modules/Quotelist/Options.scss\": [\n\t\t1237,\n\t\t7,\n\t\t532\n\t],\n\t\"./Quotelists/Modules/Quotelist/OptionsTableRow\": [\n\t\t449,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t13,\n\t\t291\n\t],\n\t\"./Quotelists/Modules/Quotelist/OptionsTableRow.js\": [\n\t\t449,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t13,\n\t\t291\n\t],\n\t\"./Quotelists/Modules/Quotelist/QuoteListButtons.scss\": [\n\t\t1153,\n\t\t7,\n\t\t533\n\t],\n\t\"./Quotelists/Modules/Quotelist/QuotelistButtons\": [\n\t\t387,\n\t\t9,\n\t\t0,\n\t\t7,\n\t\t15,\n\t\t352\n\t],\n\t\"./Quotelists/Modules/Quotelist/QuotelistButtons.js\": [\n\t\t387,\n\t\t9,\n\t\t0,\n\t\t7,\n\t\t15,\n\t\t352\n\t],\n\t\"./Quotelists/Modules/Quotelist/StocksETFsIndices\": [\n\t\t559,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t7,\n\t\t97\n\t],\n\t\"./Quotelists/Modules/Quotelist/StocksETFsIndices.js\": [\n\t\t559,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t7,\n\t\t97\n\t],\n\t\"./Quotelists/Modules/Quotelist/StocksETFsIndicesTableBuilders\": [\n\t\t643,\n\t\t9,\n\t\t241\n\t],\n\t\"./Quotelists/Modules/Quotelist/StocksETFsIndicesTableBuilders.js\": [\n\t\t643,\n\t\t9,\n\t\t241\n\t],\n\t\"./Quotelists/Modules/SelectWatchlist\": [\n\t\t560,\n\t\t9,\n\t\t233\n\t],\n\t\"./Quotelists/Modules/SelectWatchlist.js\": [\n\t\t560,\n\t\t9,\n\t\t233\n\t],\n\t\"./Quotelists/Modules/SelectWatchlist.scss\": [\n\t\t1147,\n\t\t7,\n\t\t534\n\t],\n\t\"./Quotelists/Modules/Watchlist/Estimates\": [\n\t\t561,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t126\n\t],\n\t\"./Quotelists/Modules/Watchlist/Estimates.js\": [\n\t\t561,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t126\n\t],\n\t\"./Quotelists/Modules/Watchlist/EstimatesTableBuilders/etfsTableBuilder\": [\n\t\t451,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t182\n\t],\n\t\"./Quotelists/Modules/Watchlist/EstimatesTableBuilders/etfsTableBuilder.js\": [\n\t\t451,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t182\n\t],\n\t\"./Quotelists/Modules/Watchlist/EstimatesTableBuilders/mutualFundsTableBuilder\": [\n\t\t644,\n\t\t9,\n\t\t404\n\t],\n\t\"./Quotelists/Modules/Watchlist/EstimatesTableBuilders/mutualFundsTableBuilder.js\": [\n\t\t644,\n\t\t9,\n\t\t404\n\t],\n\t\"./Quotelists/Modules/Watchlist/EstimatesTableBuilders/optionsTableBuilder\": [\n\t\t645,\n\t\t9,\n\t\t405\n\t],\n\t\"./Quotelists/Modules/Watchlist/EstimatesTableBuilders/optionsTableBuilder.js\": [\n\t\t645,\n\t\t9,\n\t\t405\n\t],\n\t\"./Quotelists/Modules/Watchlist/EstimatesTableBuilders/stocksAndIndicesTableBuilder\": [\n\t\t450,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t183\n\t],\n\t\"./Quotelists/Modules/Watchlist/EstimatesTableBuilders/stocksAndIndicesTableBuilder.js\": [\n\t\t450,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t183\n\t],\n\t\"./Quotelists/Modules/Watchlist/Fundamentals\": [\n\t\t562,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t123\n\t],\n\t\"./Quotelists/Modules/Watchlist/Fundamentals.js\": [\n\t\t562,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t123\n\t],\n\t\"./Quotelists/Modules/Watchlist/Fundamentals.scss\": [\n\t\t1162,\n\t\t7,\n\t\t535\n\t],\n\t\"./Quotelists/Modules/Watchlist/FundamentalsTableBuilders/etfsTableBuilder\": [\n\t\t455,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t184\n\t],\n\t\"./Quotelists/Modules/Watchlist/FundamentalsTableBuilders/etfsTableBuilder.js\": [\n\t\t455,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t184\n\t],\n\t\"./Quotelists/Modules/Watchlist/FundamentalsTableBuilders/mutualFundsTableBuilder\": [\n\t\t454,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t200\n\t],\n\t\"./Quotelists/Modules/Watchlist/FundamentalsTableBuilders/mutualFundsTableBuilder.js\": [\n\t\t454,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t200\n\t],\n\t\"./Quotelists/Modules/Watchlist/FundamentalsTableBuilders/optionsTableBuilder\": [\n\t\t452,\n\t\t9,\n\t\t406\n\t],\n\t\"./Quotelists/Modules/Watchlist/FundamentalsTableBuilders/optionsTableBuilder.js\": [\n\t\t452,\n\t\t9,\n\t\t406\n\t],\n\t\"./Quotelists/Modules/Watchlist/FundamentalsTableBuilders/stocksAndIndicesTableBuilder\": [\n\t\t453,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t185\n\t],\n\t\"./Quotelists/Modules/Watchlist/FundamentalsTableBuilders/stocksAndIndicesTableBuilder.js\": [\n\t\t453,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t185\n\t],\n\t\"./Quotelists/Modules/Watchlist/Performance\": [\n\t\t563,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t125\n\t],\n\t\"./Quotelists/Modules/Watchlist/Performance.js\": [\n\t\t563,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t125\n\t],\n\t\"./Quotelists/Modules/Watchlist/Performance.scss\": [\n\t\t1238,\n\t\t7,\n\t\t536\n\t],\n\t\"./Quotelists/Modules/Watchlist/PerformanceTableBuilders/mutualFundsTableBuilder\": [\n\t\t458,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t201\n\t],\n\t\"./Quotelists/Modules/Watchlist/PerformanceTableBuilders/mutualFundsTableBuilder.js\": [\n\t\t458,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t201\n\t],\n\t\"./Quotelists/Modules/Watchlist/PerformanceTableBuilders/optionsTableBuilder\": [\n\t\t456,\n\t\t9,\n\t\t407\n\t],\n\t\"./Quotelists/Modules/Watchlist/PerformanceTableBuilders/optionsTableBuilder.js\": [\n\t\t456,\n\t\t9,\n\t\t407\n\t],\n\t\"./Quotelists/Modules/Watchlist/PerformanceTableBuilders/stocksAndIndicesAndEtfsTableBuilder\": [\n\t\t457,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t186\n\t],\n\t\"./Quotelists/Modules/Watchlist/PerformanceTableBuilders/stocksAndIndicesAndEtfsTableBuilder.js\": [\n\t\t457,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t186\n\t],\n\t\"./Quotelists/Modules/Watchlist/Portfolio\": [\n\t\t583,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t83\n\t],\n\t\"./Quotelists/Modules/Watchlist/Portfolio.js\": [\n\t\t583,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t83\n\t],\n\t\"./Quotelists/Modules/Watchlist/Portfolio.scss\": [\n\t\t1239,\n\t\t7,\n\t\t537\n\t],\n\t\"./Quotelists/Modules/Watchlist/PortfolioTableBuilders/PortfolioRow\": [\n\t\t460,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t118\n\t],\n\t\"./Quotelists/Modules/Watchlist/PortfolioTableBuilders/PortfolioRow.js\": [\n\t\t460,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t118\n\t],\n\t\"./Quotelists/Modules/Watchlist/PortfolioTableBuilders/portfolioTableHelper\": [\n\t\t459,\n\t\t9,\n\t\t386\n\t],\n\t\"./Quotelists/Modules/Watchlist/PortfolioTableBuilders/portfolioTableHelper.js\": [\n\t\t459,\n\t\t9,\n\t\t386\n\t],\n\t\"./Quotelists/Modules/Watchlist/QuoteDetail\": [\n\t\t564,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t24,\n\t\t293\n\t],\n\t\"./Quotelists/Modules/Watchlist/QuoteDetail.js\": [\n\t\t564,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t24,\n\t\t293\n\t],\n\t\"./Quotelists/Modules/Watchlist/QuoteDetail.scss\": [\n\t\t1240,\n\t\t7,\n\t\t538\n\t],\n\t\"./Quotelists/Modules/Watchlist/QuoteDetailsTableBuilders/etfsTableBuilder\": [\n\t\t484,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t24,\n\t\t381\n\t],\n\t\"./Quotelists/Modules/Watchlist/QuoteDetailsTableBuilders/etfsTableBuilder.js\": [\n\t\t484,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t24,\n\t\t381\n\t],\n\t\"./Quotelists/Modules/Watchlist/QuoteDetailsTableBuilders/mutualFundsTableBuilder\": [\n\t\t463,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t202\n\t],\n\t\"./Quotelists/Modules/Watchlist/QuoteDetailsTableBuilders/mutualFundsTableBuilder.js\": [\n\t\t463,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t202\n\t],\n\t\"./Quotelists/Modules/Watchlist/QuoteDetailsTableBuilders/optionsTableBuilder\": [\n\t\t461,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t203\n\t],\n\t\"./Quotelists/Modules/Watchlist/QuoteDetailsTableBuilders/optionsTableBuilder.js\": [\n\t\t461,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t203\n\t],\n\t\"./Quotelists/Modules/Watchlist/QuoteDetailsTableBuilders/stocksAndIndicesTableBuilder\": [\n\t\t462,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t187\n\t],\n\t\"./Quotelists/Modules/Watchlist/QuoteDetailsTableBuilders/stocksAndIndicesTableBuilder.js\": [\n\t\t462,\n\t\t9,\n\t\t1,\n\t\t3,\n\t\t187\n\t],\n\t\"./Quotelists/Quotelist\": [\n\t\t646,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t7,\n\t\t71\n\t],\n\t\"./Quotelists/Quotelist.js\": [\n\t\t646,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t7,\n\t\t71\n\t],\n\t\"./Quotelists/Quotelist.scss\": [\n\t\t1274,\n\t\t7,\n\t\t539\n\t],\n\t\"./Quotelists/Watchlist\": [\n\t\t647,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t70\n\t],\n\t\"./Quotelists/Watchlist.js\": [\n\t\t647,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t70\n\t],\n\t\"./Quotelists/Watchlist.scss\": [\n\t\t1275,\n\t\t7,\n\t\t540\n\t],\n\t\"./SessionEnded/SessionEnded\": [\n\t\t596,\n\t\t9,\n\t\t36\n\t],\n\t\"./SessionEnded/SessionEnded.js\": [\n\t\t596,\n\t\t9,\n\t\t36\n\t],\n\t\"./SessionEnded/SessionEnded.scss\": [\n\t\t1247,\n\t\t7,\n\t\t541\n\t],\n\t\"./Shared/AddToWatchlist/AddToWatchlist\": [\n\t\t357,\n\t\t9,\n\t\t0,\n\t\t7,\n\t\t15,\n\t\t380\n\t],\n\t\"./Shared/AddToWatchlist/AddToWatchlist.js\": [\n\t\t357,\n\t\t9,\n\t\t0,\n\t\t7,\n\t\t15,\n\t\t380\n\t],\n\t\"./Shared/AddToWatchlist/AddToWatchlist.scss\": [\n\t\t1126,\n\t\t7,\n\t\t542\n\t],\n\t\"./Shared/AddToWatchlist/AddToWatchlistLink\": [\n\t\t393,\n\t\t9,\n\t\t0,\n\t\t7,\n\t\t15,\n\t\t376\n\t],\n\t\"./Shared/AddToWatchlist/AddToWatchlistLink.js\": [\n\t\t393,\n\t\t9,\n\t\t0,\n\t\t7,\n\t\t15,\n\t\t376\n\t],\n\t\"./Shared/AddToWatchlist/AddToWatchlistTable\": [\n\t\t358,\n\t\t9,\n\t\t173\n\t],\n\t\"./Shared/AddToWatchlist/AddToWatchlistTable.js\": [\n\t\t358,\n\t\t9,\n\t\t173\n\t],\n\t\"./Shared/ChartWorksChart/ChartWorksChart\": [\n\t\t405,\n\t\t9,\n\t\t335\n\t],\n\t\"./Shared/ChartWorksChart/ChartWorksChart.js\": [\n\t\t405,\n\t\t9,\n\t\t335\n\t],\n\t\"./Shared/ChartWorksChart/ChartWorksChart.scss\": [\n\t\t1156,\n\t\t7,\n\t\t543\n\t],\n\t\"./Shared/ComingSoon/ComingSoon\": [\n\t\t648,\n\t\t9,\n\t\t0,\n\t\t102\n\t],\n\t\"./Shared/ComingSoon/ComingSoon.js\": [\n\t\t648,\n\t\t9,\n\t\t0,\n\t\t102\n\t],\n\t\"./Shared/ComingSoon/ComingSoon.scss\": [\n\t\t1276,\n\t\t7,\n\t\t544\n\t],\n\t\"./Shared/CompareConfirmationModal/CompareConfimationModal\": [\n\t\t439,\n\t\t9,\n\t\t0,\n\t\t214\n\t],\n\t\"./Shared/CompareConfirmationModal/CompareConfimationModal.js\": [\n\t\t439,\n\t\t9,\n\t\t0,\n\t\t214\n\t],\n\t\"./Shared/CompareConfirmationModal/CompareConfirmationModal.scss\": [\n\t\t1177,\n\t\t7,\n\t\t545\n\t],\n\t\"./Shared/ConfirmationModal/ConfirmationModal\": [\n\t\t555,\n\t\t9,\n\t\t0,\n\t\t247\n\t],\n\t\"./Shared/ConfirmationModal/ConfirmationModal.js\": [\n\t\t555,\n\t\t9,\n\t\t0,\n\t\t247\n\t],\n\t\"./Shared/CurrencyConversion/CurrencyConversion\": [\n\t\t479,\n\t\t9,\n\t\t148\n\t],\n\t\"./Shared/CurrencyConversion/CurrencyConversion.js\": [\n\t\t479,\n\t\t9,\n\t\t148\n\t],\n\t\"./Shared/CurrencyConversion/CurrencyConversion.scss\": [\n\t\t1181,\n\t\t7,\n\t\t546\n\t],\n\t\"./Shared/ErrorBoundary/ErrorBoundary\": [\n\t\t144,\n\t\t9\n\t],\n\t\"./Shared/ErrorBoundary/ErrorBoundary.js\": [\n\t\t144,\n\t\t9\n\t],\n\t\"./Shared/ErrorBoundary/ErrorBoundary.scss\": [\n\t\t274,\n\t\t7\n\t],\n\t\"./Shared/LinkPdf/LinkPdf\": [\n\t\t371,\n\t\t9,\n\t\t267\n\t],\n\t\"./Shared/LinkPdf/LinkPdf.js\": [\n\t\t371,\n\t\t9,\n\t\t267\n\t],\n\t\"./Shared/MyWatchLists/MyWatchLists\": [\n\t\t364,\n\t\t9,\n\t\t5,\n\t\t347\n\t],\n\t\"./Shared/MyWatchLists/MyWatchLists.js\": [\n\t\t364,\n\t\t9,\n\t\t5,\n\t\t347\n\t],\n\t\"./Shared/MyWatchLists/MyWatchLists.scss\": [\n\t\t1136,\n\t\t7,\n\t\t547\n\t],\n\t\"./Shared/Navigation/LinkedLabel\": [\n\t\t310,\n\t\t9,\n\t\t408\n\t],\n\t\"./Shared/Navigation/LinkedLabel.js\": [\n\t\t310,\n\t\t9,\n\t\t408\n\t],\n\t\"./Shared/Navigation/Navigation\": [\n\t\t311,\n\t\t9,\n\t\t346\n\t],\n\t\"./Shared/Navigation/Navigation.js\": [\n\t\t311,\n\t\t9,\n\t\t346\n\t],\n\t\"./Shared/Navigation/Navigation.scss\": [\n\t\t1116,\n\t\t7,\n\t\t548\n\t],\n\t\"./Shared/Navigation/SymbolTab\": [\n\t\t649,\n\t\t9,\n\t\t365\n\t],\n\t\"./Shared/Navigation/SymbolTab.js\": [\n\t\t649,\n\t\t9,\n\t\t365\n\t],\n\t\"./Shared/News/BuzzNews\": [\n\t\t416,\n\t\t9,\n\t\t409\n\t],\n\t\"./Shared/News/BuzzNews.js\": [\n\t\t416,\n\t\t9,\n\t\t409\n\t],\n\t\"./Shared/News/MarketNews.scss\": [\n\t\t1182,\n\t\t7,\n\t\t549\n\t],\n\t\"./Shared/News/MarketsNews\": [\n\t\t448,\n\t\t9,\n\t\t2,\n\t\t116\n\t],\n\t\"./Shared/News/MarketsNews.js\": [\n\t\t448,\n\t\t9,\n\t\t2,\n\t\t116\n\t],\n\t\"./Shared/News/RecentNews\": [\n\t\t385,\n\t\t9,\n\t\t2,\n\t\t12,\n\t\t188\n\t],\n\t\"./Shared/News/RecentNews.js\": [\n\t\t385,\n\t\t9,\n\t\t2,\n\t\t12,\n\t\t188\n\t],\n\t\"./Shared/News/RecentNews.scss\": [\n\t\t1176,\n\t\t7,\n\t\t550\n\t],\n\t\"./Shared/OptionChain/OptionChain\": [\n\t\t382,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t13,\n\t\t275\n\t],\n\t\"./Shared/OptionChain/OptionChain.js\": [\n\t\t382,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t13,\n\t\t275\n\t],\n\t\"./Shared/OptionChain/OptionChain.scss\": [\n\t\t1140,\n\t\t7,\n\t\t551\n\t],\n\t\"./Shared/OptionChain/OptionChainRow\": [\n\t\t376,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t13,\n\t\t307\n\t],\n\t\"./Shared/OptionChain/OptionChainRow.js\": [\n\t\t376,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t13,\n\t\t307\n\t],\n\t\"./Shared/OptionChain/OptionChainTable\": [\n\t\t378,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t13,\n\t\t294\n\t],\n\t\"./Shared/OptionChain/OptionChainTable.js\": [\n\t\t378,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t13,\n\t\t294\n\t],\n\t\"./Shared/OptionChain/OptionSymbolCell\": [\n\t\t373,\n\t\t9,\n\t\t410\n\t],\n\t\"./Shared/OptionChain/OptionSymbolCell.js\": [\n\t\t373,\n\t\t9,\n\t\t410\n\t],\n\t\"./Shared/OptionChain/OrderDetails\": [\n\t\t374,\n\t\t9,\n\t\t0,\n\t\t13,\n\t\t357\n\t],\n\t\"./Shared/OptionChain/OrderDetails.js\": [\n\t\t374,\n\t\t9,\n\t\t0,\n\t\t13,\n\t\t357\n\t],\n\t\"./Shared/OptionChain/SymbolOptionChain\": [\n\t\t407,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t14,\n\t\t113\n\t],\n\t\"./Shared/OptionChain/SymbolOptionChain.js\": [\n\t\t407,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t14,\n\t\t113\n\t],\n\t\"./Shared/PageNotFound/PageNotFound\": [\n\t\t650,\n\t\t9,\n\t\t0,\n\t\t111\n\t],\n\t\"./Shared/PageNotFound/PageNotFound.js\": [\n\t\t650,\n\t\t9,\n\t\t0,\n\t\t111\n\t],\n\t\"./Shared/PageWrapper/PageWrapper\": [\n\t\t312,\n\t\t9,\n\t\t0,\n\t\t114\n\t],\n\t\"./Shared/PageWrapper/PageWrapper.js\": [\n\t\t312,\n\t\t9,\n\t\t0,\n\t\t114\n\t],\n\t\"./Shared/PageWrapper/PageWrapper.scss\": [\n\t\t1117,\n\t\t7,\n\t\t552\n\t],\n\t\"./Shared/PdfDownload/PdfDownload\": [\n\t\t651,\n\t\t9,\n\t\t191\n\t],\n\t\"./Shared/PdfDownload/PdfDownload.js\": [\n\t\t651,\n\t\t9,\n\t\t191\n\t],\n\t\"./Shared/PdfDownload/PdfDownload.scss\": [\n\t\t1277,\n\t\t7,\n\t\t553\n\t],\n\t\"./Shared/PopupChart/PopupChart\": [\n\t\t309,\n\t\t9,\n\t\t411\n\t],\n\t\"./Shared/PopupChart/PopupChart.js\": [\n\t\t309,\n\t\t9,\n\t\t411\n\t],\n\t\"./Shared/PopupChart/PopupChart.scss\": [\n\t\t1283,\n\t\t7,\n\t\t554\n\t],\n\t\"./Shared/QuoteBar/MorningstarDrawer\": [\n\t\t392,\n\t\t9,\n\t\t0,\n\t\t219\n\t],\n\t\"./Shared/QuoteBar/MorningstarDrawer.js\": [\n\t\t392,\n\t\t9,\n\t\t0,\n\t\t219\n\t],\n\t\"./Shared/QuoteBar/QuoteBar\": [\n\t\t406,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t4,\n\t\t7,\n\t\t85\n\t],\n\t\"./Shared/QuoteBar/QuoteBar.js\": [\n\t\t406,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t4,\n\t\t7,\n\t\t85\n\t],\n\t\"./Shared/QuoteBar/QuoteBar.scss\": [\n\t\t1159,\n\t\t7,\n\t\t555\n\t],\n\t\"./Shared/QuoteBar/TodaysRange\": [\n\t\t395,\n\t\t9,\n\t\t0,\n\t\t254\n\t],\n\t\"./Shared/QuoteBar/TodaysRange.js\": [\n\t\t395,\n\t\t9,\n\t\t0,\n\t\t254\n\t],\n\t\"./Shared/QuoteDetails/QuoteDetails\": [\n\t\t447,\n\t\t9,\n\t\t303\n\t],\n\t\"./Shared/QuoteDetails/QuoteDetails.js\": [\n\t\t447,\n\t\t9,\n\t\t303\n\t],\n\t\"./Shared/QuoteDetails/QuoteDetails.scss\": [\n\t\t1180,\n\t\t7,\n\t\t556\n\t],\n\t\"./Shared/Screener/SaveScreenButton\": [\n\t\t366,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t141\n\t],\n\t\"./Shared/Screener/SaveScreenButton.js\": [\n\t\t366,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t141\n\t],\n\t\"./Shared/Screener/SaveScreenButton.scss\": [\n\t\t1128,\n\t\t7,\n\t\t557\n\t],\n\t\"./Shared/Screener/SavedScreens.scss\": [\n\t\t1130,\n\t\t7,\n\t\t558\n\t],\n\t\"./Shared/Screener/ScreenResultsMenu\": [\n\t\t370,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t7,\n\t\t115\n\t],\n\t\"./Shared/Screener/ScreenResultsMenu.js\": [\n\t\t370,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t7,\n\t\t115\n\t],\n\t\"./Shared/Screener/ScreenResultsMenu.scss\": [\n\t\t1131,\n\t\t7,\n\t\t559\n\t],\n\t\"./Shared/Screener/ScreenerCriteria\": [\n\t\t652,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t64\n\t],\n\t\"./Shared/Screener/ScreenerCriteria.js\": [\n\t\t652,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t64\n\t],\n\t\"./Shared/Screener/ScreenerResultsTable\": [\n\t\t367,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t54\n\t],\n\t\"./Shared/Screener/ScreenerResultsTable.js\": [\n\t\t367,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t54\n\t],\n\t\"./Shared/Screener/ScreenerResultsTable.scss\": [\n\t\t1133,\n\t\t7,\n\t\t560\n\t],\n\t\"./Shared/Screener/ScreenerViewOptions\": [\n\t\t369,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t8,\n\t\t9,\n\t\t87\n\t],\n\t\"./Shared/Screener/ScreenerViewOptions.js\": [\n\t\t369,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t8,\n\t\t9,\n\t\t87\n\t],\n\t\"./Shared/Screener/criteria/CriteriaComponentMap\": [\n\t\t308,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t8,\n\t\t9,\n\t\t101\n\t],\n\t\"./Shared/Screener/criteria/CriteriaComponentMap.js\": [\n\t\t308,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t8,\n\t\t9,\n\t\t101\n\t],\n\t\"./Shared/Screener/criteria/CriteriaRow\": [\n\t\t365,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t66\n\t],\n\t\"./Shared/Screener/criteria/CriteriaRow.js\": [\n\t\t365,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t66\n\t],\n\t\"./Shared/Screener/criteria/CriteriaRow.scss\": [\n\t\t1132,\n\t\t7,\n\t\t561\n\t],\n\t\"./Shared/Screener/criteria/FundStructureRow\": [\n\t\t320,\n\t\t9,\n\t\t251\n\t],\n\t\"./Shared/Screener/criteria/FundStructureRow.js\": [\n\t\t320,\n\t\t9,\n\t\t251\n\t],\n\t\"./Shared/Screener/criteria/FundamentalsRange\": [\n\t\t347,\n\t\t9,\n\t\t2,\n\t\t223\n\t],\n\t\"./Shared/Screener/criteria/FundamentalsRange.js\": [\n\t\t347,\n\t\t9,\n\t\t2,\n\t\t223\n\t],\n\t\"./Shared/Screener/criteria/LFAssetType\": [\n\t\t352,\n\t\t9,\n\t\t166\n\t],\n\t\"./Shared/Screener/criteria/LFAssetType.js\": [\n\t\t352,\n\t\t9,\n\t\t166\n\t],\n\t\"./Shared/Screener/criteria/LFFundPromotor\": [\n\t\t353,\n\t\t9,\n\t\t157\n\t],\n\t\"./Shared/Screener/criteria/LFFundPromotor.js\": [\n\t\t353,\n\t\t9,\n\t\t157\n\t],\n\t\"./Shared/Screener/criteria/LFLipperClassification\": [\n\t\t354,\n\t\t9,\n\t\t158\n\t],\n\t\"./Shared/Screener/criteria/LFLipperClassification.js\": [\n\t\t354,\n\t\t9,\n\t\t158\n\t],\n\t\"./Shared/Screener/criteria/LFTotalReturns1m\": [\n\t\t355,\n\t\t9,\n\t\t198\n\t],\n\t\"./Shared/Screener/criteria/LFTotalReturns1m.js\": [\n\t\t355,\n\t\t9,\n\t\t198\n\t],\n\t\"./Shared/Screener/criteria/LipperLeaderScreenerRow\": [\n\t\t356,\n\t\t9,\n\t\t167\n\t],\n\t\"./Shared/Screener/criteria/LipperLeaderScreenerRow.js\": [\n\t\t356,\n\t\t9,\n\t\t167\n\t],\n\t\"./Shared/Screener/criteria/LipperLeaderScreenerRow.scss\": [\n\t\t1125,\n\t\t7,\n\t\t562\n\t],\n\t\"./Shared/Screener/criteria/MSDAverageCreditQualityLong\": [\n\t\t333,\n\t\t9,\n\t\t328\n\t],\n\t\"./Shared/Screener/criteria/MSDAverageCreditQualityLong.js\": [\n\t\t333,\n\t\t9,\n\t\t328\n\t],\n\t\"./Shared/Screener/criteria/MSDAvg10DayVolume\": [\n\t\t322,\n\t\t9,\n\t\t2,\n\t\t224\n\t],\n\t\"./Shared/Screener/criteria/MSDAvg10DayVolume.js\": [\n\t\t322,\n\t\t9,\n\t\t2,\n\t\t224\n\t],\n\t\"./Shared/Screener/criteria/MSDCIBCETFType\": [\n\t\t318,\n\t\t9,\n\t\t189\n\t],\n\t\"./Shared/Screener/criteria/MSDCIBCETFType.js\": [\n\t\t318,\n\t\t9,\n\t\t189\n\t],\n\t\"./Shared/Screener/criteria/MSDCIBCSlowStochasticK3vsD3\": [\n\t\t338,\n\t\t9,\n\t\t225\n\t],\n\t\"./Shared/Screener/criteria/MSDCIBCSlowStochasticK3vsD3.js\": [\n\t\t338,\n\t\t9,\n\t\t225\n\t],\n\t\"./Shared/Screener/criteria/MSDCIBCSlowStochasticK3vsD3.scss\": [\n\t\t1122,\n\t\t7,\n\t\t563\n\t],\n\t\"./Shared/Screener/criteria/MSDDividendDistributionFrequency\": [\n\t\t323,\n\t\t9,\n\t\t248\n\t],\n\t\"./Shared/Screener/criteria/MSDDividendDistributionFrequency.js\": [\n\t\t323,\n\t\t9,\n\t\t248\n\t],\n\t\"./Shared/Screener/criteria/MSDDividendYieldPtile\": [\n\t\t653,\n\t\t9,\n\t\t2,\n\t\t143\n\t],\n\t\"./Shared/Screener/criteria/MSDDividendYieldPtile.js\": [\n\t\t653,\n\t\t9,\n\t\t2,\n\t\t143\n\t],\n\t\"./Shared/Screener/criteria/MSDDomicileCountry\": [\n\t\t319,\n\t\t9,\n\t\t242\n\t],\n\t\"./Shared/Screener/criteria/MSDDomicileCountry.js\": [\n\t\t319,\n\t\t9,\n\t\t242\n\t],\n\t\"./Shared/Screener/criteria/MSDEquityStyleBoxText\": [\n\t\t328,\n\t\t9,\n\t\t329\n\t],\n\t\"./Shared/Screener/criteria/MSDEquityStyleBoxText.js\": [\n\t\t328,\n\t\t9,\n\t\t329\n\t],\n\t\"./Shared/Screener/criteria/MSDFixedIncomeStyleBoxText\": [\n\t\t329,\n\t\t9,\n\t\t330\n\t],\n\t\"./Shared/Screener/criteria/MSDFixedIncomeStyleBoxText.js\": [\n\t\t329,\n\t\t9,\n\t\t330\n\t],\n\t\"./Shared/Screener/criteria/MSDFundFamilyName\": [\n\t\t324,\n\t\t9,\n\t\t163\n\t],\n\t\"./Shared/Screener/criteria/MSDFundFamilyName.js\": [\n\t\t324,\n\t\t9,\n\t\t163\n\t],\n\t\"./Shared/Screener/criteria/MSDFundShareClassNetAssets\": [\n\t\t330,\n\t\t9,\n\t\t132\n\t],\n\t\"./Shared/Screener/criteria/MSDFundShareClassNetAssets.js\": [\n\t\t330,\n\t\t9,\n\t\t132\n\t],\n\t\"./Shared/Screener/criteria/MSDFundShareClassNetAssets.scss\": [\n\t\t1120,\n\t\t7,\n\t\t564\n\t],\n\t\"./Shared/Screener/criteria/MSDInceptionDate\": [\n\t\t336,\n\t\t9,\n\t\t216\n\t],\n\t\"./Shared/Screener/criteria/MSDInceptionDate.js\": [\n\t\t336,\n\t\t9,\n\t\t216\n\t],\n\t\"./Shared/Screener/criteria/MSDLastClose\": [\n\t\t325,\n\t\t9,\n\t\t2,\n\t\t344\n\t],\n\t\"./Shared/Screener/criteria/MSDLastClose.js\": [\n\t\t325,\n\t\t9,\n\t\t2,\n\t\t344\n\t],\n\t\"./Shared/Screener/criteria/MSDMorningstarCategoryName\": [\n\t\t326,\n\t\t9,\n\t\t164\n\t],\n\t\"./Shared/Screener/criteria/MSDMorningstarCategoryName.js\": [\n\t\t326,\n\t\t9,\n\t\t164\n\t],\n\t\"./Shared/Screener/criteria/MSDNew52WeekHigh\": [\n\t\t327,\n\t\t9,\n\t\t221\n\t],\n\t\"./Shared/Screener/criteria/MSDNew52WeekHigh.js\": [\n\t\t327,\n\t\t9,\n\t\t221\n\t],\n\t\"./Shared/Screener/criteria/MSDNew52WeekLow\": [\n\t\t331,\n\t\t9,\n\t\t222\n\t],\n\t\"./Shared/Screener/criteria/MSDNew52WeekLow.js\": [\n\t\t331,\n\t\t9,\n\t\t222\n\t],\n\t\"./Shared/Screener/criteria/MSDTop10Holdings\": [\n\t\t334,\n\t\t9,\n\t\t0,\n\t\t8,\n\t\t378\n\t],\n\t\"./Shared/Screener/criteria/MSDTop10Holdings.js\": [\n\t\t334,\n\t\t9,\n\t\t0,\n\t\t8,\n\t\t378\n\t],\n\t\"./Shared/Screener/criteria/MorningstarStarGroupRow\": [\n\t\t321,\n\t\t9,\n\t\t168\n\t],\n\t\"./Shared/Screener/criteria/MorningstarStarGroupRow.js\": [\n\t\t321,\n\t\t9,\n\t\t168\n\t],\n\t\"./Shared/Screener/criteria/MorningstarStarGroupRow.scss\": [\n\t\t1119,\n\t\t7,\n\t\t565\n\t],\n\t\"./Shared/Screener/criteria/MovingAverageCrossOver\": [\n\t\t335,\n\t\t9,\n\t\t249\n\t],\n\t\"./Shared/Screener/criteria/MovingAverageCrossOver.js\": [\n\t\t335,\n\t\t9,\n\t\t249\n\t],\n\t\"./Shared/Screener/criteria/NetProfitMargin\": [\n\t\t349,\n\t\t9,\n\t\t2,\n\t\t226\n\t],\n\t\"./Shared/Screener/criteria/NetProfitMargin.js\": [\n\t\t349,\n\t\t9,\n\t\t2,\n\t\t226\n\t],\n\t\"./Shared/Screener/criteria/PtileReturnRow\": [\n\t\t359,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t127\n\t],\n\t\"./Shared/Screener/criteria/PtileReturnRow.js\": [\n\t\t359,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t127\n\t],\n\t\"./Shared/Screener/criteria/PtileReturnRow.scss\": [\n\t\t1115,\n\t\t7,\n\t\t566\n\t],\n\t\"./Shared/Screener/criteria/RUBeta5y\": [\n\t\t344,\n\t\t9,\n\t\t199\n\t],\n\t\"./Shared/Screener/criteria/RUBeta5y.js\": [\n\t\t344,\n\t\t9,\n\t\t199\n\t],\n\t\"./Shared/Screener/criteria/RUConsRecLabel\": [\n\t\t350,\n\t\t9,\n\t\t218\n\t],\n\t\"./Shared/Screener/criteria/RUConsRecLabel.js\": [\n\t\t350,\n\t\t9,\n\t\t218\n\t],\n\t\"./Shared/Screener/criteria/RUConsRecLabel.scss\": [\n\t\t1123,\n\t\t7,\n\t\t567\n\t],\n\t\"./Shared/Screener/criteria/RUExchangeCountry\": [\n\t\t339,\n\t\t9,\n\t\t243\n\t],\n\t\"./Shared/Screener/criteria/RUExchangeCountry.js\": [\n\t\t339,\n\t\t9,\n\t\t243\n\t],\n\t\"./Shared/Screener/criteria/RUMktCapUS\": [\n\t\t340,\n\t\t9,\n\t\t2,\n\t\t227\n\t],\n\t\"./Shared/Screener/criteria/RUMktCapUS.js\": [\n\t\t340,\n\t\t9,\n\t\t2,\n\t\t227\n\t],\n\t\"./Shared/Screener/criteria/RUPriceChange\": [\n\t\t342,\n\t\t9,\n\t\t2,\n\t\t228\n\t],\n\t\"./Shared/Screener/criteria/RUPriceChange.js\": [\n\t\t342,\n\t\t9,\n\t\t2,\n\t\t228\n\t],\n\t\"./Shared/Screener/criteria/RUPriceLast\": [\n\t\t341,\n\t\t9,\n\t\t2,\n\t\t229\n\t],\n\t\"./Shared/Screener/criteria/RUPriceLast.js\": [\n\t\t341,\n\t\t9,\n\t\t2,\n\t\t229\n\t],\n\t\"./Shared/Screener/criteria/RURevTTMUS\": [\n\t\t348,\n\t\t9,\n\t\t2,\n\t\t230\n\t],\n\t\"./Shared/Screener/criteria/RURevTTMUS.js\": [\n\t\t348,\n\t\t9,\n\t\t2,\n\t\t230\n\t],\n\t\"./Shared/Screener/criteria/RUTRBCIndustry\": [\n\t\t346,\n\t\t9,\n\t\t165\n\t],\n\t\"./Shared/Screener/criteria/RUTRBCIndustry.js\": [\n\t\t346,\n\t\t9,\n\t\t165\n\t],\n\t\"./Shared/Screener/criteria/RUTRBCSector\": [\n\t\t345,\n\t\t9,\n\t\t179\n\t],\n\t\"./Shared/Screener/criteria/RUTRBCSector.js\": [\n\t\t345,\n\t\t9,\n\t\t179\n\t],\n\t\"./Shared/Screener/criteria/RUVol10dAvg\": [\n\t\t343,\n\t\t9,\n\t\t2,\n\t\t231\n\t],\n\t\"./Shared/Screener/criteria/RUVol10dAvg.js\": [\n\t\t343,\n\t\t9,\n\t\t2,\n\t\t231\n\t],\n\t\"./Shared/Screener/criteria/RiskPtileRow\": [\n\t\t332,\n\t\t9,\n\t\t2,\n\t\t144\n\t],\n\t\"./Shared/Screener/criteria/RiskPtileRow.js\": [\n\t\t332,\n\t\t9,\n\t\t2,\n\t\t144\n\t],\n\t\"./Shared/Screener/criteria/STRSIPeriod2\": [\n\t\t337,\n\t\t9,\n\t\t232\n\t],\n\t\"./Shared/Screener/criteria/STRSIPeriod2.js\": [\n\t\t337,\n\t\t9,\n\t\t232\n\t],\n\t\"./Shared/Screener/criteria/STRSIPeriod2.scss\": [\n\t\t1121,\n\t\t7,\n\t\t568\n\t],\n\t\"./Shared/Screener/criteria/TopGlobalHoldingsRow\": [\n\t\t361,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t128\n\t],\n\t\"./Shared/Screener/criteria/TopGlobalHoldingsRow.js\": [\n\t\t361,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t128\n\t],\n\t\"./Shared/Screener/criteria/TopSectorHoldingsRow\": [\n\t\t360,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t129\n\t],\n\t\"./Shared/Screener/criteria/TopSectorHoldingsRow.js\": [\n\t\t360,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t129\n\t],\n\t\"./Shared/Screener/criteria/YearComparedToDollarAmount\": [\n\t\t351,\n\t\t9,\n\t\t2,\n\t\t193\n\t],\n\t\"./Shared/Screener/criteria/YearComparedToDollarAmount.js\": [\n\t\t351,\n\t\t9,\n\t\t2,\n\t\t193\n\t],\n\t\"./Shared/Screener/criteria/YearComparedToDollarAmount.scss\": [\n\t\t1124,\n\t\t7,\n\t\t569\n\t],\n\t\"./Shared/SetAlertsLink/SetAlertsLink\": [\n\t\t362,\n\t\t9,\n\t\t390\n\t],\n\t\"./Shared/SetAlertsLink/SetAlertsLink.js\": [\n\t\t362,\n\t\t9,\n\t\t390\n\t],\n\t\"./Shared/SetAlertsLink/SetAlertsLink.scss\": [\n\t\t1284,\n\t\t7,\n\t\t570\n\t],\n\t\"./Shared/SnapshotChart/SnapshotChart\": [\n\t\t408,\n\t\t9,\n\t\t295\n\t],\n\t\"./Shared/SnapshotChart/SnapshotChart.js\": [\n\t\t408,\n\t\t9,\n\t\t295\n\t],\n\t\"./Shared/SnapshotChart/SnapshotChart.scss\": [\n\t\t1160,\n\t\t7,\n\t\t571\n\t],\n\t\"./Shared/StringizedScreenerCriteria/StringizedScreenerCriteria\": [\n\t\t368,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t8,\n\t\t9,\n\t\t86\n\t],\n\t\"./Shared/StringizedScreenerCriteria/StringizedScreenerCriteria.js\": [\n\t\t368,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t8,\n\t\t9,\n\t\t86\n\t],\n\t\"./Shared/StringizedScreenerCriteria/StringizedScreenerCriteria.scss\": [\n\t\t1129,\n\t\t7,\n\t\t572\n\t],\n\t\"./Shared/TechnicalAnalysis/TechnicalAnalysis\": [\n\t\t394,\n\t\t9,\n\t\t387\n\t],\n\t\"./Shared/TechnicalAnalysis/TechnicalAnalysis.js\": [\n\t\t394,\n\t\t9,\n\t\t387\n\t],\n\t\"./Shared/TechnicalAnalysis/TechnicalAnalysis.scss\": [\n\t\t1149,\n\t\t7,\n\t\t573\n\t],\n\t\"./Shared/TradeLink/TradeLink\": [\n\t\t307,\n\t\t9,\n\t\t383\n\t],\n\t\"./Shared/TradeLink/TradeLink.js\": [\n\t\t307,\n\t\t9,\n\t\t383\n\t],\n\t\"./Shared/TradeLink/TradeLink.scss\": [\n\t\t1285,\n\t\t7,\n\t\t574\n\t],\n\t\"./StockCentre/CustomizeScreener\": [\n\t\t654,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t41\n\t],\n\t\"./StockCentre/CustomizeScreener.js\": [\n\t\t654,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t41\n\t],\n\t\"./StockCentre/Overview/Prescreens\": [\n\t\t566,\n\t\t9,\n\t\t369\n\t],\n\t\"./StockCentre/Overview/Prescreens.js\": [\n\t\t566,\n\t\t9,\n\t\t369\n\t],\n\t\"./StockCentre/Overview/SavedScreens\": [\n\t\t567,\n\t\t9,\n\t\t6,\n\t\t324\n\t],\n\t\"./StockCentre/Overview/SavedScreens.js\": [\n\t\t567,\n\t\t9,\n\t\t6,\n\t\t324\n\t],\n\t\"./StockCentre/Overview/SavedScreens.scss\": [\n\t\t1241,\n\t\t7,\n\t\t575\n\t],\n\t\"./StockCentre/Overview/TodaysTopSectors\": [\n\t\t584,\n\t\t9,\n\t\t159\n\t],\n\t\"./StockCentre/Overview/TodaysTopSectors.js\": [\n\t\t584,\n\t\t9,\n\t\t159\n\t],\n\t\"./StockCentre/Overview/TodaysTopSectors.scss\": [\n\t\t1242,\n\t\t7,\n\t\t576\n\t],\n\t\"./StockCentre/Screener\": [\n\t\t655,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t44\n\t],\n\t\"./StockCentre/Screener.js\": [\n\t\t655,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t44\n\t],\n\t\"./StockCentre/Screener/CriteriaCard\": [\n\t\t568,\n\t\t9,\n\t\t2,\n\t\t178\n\t],\n\t\"./StockCentre/Screener/CriteriaCard.js\": [\n\t\t568,\n\t\t9,\n\t\t2,\n\t\t178\n\t],\n\t\"./StockCentre/Screener/CriteriaCard.scss\": [\n\t\t1243,\n\t\t7,\n\t\t577\n\t],\n\t\"./StockCentre/Screener/CustomizeScreenerCriteria\": [\n\t\t465,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t57\n\t],\n\t\"./StockCentre/Screener/CustomizeScreenerCriteria.js\": [\n\t\t465,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t57\n\t],\n\t\"./StockCentre/Screener/CustomizeScreenerResults\": [\n\t\t464,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t52\n\t],\n\t\"./StockCentre/Screener/CustomizeScreenerResults.js\": [\n\t\t464,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t52\n\t],\n\t\"./StockCentre/Screener/CustomizeScreenerResults.scss\": [\n\t\t1183,\n\t\t7,\n\t\t578\n\t],\n\t\"./StockCentre/Screener/PreScreeners\": [\n\t\t569,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t51\n\t],\n\t\"./StockCentre/Screener/PreScreeners.js\": [\n\t\t569,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t51\n\t],\n\t\"./StockCentre/Screener/SavedScreenMenu\": [\n\t\t467,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t215\n\t],\n\t\"./StockCentre/Screener/SavedScreenMenu.js\": [\n\t\t467,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t215\n\t],\n\t\"./StockCentre/Screener/SavedScreens\": [\n\t\t570,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t50\n\t],\n\t\"./StockCentre/Screener/SavedScreens.js\": [\n\t\t570,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t50\n\t],\n\t\"./StockCentre/Screener/SavedScreens.scss\": [\n\t\t1164,\n\t\t7,\n\t\t579\n\t],\n\t\"./StockCentre/Screener/StocksCriteriaTable\": [\n\t\t413,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t62\n\t],\n\t\"./StockCentre/Screener/StocksCriteriaTable.js\": [\n\t\t413,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t4,\n\t\t62\n\t],\n\t\"./StockCentre/Screener/StocksCriteriaTable.scss\": [\n\t\t1163,\n\t\t7,\n\t\t580\n\t],\n\t\"./StockCentre/Screener/modules/PreScreensConfig\": [\n\t\t414,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t8,\n\t\t9,\n\t\t96\n\t],\n\t\"./StockCentre/Screener/modules/PreScreensConfig.js\": [\n\t\t414,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t8,\n\t\t9,\n\t\t96\n\t],\n\t\"./StockCentre/Screener/modules/PreScreensTable\": [\n\t\t466,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t8,\n\t\t9,\n\t\t89\n\t],\n\t\"./StockCentre/Screener/modules/PreScreensTable.js\": [\n\t\t466,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t8,\n\t\t9,\n\t\t89\n\t],\n\t\"./StockCentre/Screener/modules/PreScreensTable.scss\": [\n\t\t1184,\n\t\t7,\n\t\t581\n\t],\n\t\"./StockCentre/StockCentre.scss\": [\n\t\t1148,\n\t\t7,\n\t\t582\n\t],\n\t\"./StockCentre/StockCentreOverview\": [\n\t\t656,\n\t\t9,\n\t\t0,\n\t\t6,\n\t\t310,\n\t\t5,\n\t\t273\n\t],\n\t\"./StockCentre/StockCentreOverview.js\": [\n\t\t656,\n\t\t9,\n\t\t0,\n\t\t6,\n\t\t310,\n\t\t5,\n\t\t273\n\t],\n\t\"./StockCentre/StockCentreScreenerTest\": [\n\t\t657,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t6,\n\t\t317,\n\t\t103\n\t],\n\t\"./StockCentre/StockCentreScreenerTest.js\": [\n\t\t657,\n\t\t9,\n\t\t0,\n\t\t2,\n\t\t6,\n\t\t317,\n\t\t103\n\t],\n\t\"./StockCentre/StocksScreener\": [\n\t\t565,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t45\n\t],\n\t\"./StockCentre/StocksScreener.js\": [\n\t\t565,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t2,\n\t\t3,\n\t\t45\n\t],\n\t\"./StockCentre/StocksUpgradesDowngrades\": [\n\t\t672,\n\t\t9,\n\t\t0,\n\t\t311,\n\t\t5,\n\t\t281\n\t],\n\t\"./StockCentre/StocksUpgradesDowngrades.js\": [\n\t\t672,\n\t\t9,\n\t\t0,\n\t\t311,\n\t\t5,\n\t\t281\n\t],\n\t\"./Stocks/AnalystPriceTarget\": [\n\t\t468,\n\t\t9,\n\t\t374\n\t],\n\t\"./Stocks/AnalystPriceTarget.js\": [\n\t\t468,\n\t\t9,\n\t\t374\n\t],\n\t\"./Stocks/AnalystPriceTarget.scss\": [\n\t\t1185,\n\t\t7,\n\t\t583\n\t],\n\t\"./Stocks/Analysts\": [\n\t\t658,\n\t\t9,\n\t\t364\n\t],\n\t\"./Stocks/Analysts.js\": [\n\t\t658,\n\t\t9,\n\t\t364\n\t],\n\t\"./Stocks/Charts\": [\n\t\t659,\n\t\t9,\n\t\t5,\n\t\t289\n\t],\n\t\"./Stocks/Charts.js\": [\n\t\t659,\n\t\t9,\n\t\t5,\n\t\t289\n\t],\n\t\"./Stocks/Charts.scss\": [\n\t\t1286,\n\t\t7,\n\t\t584\n\t],\n\t\"./Stocks/Earnings\": [\n\t\t660,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t5,\n\t\t32,\n\t\t338\n\t],\n\t\"./Stocks/Earnings.js\": [\n\t\t660,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t5,\n\t\t32,\n\t\t338\n\t],\n\t\"./Stocks/Financials\": [\n\t\t661,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t5,\n\t\t31,\n\t\t412\n\t],\n\t\"./Stocks/Financials.js\": [\n\t\t661,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t5,\n\t\t31,\n\t\t412\n\t],\n\t\"./Stocks/Fundamentals\": [\n\t\t662,\n\t\t9,\n\t\t5,\n\t\t10,\n\t\t279\n\t],\n\t\"./Stocks/Fundamentals.js\": [\n\t\t662,\n\t\t9,\n\t\t5,\n\t\t10,\n\t\t279\n\t],\n\t\"./Stocks/Fundamentals.scss\": [\n\t\t1280,\n\t\t7,\n\t\t585\n\t],\n\t\"./Stocks/News\": [\n\t\t663,\n\t\t9,\n\t\t2,\n\t\t5,\n\t\t12,\n\t\t314\n\t],\n\t\"./Stocks/News.js\": [\n\t\t663,\n\t\t9,\n\t\t2,\n\t\t5,\n\t\t12,\n\t\t314\n\t],\n\t\"./Stocks/Options\": [\n\t\t664,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t14,\n\t\t109\n\t],\n\t\"./Stocks/Options.js\": [\n\t\t664,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t3,\n\t\t14,\n\t\t109\n\t],\n\t\"./Stocks/Reports\": [\n\t\t665,\n\t\t9,\n\t\t331,\n\t\t5,\n\t\t17,\n\t\t413\n\t],\n\t\"./Stocks/Reports.js\": [\n\t\t665,\n\t\t9,\n\t\t331,\n\t\t5,\n\t\t17,\n\t\t413\n\t],\n\t\"./Stocks/Snapshot\": [\n\t\t666,\n\t\t9,\n\t\t2,\n\t\t322,\n\t\t5,\n\t\t12,\n\t\t265\n\t],\n\t\"./Stocks/Snapshot.js\": [\n\t\t666,\n\t\t9,\n\t\t2,\n\t\t322,\n\t\t5,\n\t\t12,\n\t\t265\n\t],\n\t\"./Stocks/Snapshot.scss\": [\n\t\t1281,\n\t\t7,\n\t\t586\n\t],\n\t\"./Stocks/Stocks\": [\n\t\t667,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t4,\n\t\t7,\n\t\t74\n\t],\n\t\"./Stocks/Stocks.js\": [\n\t\t667,\n\t\t9,\n\t\t0,\n\t\t1,\n\t\t4,\n\t\t7,\n\t\t74\n\t],\n\t\"./Stocks/Stocks.scss\": [\n\t\t1282,\n\t\t7,\n\t\t587\n\t],\n\t\"./Stocks/TechnicalAnalysis\": [\n\t\t668,\n\t\t9,\n\t\t353\n\t],\n\t\"./Stocks/TechnicalAnalysis.js\": [\n\t\t668,\n\t\t9,\n\t\t353\n\t],\n\t\"./Stocks/modules/Earnings/AnalystOpinions\": [\n\t\t571,\n\t\t9,\n\t\t373\n\t],\n\t\"./Stocks/modules/Earnings/AnalystOpinions.js\": [\n\t\t571,\n\t\t9,\n\t\t373\n\t],\n\t\"./Stocks/modules/Earnings/AnalystOpinions.scss\": [\n\t\t1244,\n\t\t7,\n\t\t588\n\t],\n\t\"./Stocks/modules/Earnings/StockEarnings.scss\": [\n\t\t1278,\n\t\t7,\n\t\t589\n\t],\n\t\"./Stocks/modules/Earnings/StockEarningsChart\": [\n\t\t592,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t32,\n\t\t261\n\t],\n\t\"./Stocks/modules/Earnings/StockEarningsChart.js\": [\n\t\t592,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t32,\n\t\t261\n\t],\n\t\"./Stocks/modules/Earnings/StockEarningsHoverTable\": [\n\t\t572,\n\t\t9,\n\t\t382\n\t],\n\t\"./Stocks/modules/Earnings/StockEarningsHoverTable.js\": [\n\t\t572,\n\t\t9,\n\t\t382\n\t],\n\t\"./Stocks/modules/Earnings/util\": [\n\t\t418,\n\t\t9,\n\t\t389\n\t],\n\t\"./Stocks/modules/Earnings/util.js\": [\n\t\t418,\n\t\t9,\n\t\t389\n\t],\n\t\"./Stocks/modules/Financials/BalanceSheetTable\": [\n\t\t575,\n\t\t9,\n\t\t414\n\t],\n\t\"./Stocks/modules/Financials/BalanceSheetTable.js\": [\n\t\t575,\n\t\t9,\n\t\t414\n\t],\n\t\"./Stocks/modules/Financials/CashFlowTable\": [\n\t\t574,\n\t\t9,\n\t\t415\n\t],\n\t\"./Stocks/modules/Financials/CashFlowTable.js\": [\n\t\t574,\n\t\t9,\n\t\t415\n\t],\n\t\"./Stocks/modules/Financials/Financials\": [\n\t\t594,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t31,\n\t\t256\n\t],\n\t\"./Stocks/modules/Financials/Financials.js\": [\n\t\t594,\n\t\t9,\n\t\t1,\n\t\t4,\n\t\t31,\n\t\t256\n\t],\n\t\"./Stocks/modules/Financials/Financials.scss\": [\n\t\t1279,\n\t\t7,\n\t\t590\n\t],\n\t\"./Stocks/modules/Financials/IncomeStatementTable\": [\n\t\t573,\n\t\t9,\n\t\t416\n\t],\n\t\"./Stocks/modules/Financials/IncomeStatementTable.js\": [\n\t\t573,\n\t\t9,\n\t\t416\n\t],\n\t\"./Stocks/modules/Fundamentals/AdditionalPerShare\": [\n\t\t475,\n\t\t9,\n\t\t354\n\t],\n\t\"./Stocks/modules/Fundamentals/AdditionalPerShare.js\": [\n\t\t475,\n\t\t9,\n\t\t354\n\t],\n\t\"./Stocks/modules/Fundamentals/Dividend\": [\n\t\t477,\n\t\t9,\n\t\t10,\n\t\t393\n\t],\n\t\"./Stocks/modules/Fundamentals/Dividend.js\": [\n\t\t477,\n\t\t9,\n\t\t10,\n\t\t393\n\t],\n\t\"./Stocks/modules/Fundamentals/EarningsPerShare\": [\n\t\t469,\n\t\t9,\n\t\t359\n\t],\n\t\"./Stocks/modules/Fundamentals/EarningsPerShare.js\": [\n\t\t469,\n\t\t9,\n\t\t359\n\t],\n\t\"./Stocks/modules/Fundamentals/FinancialStrength\": [\n\t\t472,\n\t\t9,\n\t\t10,\n\t\t394\n\t],\n\t\"./Stocks/modules/Fundamentals/FinancialStrength.js\": [\n\t\t472,\n\t\t9,\n\t\t10,\n\t\t394\n\t],\n\t\"./Stocks/modules/Fundamentals/FundamentalsCompanyOverview\": [\n\t\t577,\n\t\t9,\n\t\t305\n\t],\n\t\"./Stocks/modules/Fundamentals/FundamentalsCompanyOverview.js\": [\n\t\t577,\n\t\t9,\n\t\t305\n\t],\n\t\"./Stocks/modules/Fundamentals/FundamentalsCompanyOverview.scss\": [\n\t\t1245,\n\t\t7,\n\t\t591\n\t],\n\t\"./Stocks/modules/Fundamentals/FundamentalsTables\": [\n\t\t576,\n\t\t9,\n\t\t10,\n\t\t304\n\t],\n\t\"./Stocks/modules/Fundamentals/FundamentalsTables.js\": [\n\t\t576,\n\t\t9,\n\t\t10,\n\t\t304\n\t],\n\t\"./Stocks/modules/Fundamentals/Management\": [\n\t\t476,\n\t\t9,\n\t\t10,\n\t\t395\n\t],\n\t\"./Stocks/modules/Fundamentals/Management.js\": [\n\t\t476,\n\t\t9,\n\t\t10,\n\t\t395\n\t],\n\t\"./Stocks/modules/Fundamentals/Profitability\": [\n\t\t471,\n\t\t9,\n\t\t10,\n\t\t379\n\t],\n\t\"./Stocks/modules/Fundamentals/Profitability.js\": [\n\t\t471,\n\t\t9,\n\t\t10,\n\t\t379\n\t],\n\t\"./Stocks/modules/Fundamentals/Revenue\": [\n\t\t470,\n\t\t9,\n\t\t355\n\t],\n\t\"./Stocks/modules/Fundamentals/Revenue.js\": [\n\t\t470,\n\t\t9,\n\t\t355\n\t],\n\t\"./Stocks/modules/Fundamentals/ShareRelated\": [\n\t\t474,\n\t\t9,\n\t\t10,\n\t\t396\n\t],\n\t\"./Stocks/modules/Fundamentals/ShareRelated.js\": [\n\t\t474,\n\t\t9,\n\t\t10,\n\t\t396\n\t],\n\t\"./Stocks/modules/Fundamentals/Valuation\": [\n\t\t473,\n\t\t9,\n\t\t10,\n\t\t397\n\t],\n\t\"./Stocks/modules/Fundamentals/Valuation.js\": [\n\t\t473,\n\t\t9,\n\t\t10,\n\t\t397\n\t],\n\t\"./Stocks/modules/Reports/LatestReports\": [\n\t\t492,\n\t\t9,\n\t\t17,\n\t\t204\n\t],\n\t\"./Stocks/modules/Reports/LatestReports.js\": [\n\t\t492,\n\t\t9,\n\t\t17,\n\t\t204\n\t],\n\t\"./Stocks/modules/Reports/LatestReports.scss\": [\n\t\t1252,\n\t\t7,\n\t\t592\n\t],\n\t\"./Stocks/modules/Reports/SymbolLink\": [\n\t\t380,\n\t\t9,\n\t\t391\n\t],\n\t\"./Stocks/modules/Reports/SymbolLink.js\": [\n\t\t380,\n\t\t9,\n\t\t391\n\t],\n\t\"./Stocks/modules/Snapshot/CompanyOverview\": [\n\t\t415,\n\t\t9,\n\t\t371\n\t],\n\t\"./Stocks/modules/Snapshot/CompanyOverview.js\": [\n\t\t415,\n\t\t9,\n\t\t371\n\t],\n\t\"./Stocks/modules/Snapshot/CompanyOverview.scss\": [\n\t\t1165,\n\t\t7,\n\t\t593\n\t],\n\t\"./Stocks/modules/Snapshot/PdfReports\": [\n\t\t578,\n\t\t9,\n\t\t210\n\t],\n\t\"./Stocks/modules/Snapshot/PdfReports.js\": [\n\t\t578,\n\t\t9,\n\t\t210\n\t],\n\t\"./Stocks/modules/Snapshot/PdfReports.scss\": [\n\t\t1246,\n\t\t7,\n\t\t594\n\t],\n\t\"./Stocks/modules/Snapshot/StocksNews\": [\n\t\t478,\n\t\t9,\n\t\t2,\n\t\t12,\n\t\t150\n\t],\n\t\"./Stocks/modules/Snapshot/StocksNews.js\": [\n\t\t478,\n\t\t9,\n\t\t2,\n\t\t12,\n\t\t150\n\t],\n\t\"./Stocks/modules/Snapshot/StocksNews.scss\": [\n\t\t1186,\n\t\t7,\n\t\t595\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(2).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__.t(id, ids[1])\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 363;\nmodule.exports = webpackAsyncContext;","import Types from './Types';\nimport { requestXrefByVenueXids } from './xrefActions';\n\nconst watchlistTabs = {\n\tquoteDetail: 'quotedetail',\n\tportfolio: 'portfolio',\n\tperformance: 'performance',\n\tfundamentals: 'fundamentals',\n\testimates: 'estimates'\n};\n\nconst holdingsGroups = {\n\tETFS: 'etfs',\n\tMUTUALFUNDS: 'mutualFunds',\n\tOPTIONS: 'options',\n\tSTOCKS: 'stocks'\n};\n\nconst getPathByTab = (portfolioId, tab) => {\n\tswitch (tab) {\n\t\tcase watchlistTabs.quoteDetail:\n\t\t\treturn `portfolio/${portfolioId}/quotedetail`;\n\t\tcase watchlistTabs.performance:\n\t\t\treturn `portfolio/${portfolioId}/performance`;\n\t\tcase watchlistTabs.fundamentals:\n\t\t\treturn `portfolio/${portfolioId}/fundamentals`;\n\t\tcase watchlistTabs.estimates:\n\t\t\treturn `portfolio/${portfolioId}/estimates`;\n\t\tcase watchlistTabs.portfolio:\n\t\tdefault:\n\t\t\treturn `portfolio/${portfolioId}/`;\n\t}\n};\n\nconst getRealtimeByTier = tier => {\n\tconst { code } = tier || {};\n\n\tswitch (code) {\n\t\tcase 'IEE':\n\t\tcase 'IISE':\n\t\tcase 'PEE':\n\t\t\treturn true;\n\t\tdefault:\n\t\t\treturn false;\n\t}\n};\n\nconst handleLoader = fetchName => {\n\treturn ({\n\t\ttype: Types.API_HANDLE_WATCHLIST_LOADER,\n\t\tfetchName\n\t});\n};\n\nconst receiveWatchlistNames = response => {\n\treturn ({\n\t\ttype: Types.API_CIBC_RECEIVE_WATCHLIST_NAMES,\n\t\tresponse\n\t});\n};\n\nconst requestWatchlistNames = (includeCounts = false, successCallback) => {\n\tconst result = {\n\t\ttype: Types.API_CIBC_REQUEST_WATCHLIST_NAMES,\n\t\tendPoint: 'portfolios',\n\t\tparams: {\n\t\t\tincludeCounts\n\t\t},\n\t\tajaxType: 'GET',\n\t\tonSuccess: successCallback || receiveWatchlistNames,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingWatchlistNames'\n\t};\n\n\treturn result;\n};\n\nconst receiveWatchlistQuotes = response => {\n\treturn ({\n\t\ttype: Types.API_RECEIVE_WATCHLIST_QUOTE,\n\t\tresponse\n\t});\n};\n\nconst requestWatchlistQuotes = (xids, tier) => {\n\tconst xidsString = xids.join(',');\n\tconst result = {\n\t\ttype: Types.API_REQUEST_WATCHLIST_QUOTE,\n\t\tendPoint: '/quote/v1/details',\n\t\tparams: {\n\t\t\tvenueXids: xidsString,\n\t\t\tmarketHoursTradeType: 'normal'\n\t\t},\n\t\tajaxType: 'GET',\n\t\theaders: {\n\t\t\trealtime: getRealtimeByTier(tier)\n\t\t},\n\t\tonSuccess: receiveWatchlistQuotes,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingWatchlistQuoteData'\n\t};\n\n\treturn result;\n};\n\nconst receiveWatchlist = (response, tab, tier) => {\n\tconst actions = [{\n\t\ttype: Types.API_CIBC_RECEIVE_WATCHLIST,\n\t\tresponse\n\t}];\n\n\tconst xids = [];\n\tconst optionXids = [];\n\n\tif (response && response.data && response.data.holdings && response.data.holdings.length > 0) {\n\t\tresponse.data.holdings.forEach(item => {\n\t\t\tif (item.active) {\n\t\t\t\txids.push(item.xid);\n\t\t\t\tif (item.issueType && item.issueType.toLowerCase() === 'op') {\n\t\t\t\t\toptionXids.push(item.xid);\n\t\t\t\t\tif (item.underlyingXid && xids.indexOf(item.underlyingXid) === -1) {\n\t\t\t\t\t\txids.push(item.underlyingXid);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\t// Make xref and qoute calls for holdings if we have them\n\tif (xids.length > 0) {\n\t\tactions.push(requestXrefByVenueXids(xids));\n\n\t\tif (tab === watchlistTabs.quoteDetail) {\n\t\t\tactions.push(requestWatchlistQuotes(xids, tier));\n\t\t} else if (optionXids.length > 0) {\n\t\t\tconst useTier = tab === watchlistTabs.quoteDetail ? tier : null;\n\t\t\tactions.push(requestWatchlistQuotes(optionXids, useTier));\n\t\t}\n\t}\n\n\treturn actions;\n};\n\nconst setActiveWatchilistId = activeWatchlistId => {\n\treturn ({\n\t\ttype: Types.SET_ACTIVE_WATCHLIST_ID,\n\t\tactiveWatchlistId\n\t});\n};\n\nconst requestWatchlist = (portfolioId, tab, currency = 'CAD', tier = {}, isRecentQuotes = false) => {\n\tconst params = {\n\t\tcurrency\n\t};\n\n\tif (isRecentQuotes) {\n\t\tparams.sortBy = 'lastUpdateTime';\n\t\tparams.sortDir = 'DESC';\n\t}\n\n\tconst result = {\n\t\ttype: Types.API_CIBC_REQUEST_WATCHLIST,\n\t\tendPoint: getPathByTab(portfolioId, tab),\n\t\tparams,\n\t\tajaxType: 'GET',\n\t\tonSuccess: response => { return receiveWatchlist(response, tab, tier); },\n\t\tactiveWatchlistId: portfolioId,\n\t\tactiveWatchlistTab: tab,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingWatchlist'\n\t};\n\treturn result;\n};\n\nconst sortHoldingsGroup = (holdingGroup, field, direction) => {\n\treturn ({\n\t\ttype: Types.SORT_WATCHLIST,\n\t\tfield,\n\t\tdirection,\n\t\tholdingGroup\n\t});\n};\n\nconst setWatchlistTableSortIndicators = (holdingGroup, field, direction) => {\n\treturn ({\n\t\ttype: Types.SORT_WATCHLIST_SETINDICATORS,\n\t\tfield,\n\t\tdirection,\n\t\tholdingGroup\n\t});\n};\n\nconst receiveUpdateTransaction = (response, portfolioId, currency) => {\n\tconst actions = [];\n\tactions.push(requestWatchlist(portfolioId, watchlistTabs.portfolio, currency));\n\tactions.push({\n\t\ttype: Types.API_CIBC_RECEIVE_WATCHLIST_UPDATE_TRANSACTION,\n\t\tresponse\n\t});\n\treturn actions;\n};\n\nconst requestUpdateTransaction = (portfolioId, transactionId, holdingId, shares, price, currency = 'CAD') => {\n\tconst result = {\n\t\ttype: Types.API_CIBC_REQUEST_WATCHLIST_UPDATE_TRANSACTION,\n\t\tendPoint: `portfolio/${portfolioId}/editpurchasedetails`,\n\t\tparams: [{\n\t\t\ttransactionId,\n\t\t\tholdingId,\n\t\t\tshares: Number(shares),\n\t\t\tprice: Number(price)\n\t\t}],\n\t\tajaxType: 'PUT',\n\t\tonSuccess: response => receiveUpdateTransaction(response, portfolioId, currency),\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingWatchlistQuoteData'\n\t};\n\treturn result;\n};\n\nconst receiveAddHoldings = response => {\n\treturn ({\n\t\ttype: Types.API_CIBC_RECEIVE_WATCHLIST_ADD_HOLDINGS,\n\t\tresponse\n\t});\n};\n\nconst requestAddHoldings = (portfolioId, xids) => {\n\tconst result = {\n\t\ttype: Types.API_CIBC_REQUEST_WATCHLIST_ADD_HOLDINGS,\n\t\tendPoint: `portfolio/${portfolioId}/addholdings`,\n\t\tparams: xids,\n\t\tajaxType: 'PUT',\n\t\tonSuccess: receiveAddHoldings,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingAddHoldings'\n\t};\n\treturn result;\n};\n\nconst receiveAddToRecentQuotes = response => {\n\treturn ({\n\t\ttype: Types.API_CIBC_RECEIVE_ADD_TO_RECENT_QUOTES,\n\t\tresponse\n\t});\n};\n\nconst requestAddToRecentQuotes = xid => {\n\tconst result = {\n\t\ttype: Types.API_CIBC_REQUEST_ADD_TO_RECENT_QUOTES,\n\t\tendPoint: `portfolio/addToRecentQuotes/${xid}`,\n\t\tajaxType: 'PUT',\n\t\tonSuccess: receiveAddToRecentQuotes,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingAddToRecentQuotes'\n\t};\n\treturn result;\n};\n\nconst receiveDeleteHoldings = response => {\n\treturn ({\n\t\ttype: Types.API_CIBC_RECEIVE_WATCHLIST_DELETE_HOLDINGS,\n\t\tresponse\n\t});\n};\n\nconst requestDeleteHoldings = (portfolioId, holdingIds) => {\n\tconst result = {\n\t\ttype: Types.API_CIBC_REQUEST_WATCHLIST_DELETE_HOLDINGS,\n\t\tendPoint: `portfolio/${portfolioId}/deleteholdings`,\n\t\tparams: holdingIds,\n\t\tajaxType: 'DELETE',\n\t\tonSuccess: receiveDeleteHoldings,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingDeleteHoldings'\n\t};\n\treturn result;\n};\n\nconst receiveCreateNewWatchlist = (response, name, xids) => {\n\tconst actions = [];\n\tlet portfolioId = null;\n\n\tif (response && response.data && response.data.length) {\n\t\tconst { data } = response;\n\t\tconst portfolio = data.filter(watchlist => {\n\t\t\treturn watchlist.name === name;\n\t\t})[0];\n\t\tportfolioId = portfolio.portfolioId;\n\t\tactions.push(requestAddHoldings(portfolioId, xids));\n\t}\n\n\tactions.push({\n\t\ttype: Types.API_CIBC_RECEIVE_WATCHLIST_CREATE_WATCHLIST,\n\t\tresponse,\n\t\tportfolioId\n\t});\n\n\treturn actions;\n};\n\nconst setRenameWatchlistError = value => {\n\treturn ({\n\t\ttype: Types.API_CIBC_SET_WATCHLIST_RENAME_ERROR,\n\t\tvalue\n\t});\n};\n\nconst requestCreateNewWatchlist = (name, defaultPortfolio, xids = []) => {\n\tconst params = {\n\t\tname\n\t};\n\n\tif (defaultPortfolio !== undefined) {\n\t\tparams.defaultPortfolio = defaultPortfolio;\n\t}\n\n\tconst result = {\n\t\ttype: Types.API_CIBC_REQUEST_WATCHLIST_CREATE_WATCHLIST,\n\t\tendPoint: 'portfolios/create',\n\t\tparams,\n\t\tajaxType: 'GET',\n\t\tonSuccess: response => receiveCreateNewWatchlist(response, name, xids),\n\t\ton400: () => setRenameWatchlistError(true),\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingCreateNewWatchlist'\n\t};\n\treturn result;\n};\n\nconst receiveRenameWatchlist = response => {\n\treturn ({\n\t\ttype: Types.API_CIBC_RECEIVE_WATCHLIST_RENAME,\n\t\tresponse\n\t});\n};\n\nconst requestRenameWatchlist = (portfolioId, oldName, name, defaultPortfolio) => {\n\tconst params = {\n\t\toldName,\n\t\tname\n\t};\n\n\tif (defaultPortfolio !== undefined) {\n\t\tparams.defaultPortfolio = defaultPortfolio;\n\t}\n\n\tconst result = {\n\t\ttype: Types.API_CIBC_REQUEST_WATCHLIST_RENAME,\n\t\tendPoint: `portfolio/${portfolioId}/rename`,\n\t\tparams,\n\t\tajaxType: 'GET',\n\t\tonSuccess: receiveRenameWatchlist,\n\t\ton400: () => setRenameWatchlistError(true),\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingRenameWatchlist'\n\t};\n\treturn result;\n};\n\nconst receiveDeleteWatchlist = response => {\n\treturn ({\n\t\ttype: Types.API_CIBC_RECEIVE_WATCHLIST_DELETE,\n\t\tresponse\n\t});\n};\n\nconst requestDeleteWatchlist = portfolioId => {\n\tconst result = {\n\t\ttype: Types.API_CIBC_REQUEST_WATCHLIST_DELETE,\n\t\tendPoint: `portfolio/${portfolioId}/delete`,\n\t\tajaxType: 'DELETE',\n\t\tonSuccess: receiveDeleteWatchlist,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingDeleteWatchlist'\n\t};\n\treturn result;\n};\n\nexport {\n\trequestWatchlistNames,\n\treceiveWatchlistNames,\n\trequestWatchlist,\n\trequestUpdateTransaction,\n\trequestCreateNewWatchlist,\n\trequestAddHoldings,\n\trequestDeleteHoldings,\n\trequestRenameWatchlist,\n\trequestDeleteWatchlist,\n\twatchlistTabs,\n\tholdingsGroups,\n\tsortHoldingsGroup,\n\trequestAddToRecentQuotes,\n\tsetWatchlistTableSortIndicators,\n\tsetActiveWatchilistId,\n\tsetRenameWatchlistError\n};\n","/* eslint-disable no-undef */\n/* eslint-disable no-restricted-syntax */\n/* global window */\nimport types from '../Actions/Types';\n\nfunction getApiRequestTypes() {\n\tconst apiRequestTypes = [];\n\tconst apiReg = /^API_REQUEST/;\n\n\t// MIGHTDO refactor to use filter or foreach\n\tfor (const t in types) {\n\t\tif (apiReg.test(t)) {\n\t\t\tapiRequestTypes.push(types[t]);\n\t\t}\n\t}\n\n\treturn apiRequestTypes;\n}\n\nfunction getApiSingleRequestTypes() {\n\tconst apiRequestTypes = [];\n\tconst apiReg = /^API_SINGLE_REQUEST/;\n\n\t// MIGHTDO refactor to use filter or foreach\n\tfor (const t in types) {\n\t\tif (apiReg.test(t)) {\n\t\t\tapiRequestTypes.push(types[t]);\n\t\t}\n\t}\n\n\treturn apiRequestTypes;\n}\n\nfunction getCibcApiSingleRequestTypes() {\n\tconst apiRequestTypes = [];\n\tconst apiReg = /^API_CIBC_SINGLE_REQUEST/;\n\n\t// MIGHTDO refactor to use filter or foreach\n\tfor (const t in types) {\n\t\tif (apiReg.test(t)) {\n\t\t\tapiRequestTypes.push(types[t]);\n\t\t}\n\t}\n\n\treturn apiRequestTypes;\n}\n\nfunction getCibcApiRequestTypes() {\n\tconst apiRequestTypes = [];\n\tconst apiReg = /^API_CIBC_REQUEST/;\n\n\t// MIGHTDO refactor to use filter or foreach\n\tfor (const t in types) {\n\t\tif (apiReg.test(t)) {\n\t\t\tapiRequestTypes.push(types[t]);\n\t\t}\n\t}\n\n\treturn apiRequestTypes;\n}\n\nfunction getAjaxHandlerType(verb, api) {\n\tswitch (verb) {\n\t\tcase 'POST':\n\t\t\treturn api.postData;\n\t\tcase 'PUT':\n\t\t\treturn api.putData;\n\t\tcase 'DELETE':\n\t\t\treturn api.deleteData;\n\t\tcase 'GETPDF':\n\t\t\treturn api.getPdfData;\n\t\tdefault:\n\t\t\treturn api.getData;\n\t}\n}\n\nfunction handleBlobResponse(response, action) {\n\t// eslint-disable-next-line no-undef\n\tconst fileName = `${encodeURI(action.documentName)}.pdf`;\n\tconst isIe = typeof window.navigator.msSaveOrOpenBlob !== 'undefined';\n\tif (isIe) {\n\t\t// if is IE or mobile - ask user for action - save or open\n\t\twindow.navigator.msSaveOrOpenBlob(\n\t\t\tnew Blob([response.data], { type: response.headers.contentType }),\n\t\t\tfileName\n\t\t);\n\t} else {\n\t\tconst blobData = new File([Buffer.from(response.data)], fileName, { type: 'application/pdf' });\n\t\tconst objectUrl = window.URL.createObjectURL(blobData);\n\t\twindow.open(objectUrl, '_blank');\n\t}\n}\n\nexport {\n\tgetApiRequestTypes,\n\tgetCibcApiRequestTypes,\n\tgetCibcApiSingleRequestTypes,\n\tgetAjaxHandlerType,\n\tgetApiSingleRequestTypes,\n\thandleBlobResponse\n};\n","/* global window */\nfunction getUrlParameterValueByName(name, caseSensitive = false) {\n\tconst url = window.location;\n\n\t/* eslint-disable */\n\tif (!caseSensitive) url.toLowerCase;\n\tconst cleanedName = name.replace(/[\\[\\]]/g, '\\\\$&');\n\tif (!caseSensitive) cleanedName.toLowerCase;\n\t/* eslint-enable */\n\tconst regex = new RegExp(`[?&]${cleanedName}(=([^&#]*)|&|#|$)`);\n\tconst results = regex.exec(url);\n\n\tif (!results) {\n\t\treturn null;\n\t}\n\n\treturn results[2] ? decodeURIComponent(results[2].replace(/\\+/g, ' ')) : '';\n}\n\nexport const isDebugInfoOn = () => {\n\treturn getUrlParameterValueByName('..showdebuginfo..') === 'on';\n};\n\nexport const getTokenFromQueryString = () => {\n\treturn getUrlParameterValueByName('token', true);\n};\n\nexport const getRefFromQueryString = () => {\n\treturn getUrlParameterValueByName('REF', true);\n};\n\nexport const getLangFromQueryString = () => {\n\treturn getUrlParameterValueByName('language', true);\n};\n\nexport const getNewsFromQueryString = () => {\n\treturn getUrlParameterValueByName('news', true);\n};\n\nexport const getPrescreenName = () => {\n\treturn getUrlParameterValueByName('prescreen', true);\n};\n\nexport const getScrollTo = () => {\n\treturn getUrlParameterValueByName('scrollTo', true);\n};\n\nexport const getScreenName = () => {\n\treturn getUrlParameterValueByName('screen', true);\n};\n\nexport const getView = () => {\n\treturn getUrlParameterValueByName('view', true);\n};\n","import Types from './Types';\nimport { requestXrefByVenueXids } from './xrefActions';\nimport { getRealtimeByTier } from './QuotesActions';\n\nconst holdingsGroups = {\n\tMUTUALFUNDS: 'mutualFunds',\n\tOPTIONS: 'options',\n\tSTOCKS_ETFS_INDICES: 'stocksETFsIndices'\n};\n\nconst handleLoader = fetchName => {\n\treturn ({\n\t\ttype: Types.API_HANDLE_QUOTELIST_LOADER,\n\t\tfetchName\n\t});\n};\n\nconst receiveQuotelistFundBasics = (response, xid) => {\n\treturn ({\n\t\ttype: Types.API_RECEIVE_QUOTELIST_FUND_BASICS,\n\t\tresponse,\n\t\txid\n\t});\n};\n\nconst requestQuotelistFundBasics = (xid, lang) => {\n\tconst result = {\n\t\ttype: Types.API_REQUEST_QUOTELIST_FUND_BASICS,\n\t\tendPoint: `managedfunds-lippercanada-fundbasics/v1/fundBasics/${xid}`,\n\t\tparams: {\n\t\t\tvenueXids: xid,\n\t\t\tlang\n\t\t},\n\t\tajaxType: 'GET',\n\t\tonSuccess: response => { return receiveQuotelistFundBasics(response, xid); },\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingQuotelistFundBasicsData'\n\t};\n\n\treturn result;\n};\n\nconst receiveQuotelistQuotes = (response, xids) => {\n\treturn ({\n\t\ttype: Types.API_RECEIVE_QUOTELIST_QUOTE,\n\t\tresponse,\n\t\txids\n\t});\n};\n\nconst requestQuotelistQuotes = (xids, tier) => {\n\tconst result = {\n\t\ttype: Types.API_REQUEST_QUOTELIST_QUOTE,\n\t\tendPoint: '/quote/v1/details',\n\t\tparams: {\n\t\t\tvenueXids: xids.join(','),\n\t\t\tmarketHoursTradeType: 'normal'\n\t\t},\n\t\tajaxType: 'GET',\n\t\theaders: {\n\t\t\trealtime: getRealtimeByTier(tier)\n\t\t},\n\t\tonSuccess: response => { return receiveQuotelistQuotes(response, xids); },\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingQuotelistQuoteData'\n\t};\n\n\treturn result;\n};\n\nconst addToQuotelist = (symbol, lang, tier) => {\n\tconst actions = [\n\t\t{\n\t\t\ttype: Types.ADD_TO_QUOTELIST,\n\t\t\tsymbol\n\t\t}\n\t];\n\tconst holdingType = symbol.classification.name.toLowerCase();\n\tconst xid = symbol.xids.venue;\n\n\tif (xid) {\n\t\tactions.push(requestXrefByVenueXids([xid]));\n\t\tif (holdingType === 'fund') {\n\t\t\tactions.push(requestQuotelistFundBasics(xid, lang));\n\t\t} else {\n\t\t\tactions.push(requestQuotelistQuotes([xid], tier));\n\t\t}\n\t}\n\n\treturn actions;\n};\n\nconst removeFromQuotelist = (symbolsToKeep, quotelistSection) => {\n\treturn {\n\t\ttype: Types.REMOVE_FROM_QUOTELIST,\n\t\tsymbolsToKeep,\n\t\tquotelistSection\n\t};\n};\n\nconst sortHoldingsGroup = (holdingGroup, field, direction, quoteData) => {\n\treturn ({\n\t\ttype: Types.SORT_QUOTELIST,\n\t\tfield,\n\t\tdirection,\n\t\tholdingGroup,\n\t\tquoteData\n\t});\n};\n\nconst setQuotelistTableSortIndicators = (holdingGroup, field, direction) => {\n\treturn ({\n\t\ttype: Types.SORT_QUOTELIST_SETINDICATORS,\n\t\tfield,\n\t\tdirection,\n\t\tholdingGroup\n\t});\n};\n\nexport {\n\taddToQuotelist,\n\tremoveFromQuotelist,\n\trequestQuotelistFundBasics,\n\trequestQuotelistQuotes,\n\tholdingsGroups,\n\tsetQuotelistTableSortIndicators,\n\tsortHoldingsGroup\n};\n","import Types from './Types';\n\nconst receiveXrefByVenueXids = response => {\n\treturn ({\n\t\ttype: Types.API_RECEIVE_XREF_BY_VENUE_XIDS,\n\t\tresponse\n\t});\n};\n\nconst handleLoader = fetchName => {\n\treturn ({\n\t\ttype: Types.API_HANDLE_XREF_BY_VENUE_XIDS_LOADER,\n\t\tfetchName\n\t});\n};\n\nconst requestXrefByVenueXids = (xids, responseHandler) => {\n\treturn {\n\t\ttype: Types.API_REQUEST_XREF_BY_VENUE_XIDS,\n\t\tendPoint: '/xref/v1/venue-xids',\n\t\tparams: {},\n\t\tajaxType: 'GET',\n\t\tnewXids: xids,\n\t\tonSuccess: responseHandler || receiveXrefByVenueXids,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingXrefByVenueXids'\n\t};\n};\n\nconst receiveSymbolInContext = response => {\n\treturn ({\n\t\ttype: Types.API_RECEIVE_SYMBOL_IN_CONTEXT,\n\t\tresponse\n\t});\n};\n\nconst requestSymbolInContext = (exchanges, country, symbol, responseHandler) => {\n\tconst symbols = [];\n\n\tif (exchanges\n\t\t&& exchanges.data\n\t\t&& exchanges.data.exchange\n\t\t&& exchanges.data.exchange.length > 0 && country) {\n\t\texchanges.data.exchange.forEach(exchange => {\n\t\t\tconst { countryIso, id } = exchange;\n\t\t\tif (countryIso && countryIso.toLowerCase() === country.toLowerCase() && id) {\n\t\t\t\tsymbols.push({\n\t\t\t\t\tsymbol,\n\t\t\t\t\texchangeId: id,\n\t\t\t\t\tisCaseSensitive: false\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t} else if (Array.isArray(symbol)) {\n\t\tsymbol.forEach(s => {\n\t\t\tsymbols.push({\n\t\t\t\tsymbol: s\n\t\t\t});\n\t\t});\n\t} else if (typeof symbol === 'string') {\n\t\tsymbols.push({\n\t\t\tsymbol\n\t\t});\n\t}\n\n\treturn {\n\t\ttype: Types.API_REQUEST_SYMBOL_IN_CONTEXT,\n\t\tendPoint: '/xref/v1/symbols',\n\t\tparams: {\n\t\t\tsymbols\n\t\t},\n\t\tajaxType: 'POST',\n\t\tonSuccess: responseHandler || receiveSymbolInContext,\n\t\ton404: receiveSymbolInContext,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingSymbolInContext'\n\t};\n};\n\nconst requestExchanges = (country, symbol) => {\n\treturn {\n\t\ttype: Types.API_REQUEST_EXCHANGES,\n\t\tendPoint: '/xref/v1/exchanges',\n\t\tajaxType: 'GET',\n\t\tonSuccess: response => { return requestSymbolInContext(response, country, symbol); },\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingExchanges'\n\t};\n};\n\nconst requestBySymbolCountry = (country, symbol) => {\n\treturn requestExchanges(country, symbol);\n};\n\nconst receiveXidsByWsodCompany = response => {\n\treturn ({\n\t\ttype: Types.API_CIBC_RECEIVE_XIDS_BY_COMPANYID,\n\t\tresponse\n\t});\n};\n\nconst requestXidsByWsodCompany = xid => {\n\treturn {\n\t\ttype: Types.API_CIBC_REQUEST_XIDS_BY_COMPANYID,\n\t\tendPoint: '/xref/company',\n\t\tajaxType: 'GET',\n\t\tparams: {\n\t\t\tcompanyid: xid\n\t\t},\n\t\tonSuccess: receiveXidsByWsodCompany,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingXidsByCompanyID'\n\t};\n};\n\nconst receiveUnderlayingXrefByVenueXids = response => {\n\tconst actions = [{\n\t\ttype: Types.API_CIBC_RECEIVE_UNDERLAYING_BY_XIDS,\n\t\tresponse\n\t}];\n\tconst { data } = response || {};\n\tif (data && data.length) {\n\t\tactions.push(requestXrefByVenueXids(data.map(xref => xref.underlyingXid)));\n\t}\n\n\treturn actions;\n};\n\nconst requestUnderlayingXrefByVenueXids = xids => {\n\treturn {\n\t\ttype: Types.API_CIBC_REQUEST_UNDERLAYING_BY_XIDS,\n\t\tendPoint: '/xref/legacyByXids',\n\t\tajaxType: 'GET',\n\t\tparams: {},\n\t\tnewXids: xids,\n\t\tonSuccess: receiveUnderlayingXrefByVenueXids,\n\t\tloader: handleLoader,\n\t\tfetchName: 'fetchingUnderlayingXrefByVenueXids'\n\t};\n};\n\nconst requestXidsByLegacySymbol = (symbol, country) => {\n\treturn {\n\t\ttype: Types.API_CIBC_REQUEST_XIDS_BY_LEGACYSYMBOL,\n\t\tendPoint: '/xref/legacy',\n\t\tajaxType: 'GET',\n\t\tparams: {\n\t\t\tsymbol,\n\t\t\tcountry\n\t\t}\n\t};\n};\n\nconst setSymbolInContext = xref => {\n\treturn ({\n\t\ttype: Types.SET_SYMBOL_IN_CONTEXT,\n\t\txref\n\t});\n};\n\nconst setSymbolByXid = xref => {\n\treturn ({\n\t\ttype: Types.SET_SYMBOL_BY_XID,\n\t\txref\n\t});\n};\n\nexport {\n\trequestXrefByVenueXids,\n\treceiveXrefByVenueXids,\n\trequestSymbolInContext,\n\trequestBySymbolCountry,\n\trequestXidsByWsodCompany,\n\trequestExchanges,\n\tsetSymbolInContext,\n\treceiveXidsByWsodCompany,\n\treceiveSymbolInContext,\n\trequestXidsByLegacySymbol,\n\tsetSymbolByXid,\n\trequestUnderlayingXrefByVenueXids\n};\n"],"sourceRoot":""}