www.weatheronlinenow.com
Open in
urlscan Pro
2606:4700:3037::6815:3495
Public Scan
Effective URL: https://www.weatheronlinenow.com/
Submission: On August 24 via manual from US — Scanned from DE
Summary
TLS certificate: Issued by Cloudflare Inc ECC CA-3 on March 31st 2022. Valid for: a year.
This is the only time www.weatheronlinenow.com was scanned on urlscan.io!
urlscan.io Verdict: No classification
Domain & IP information
IP Address | AS Autonomous System | ||
---|---|---|---|
1 14 | 2606:4700:303... 2606:4700:3037::6815:3495 | 13335 (CLOUDFLAR...) (CLOUDFLARENET) | |
1 | 2a00:1450:400... 2a00:1450:4001:809::200a | 15169 (GOOGLE) (GOOGLE) | |
1 | 2a00:1450:400... 2a00:1450:4001:82a::200a | 15169 (GOOGLE) (GOOGLE) | |
2 | 2a00:1450:400... 2a00:1450:4001:82a::2003 | 15169 (GOOGLE) (GOOGLE) | |
17 | 4 |
Apex Domain Subdomains |
Transfer | |
---|---|---|
14 |
weatheronlinenow.com
1 redirects
www.weatheronlinenow.com |
100 KB |
2 |
gstatic.com
fonts.gstatic.com |
38 KB |
2 |
googleapis.com
ajax.googleapis.com — Cisco Umbrella Rank: 286 fonts.googleapis.com — Cisco Umbrella Rank: 54 |
32 KB |
17 | 3 |
Domain | Requested by | |
---|---|---|
14 | www.weatheronlinenow.com |
1 redirects
www.weatheronlinenow.com
ajax.googleapis.com |
2 | fonts.gstatic.com |
fonts.googleapis.com
|
1 | fonts.googleapis.com |
www.weatheronlinenow.com
|
1 | ajax.googleapis.com |
www.weatheronlinenow.com
|
17 | 4 |
This site contains no links.
Subject Issuer | Validity | Valid | |
---|---|---|---|
sni.cloudflaressl.com Cloudflare Inc ECC CA-3 |
2022-03-31 - 2023-03-31 |
a year | crt.sh |
upload.video.google.com GTS CA 1C3 |
2022-08-01 - 2022-10-24 |
3 months | crt.sh |
*.gstatic.com GTS CA 1C3 |
2022-08-01 - 2022-10-24 |
3 months | crt.sh |
This page contains 1 frames:
Primary Page:
https://www.weatheronlinenow.com/
Frame ID: 055757D49C7FF17454175023ACAA00C3
Requests: 17 HTTP requests in this frame
Screenshot
Page Title
Weather Online NowGDPR ConsentPage URL History Show full URLs
-
http://www.weatheronlinenow.com/
HTTP 301
https://www.weatheronlinenow.com/ Page URL
Detected technologies
Google Font API (Font Scripts) ExpandDetected patterns
- <link[^>]* href=[^>]+fonts\.(?:googleapis|google)\.com
jQuery (JavaScript Libraries) Expand
Detected patterns
- /([\d.]+)/jquery(?:\.min)?\.js
- jquery.*\.js(?:\?ver(?:sion)?=([\d.]+))?
Page Statistics
0 Outgoing links
These are links going to different origins than the main page.
Page URL History
This captures the URL locations of the websites, including HTTP redirects and client-side redirects via JavaScript or Meta fields.
-
http://www.weatheronlinenow.com/
HTTP 301
https://www.weatheronlinenow.com/ Page URL
Redirected requests
There were HTTP redirect chains for the following requests:
17 HTTP transactions
Method Protocol |
Resource Path |
Size x-fer |
Type MIME-Type |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET H2 |
Primary Request
/
www.weatheronlinenow.com/ Redirect Chain
|
42 KB 14 KB |
Document
text/html |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
Redirect headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
settings.js
www.weatheronlinenow.com/js/ |
313 B 623 B |
Script
application/javascript |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
gdpr.js
www.weatheronlinenow.com/js/ |
3 KB 1 KB |
Script
application/javascript |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H3 |
ext-logo.png
www.weatheronlinenow.com/ |
1 KB 2 KB |
Image
image/png |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
jquery.min.js
ajax.googleapis.com/ajax/libs/jquery/3.3.1/ |
85 KB 30 KB |
Script
text/javascript |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
css
fonts.googleapis.com/ |
7 KB 1 KB |
Stylesheet
text/css |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H3 |
gdpr.php
www.weatheronlinenow.com/ |
4 KB 2 KB |
XHR
text/html |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H3 |
landing.js
www.weatheronlinenow.com/js/ |
330 KB 58 KB |
Script
application/javascript |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H2 |
JTUSjIg1_i6t8kCHKm459Wlhyw.woff2
fonts.gstatic.com/s/montserrat/v25/ |
30 KB 31 KB |
Font
font/woff2 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H3 |
banner.js
www.weatheronlinenow.com/js/ |
9 KB 3 KB |
Script
application/javascript |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H3 |
rtemp.js
www.weatheronlinenow.com/js/ |
6 KB 2 KB |
Script
application/javascript |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H3 |
optout.js
www.weatheronlinenow.com/js/ |
20 KB 6 KB |
Script
application/javascript |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H3 |
landerHelperFunctions.js
www.weatheronlinenow.com/js/ |
4 KB 2 KB |
Script
application/javascript |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H3 |
firefox.css
www.weatheronlinenow.com/css/ |
2 KB 1 KB |
Stylesheet
text/css |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H3 |
logging.gif
www.weatheronlinenow.com/ |
43 B 645 B |
Image
image/gif |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H3 |
landing-ui.js
www.weatheronlinenow.com/js/ |
26 KB 6 KB |
Script
application/javascript |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
GET H3 |
pxiByp8kv8JHgFVrLCz7Z1xlFQ.woff2
fonts.gstatic.com/s/poppins/v20/ |
8 KB 8 KB |
Font
font/woff2 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
Request headers
Response headers
|
Verdicts & Comments Add Verdict or Comment
424 JavaScript Global Variables
These are the non-standard "global" variables defined on the window object. These can be helpful in identifying possible client-side frameworks and code.
object| oncontextlost object| oncontextrestored function| structuredClone object| launchQueue object| onbeforematch function| getScreenDetails function| queryLocalFonts object| navigation object| dimensionValue object| dimensionMap object| eventTags object| LANDING_PARAMS string| gaid object| loggingPixels string| extensionName string| uuidUrl object| __commonFn function| showGdpr function| submitGdpr function| clearDataForGdpr function| setGdprCookie function| getGdprCookie function| getUpperLevelDomainForGdpr function| removeGdprCookie string| dynamicDisclaimerTextColor string| dynamicDisclaimerFontSize string| dynamicDisclaimerBackgroundColor string| dynamicDisclaimerText string| dynamicDisclaimerPosition function| $ function| jQuery object| consent_overlay number| hexcase string| b64pad function| hex_md5 function| b64_md5 function| any_md5 function| hex_hmac_md5 function| b64_hmac_md5 function| any_hmac_md5 function| md5_vm_test function| rstr_md5 function| rstr_hmac_md5 function| rstr2hex function| rstr2b64 function| rstr2any function| str2rstr_utf8 function| str2rstr_utf16le function| str2rstr_utf16be function| rstr2binl function| binl2rstr function| binl_md5 function| md5_cmn function| md5_ff function| md5_gg function| md5_hh function| md5_ii function| safe_add function| bit_rol function| playAudioIfDataAvailable object| forbiddenParamsInUrl object| reverseNameMappingAsInDimensionValueObj object| metricMap number| dimCtr object| metricMapReverse object| dimensionMapReverse string| x number| firePixelCountOnClose number| tabClosePixelCount string| url object| detectInstallModule object| promiseToGetInstalledIdsForAlias object| noHrefErrorPaths object| extensionUtil undefined| ctimer function| WindowPosition function| windowStrategy1 function| windowStrategy2 function| windowStrategy3 function| windowStrategy4 function| windowStrategy5 function| windowStrategy6 function| windowStrategy7 function| windowStrategy8 function| windowStrategy9 function| windowStrategy10 function| windowStrategy11 function| fullPopupStrategy function| fullWindowLeftAlignStrategy object| windowInstallModule object| audioModule object| ele object| google_conversion_settings object| gemini_conversion_settings object| fb_conversion_settings undefined| conversionJs function| handleBackwardCompatible function| getLandingImpressionCount function| addExtraParamToPixels function| disableLoggingForProduction function| setOriginIfUndefined function| getCrossPromoteSettings function| injectLanderDomainIframeIfSuccess function| updateSuccessPixelsIfAlias function| checkUrlDomain function| checkIfWorkerCacheEnabled function| getUrlComponents function| getDomainFromCurrentCalledResource function| loadJSAsyncOnHead function| loadJsSync function| includeBlueBird function| ModifyAndAppendInIframe function| ModifyAndAppendInDiv function| showArrowInIframe function| ModifyAndAppendArrowData function| fetchArrow function| getDynamicFunction function| appendDivToBody function| showDynamicOverlay function| decideShow function| getGAId function| getDataLayerVariablesJson function| jsonToUrlParam function| replaceEvents function| fireSafePixels function| setLanderTitle function| getResolvedParam function| get_browser function| firePixelUsingLocalStorageParams function| getPixelsUsingLocalStorageParams function| getEventTag function| getAllParam function| sendError function| delete_cookie function| firePixels function| promiseToFirePixel function| promiseToFireAllPixels function| checkAndFireJsEvents function| daisyChainedFirePixelsPromise function| daisyChainedFirePixels function| daisyChainedFirePixelsOld function| isDebugging function| isForcedInstall function| loadUUID function| addUUIDToFeatureMapping function| incognitoCheck function| appendParamsToSuccessUrl function| preProcessIfWorkerCacheEnabled function| getUpsellDataIfEnabled function| formSuccessUrl function| removeDuplicateFieldsFromQueryString function| getSuccessUrl function| encodeCategory function| handleNewTabOpenForSkip function| constructMessageSuccessPage function| getAppendChar function| checkIsSkipForDual function| getDomainFromLink function| getPathFromLink function| handleRedirection function| getIsDraft function| getCookie function| covertParamMap function| getParameterByName function| getFeatureMappingFromCookie function| getExtraDataFromCookie function| getPrimaryDataFromCookie function| getSecondaryDataFromCookie function| getAllParamsFromUrl function| getParameterByNameFromUrl function| getUpperLevelDomain function| firePixelGen function| isExternalLander function| updateDimensionValue function| getFmKeys function| getPathNameFromUrl function| createCookie function| isLoadedInNewtab function| saveCookieDataForSync function| checkChurnUser function| checkIfAlreadyInstalled function| getInstalledExtIdsFromLs function| isAnyExtensionOnDomainInstalled function| checkIfInstalledUsingCookie function| checkDuplicate function| removeCrossPromoteData function| swapCrossPromoteData function| isValidInstallResponseData function| detectInstalledCrossSells function| removeRtempAndAudio function| replaceHostNameInUrl function| removeParameterFromUrl function| overrideParamsInSuccessurl function| updateSuccessurlWithOverrideParams function| addCurrentInstalledExtsInSuccess function| trimChar function| loadAckIfInIframe function| syncUsingUrl function| updateCookieParam function| thanksForOs function| replaceInstalledExtsInSuccessurl function| fetchAlternativeExtension function| detectRetarget function| detectDuplicateForGtm function| compressObj function| getKafkaPixels function| getUrlMap function| getExtensionAbbr function| replaceMacros function| appendGdprStatus function| getCurrentInstalledExtensions function| getAllInstalledExtensions function| getAllInstalledExtensionNames function| getAllInstalledDomains function| handleArrayParams function| propogateInstalledExtensionsData function| getQueryString function| getPixels function| getTypeTagParam function| getChromeStoreId function| isValidEdgeChromium function| updateSuccessUrlWithIsEs function| getChromeStoreUrl function| ffInstallSuccessHandler function| getFirefoxSuccessDelayTimeout function| isMacAndFf function| addFirefoxConfigurationOverlay function| handleFirefoxClicksOverlays function| handleFirefoxSuccessRedirection function| redirectToSuccessForFf function| isFirefoxRepeatInstall function| hideOverlayShowCancel function| ieDownloadWindowCloseHandler function| ieDownloadWindowFocusHandler function| showAndPositionIeArrow function| getSafariDownloadUrl function| getArrowForBrowser function| getIeBaseUrl function| getInstallationDate function| getUserId function| getUUID function| getAppNexusId function| getCookieJson function| getCanvasFingerprint function| userProfileJson function| onInstallActionSuccess function| onInstallActionFailure function| getNextActiveExtAndInstall function| showFailureOverlay function| cacheOverlayImages function| pixelShortenerGen function| pixelShortener function| getOtherBucketData function| updateReferrerTag function| restoreOriginReferrer function| getActivationSourceBucket function| updateSuccessUrlWithDcAndAffid function| getInstallSource function| getFilteredSuccessPixels function| appendParameterInUrl function| appendFirstLoadData function| blockRef function| promiseToShortenSuccessUrl function| shortenSuccessurlAndSyncCookiesToAlias function| checkandMarkIfDuplicate function| inIframe function| redirectIfIframe function| handleInstallWithDaisyPixels function| setDistributionConfigCookies function| promiseToSyncCookiesToAlias function| getCookieForSync function| getUrlFromObj function| getOS function| isValidOs function| checkIfWebbar function| isBlockedBrowser function| isValidChromeMachine function| isAliasDomain function| getExtensionDomainForRequest function| getCurrentDomainIfAlias function| getExtHostName function| isValidFireFoxMachine function| isValidIEMachine function| isValidEdgeMachine function| isValidSafariMachine function| isValidAndroidMachine function| isBlockedRequest function| Oe0cSkIaL1KiIfV function| mmwkqsEij9GqgnR function| storeFirstLoadData function| encodeIfNotEncoded function| replaceParameterValue function| replaceParameterValueOnlyIfPresent function| getAndForwardWidgetData function| isValidRtempData function| decideHeightForFixedSize function| decideWidthForFixedSize function| getWindowPositioningCalculations function| getWindowPositionCalculationsForIe function| checkWindowInFocus function| showAndPostionArrows function| openCenteredInstallWindow function| injectIframeWithReloadInterval function| injectIframeForPollingExtension function| openNewWindowAndAttachCloseListener function| detectNewTabClosed function| isWindowFlow function| showRtempIfNonPopUpFlow function| disableInstallWindowsForSmallScreens function| updateOverlayUrlIfredirectToChromeStoreOnAudioCompletion function| preprocessingIfredirectToChromeStoreOnAudioCompletion function| openSmallWindow function| openChromeStoreInNewWindow function| getArrowKey function| setupDuplicateDetectListener function| handleChromeStoreRedirect function| isCrossPromoteParamsPresent function| openWindowWithSuccessurl function| openNewTabWithSuccessurl function| redirectToChromestoreCompleted function| decideTwoStepOverlay function| injectIframe function| updateSuccessUrlWithCta function| containsProtocol function| onInstallAction function| onWebbarInstallAction function| firePixelAndSyncIfAlias function| triggerJsEvent function| getWellFormedUrl function| sendToUpsell function| getAppendedParamsForUnsupported function| mergeJson function| getUpsellUrl function| loadAppNexusId function| initAmplitude function| createPixelInIe function| handleSendToChromeStoreRedirect function| handleDirectWebbarDownload function| isValidSendToChromeStoreFlow function| isValidSendToWebbarDownloadFlow function| isEmptyString function| handleAlreadyInstalledUserOnload function| sendToChromeStore boolean| js/landing.js string| rtempKeyname string| rtempTimeoutKeyName object| analyticsUtil object| fm_sync_keys string| upperleveldomain number| incognitoStatus object| pixels string| strippedUrl number| isRtempLoaded undefined| rtempData function| getRtemp function| showRtemp function| decideOverlaySelector function| positionAndShowArrow function| isValidArrowSwapMessage function| getAndSwapOverlay function| showCpRtempWithTimeout number| bannerData number| secondaryBannerData undefined| linkData function| getBanner function| getSecondaryBanner function| getLinks function| attachBannerToDiv function| showBanner function| attachExitListener function| getAndSwapCancelInterstitial function| ccpaOptoutMD5 object| idCookies object| domainLocalStorageInclusionList object| extensionLocalStorageInclusionList object| extensionLocalStorageExclusionList object| requiredCookies string| DELETED_VALUE function| listCookies function| getCookies function| getUpperLevelDomainForCcpa function| removeCookieForCcpa function| deleteAllCookies function| getPIData function| processValue function| deleteAllUserLocalStorageData function| getLocalStoragePIData function| getCookiesPIData function| getExtnPIData function| getExtensionData function| setExtensionData function| loadFromLocalStorage function| loadToLocalStorage function| processExtensionData function| processLocalStorageData function| setCcpaCookie function| getCcpaCookie function| firePixelForOptout function| optoutCustomFirePixel function| getParams function| getAppendCharForCcpa function| setIndexedDbEntryForPushWorker function| markOptout function| executeOptoutOnWebpush function| markOptoutOnWebpush function| deleteAllUserData function| userOptin object| landerHelperFunctions string| __browser function| getNewtabScreenshotUrl function| replaceDisclaimers function| __addClass function| displayScreenShots function| getTopicMashupDomain function| getScreenshotDomain function| getRootDomain function| isValid function| isNotEmpty function| makeAjaxRequest function| returnPackageCallback function| continuousTrack function| startPackageTrack object| dynamicDataGetters function| migrationLanderOpenInIframe6 Cookies
Cookies are little pieces of information stored in the browser of a user. Whenever a user visits the site again, he will also send his cookie values, thus allowing the website to re-identify him even if he changed locations. This is how permanent logins work.
Domain/Path | Expires | Name / Value |
---|---|---|
.weatheronlinenow.com/ | Name: installationUrl Value: https://www.weatheronlinenow.com/ |
|
.weatheronlinenow.com/ | Name: userId Value: v2_deprecated_notinuse |
|
www.weatheronlinenow.com/ | Name: implId_idcadicmhohflbfmmalmmgpniifhhipf Value: Zmxvd193ZWF0aGVyX3RvcGtleXdvcmRzX2F1dG9zdWdnZXN0 |
|
.weatheronlinenow.com/ | Name: extraData Value: %7B%22%23category_id%23%22%3A%2274%22%2C%22%23child_app_id%23%22%3A%2213580%22%2C%22%23extension_abbr%23%22%3A%22localweather%22%2C%22%23manifest_name%23%22%3A%22Weather%20Online%20Now%20BETA%20EXTENSION%22%2C%22%23serp_geo_redirect%23%22%3A%22yes%22%7D |
|
.weatheronlinenow.com/ | Name: eu_user Value: yes |
|
.weatheronlinenow.com/ | Name: featureMapping Value: %7B%22affid%22%3A%22tagX1245355-localweather%22%2C%22landingurlregex%22%3A%226mexs%22%2C%22se1%22%3A%221%22%2C%22successurl%22%3A%22%22%2C%22extensionOpenTabMode%22%3A%22landerOverride%22%2C%22redirectToStore%22%3A%221%22%2C%22domain%22%3A%22www.weatheronlinenow.com%22%2C%22version%22%3A%2216%22%2C%22trfsrc%22%3A%22dGFnWDEyNDUzNTUtbG9jYWx3ZWF0aGVy%22%2C%22landingDomain%22%3A%22www.weatheronlinenow.com%22%2C%22chromeStoreId%22%3A%22idcadicmhohflbfmmalmmgpniifhhipf%22%2C%22t1%22%3A%22d41d8cd98f00b204e9800998ecf8427e%22%7D |
Indicators
This is a term in the security industry to describe indicators such as IPs, Domains, Hashes, etc. This does not imply that any of these indicate malicious activity.
ajax.googleapis.com
fonts.googleapis.com
fonts.gstatic.com
www.weatheronlinenow.com
2606:4700:3037::6815:3495
2a00:1450:4001:809::200a
2a00:1450:4001:82a::2003
2a00:1450:4001:82a::200a
0fcd6e037e45bc986808d48092bef6fe3da07d9d996ebd9b1282010cc506ba48
13bfb71afc2c319518239b05a8419374e79c70496a619877c9d1674c3552a034
160a426ff2894252cd7cebbdd6d6b7da8fcd319c65b70468f10b6690c45d02ef
1bf142a78e5e31ce4026c3e5efae935cf82185c676fd42617786600693ada879
48398cf13bbbd4ccf777cb6cc3533495e9f5f182202276a5133b72188487f77f
5c82dfb8b5378e57943f947266dea1f62f2e79d7192f3867a72106045c5cfdf4
5db683e1f20a89c1e0efe65e268d8e958844829365d532fa603a644952477cb6
7fbd86fa22c95291268e4746229c716f26229410ffeafb3d7fecb66454fa89ed
8f2bb788544f2794b591ede5e31c8a30cbddd2a9d69f3225b094654f20e44a0f
9338e65fc077355c7a87ae0d64cc101e23b9bf8ad78ae65f0f319c857311b526
95b7413d91c07b6f1c6f1d50a300a6296372fea25688f134bab3f196c655fe6a
ac14c149b5059dcf0016203532ba4476826fcbe8dd480dd891f4dbb23dfa8cab
ae919a7c9f25f0fd97fc18e398ae8e453fcaae487e4a4cb4f896e7fecde4a780
b1442e85b03bdcaf66dc58c7abb98745dd2687d86350be9a298a1d9382ac849b
d717c82e6d9a2e84795d28b352ee08431849df0dc77d4d0236badbd1067bb0b7
f1bf804a93ecb7ddab023f663b235611318dc1158ef8a679f7679c7a676eec28
f5e3138dd1abc526edb87846f62b06c3af0e843cbdade2372388f9b9aa58fd44