Jump to content

sagnik

Members
  • Posts

    472
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by sagnik

  1. No, see, I'm currently trying to setup the WS server on my localhost using Apache & PHP on Windows
  2. @Krydos If I disable apache then how can I connect to the Websocket as a client?
  3. And also I need to fix the errors with the WS server. I can't retrieve the headers needed to upgrade the request. Check the headers printed: I've found some errors in the Apache log file: [Thu Mar 21 15:58:36.854208 2024] [proxy:error] [pid 521884:tid 10728] (20014)Internal error (specific information not available): [client 192.168.0.10:51010] AH01084: pass request body failed to 192.168.0.10:9443 (netmate.com) [Thu Mar 21 15:58:36.854208 2024] [proxy:error] [pid 521884:tid 10728] [client 192.168.0.10:51010] AH00898: Error during SSL Handshake with remote server returned by /ws/ [Thu Mar 21 15:58:49.946711 2024] [proxy_wstunnel:trace1] [pid 521884:tid 10720] mod_proxy_wstunnel.c(51): [client 192.168.0.10:51169] canonicalising URL //netmate.com:9443 [Thu Mar 21 15:58:49.947709 2024] [proxy_http:debug] [pid 521884:tid 10720] mod_proxy_http.c(1967): [client 192.168.0.10:51169] AH01113: HTTP: declining URL wss://netmate.com:9443/ [Thu Mar 21 15:58:49.947709 2024] [proxy_wstunnel:debug] [pid 521884:tid 10720] mod_proxy_wstunnel.c(321): [client 192.168.0.10:51169] AH02451: serving URL wss://netmate.com:9443/ [Thu Mar 21 15:58:49.947709 2024] [proxy_wstunnel:trace2] [pid 521884:tid 10720] mod_proxy_wstunnel.c(126): [client 192.168.0.10:51169] sending request [Thu Mar 21 16:08:49.948173 2024] [proxy:error] [pid 521884:tid 10720] (20014)Internal error (specific information not available): [client 192.168.0.10:51169] AH01084: pass request body failed to 192.168.0.10:9443 (netmate.com) [Thu Mar 21 16:08:49.948173 2024] [proxy:error] [pid 521884:tid 10720] [client 192.168.0.10:51169] AH00898: Error during SSL Handshake with remote server returned by /ws/
  4. Is there any way to set up WebSocket servers in PHP without using third-party WebSocket services (i.e. socket.io)?
  5. Okay, everything is working as it should be except the domain 'sgnetworks.in.eu.org'
  6. @wolstech Sorry, I don't get time to manage all these things, that's the reason for getting my account suspended/archived frequently. Anyway, can you restore the DNS records?
  7. Hi, I've updated my DNS records for my domain to point to ns1.heliohost.org & ns2.heliohost.org but still I'm unable to access my domain. You can check the DNS audit at https://www.dns.computer/dns/sgnetworks.in.eu.org/1vcxnd Screenshot of EU.ORG NIC portal: Screenshot of ClouDNS portal:
  8. I don't know what happened. Maybe it was a glitch in the account renewal script. Now I can log in to my account without any issues. Thanks for your help @Unknown025
  9. Hi, I've not logged into my account for a very long time but now I'm unable to restore access to my account. My username is: sgn
  10. Okay, I understand. First of all, let me try them if any of the websites aren't working properly as they should be then I'll let you know about it, till then let them be as it is.
  11. Okay, but, if I couldn't change the document root, I will have to rewrite all the scripts relying on it.
  12. Okay, but can you add the subdomains of sgsoft.in.eu.org: android.sgsoft.in.eu.org console.sgsoft.in.eu.org dev.sgsoft.in.eu.org store.sgsoft.in.eu.org By removing the following domains: questry.in.eu.org ceramic.eu.org For the document roots, I'm unable to change those values as there's no option to change this. I somehow need to match it like /home/sgn/public_html instead of "/htdocs/". And one more thing, how can the domain "sgads.eu.org" resolve perfectly, I mean, I've not set the DNS to 'HelioHost" yet. And previously, when Heliohost was using cPanel as a control panel, I had to use "ClouDNS" to set the nameservers. But this time the nameservers were not even set to point to Heliohost nameservers.
  13. Okay fine. Here's the list: The domains: sgnetworks.in.eu.org estatehunt.in.eu.org sgads.in.eu.org sgsoft.in.eu.org questry.in.eu.org ceramic.eu.org The subdomains: cdn.sgnetworks.in.eu.org accounts.sgnetworks.in.eu.org myaccount.sgnetworks.in.eu.org erp.estatehunt.in.eu.org rsm.estatehunt.in.eu.org cms.estatehunt.in.eu.org android.sgsoft.in.eu.org console.sgsoft.in.eu.org dev.sgsoft.in.eu.org store.sgsoft.in.eu.org Document roots to be set for the domains: sgnetworks.in.eu.org : /{{home_dir}}/sgn/public_html estatehunt.in.eu.org : /{{home_dir}}/eh/public_html sgads.in.eu.org : /{{home_dir}}/sga/public_html sgsoft.in.eu.org : /{{home_dir}}/sgs/public_html questry.in.eu.org : /{{home_dir}}/questry/public_html ceramic.eu.org : /{{home_dir}}/ceramic/public_html Document roots to be set for the subdomains: cdn.sgnetworks.in.eu.org : /{{home_dir}}/sgn/public_html/cdn/ accounts.sgnetworks.in.eu.org : /{{home_dir}}/sgn/public_html/accounts/ myaccount.sgnetworks.in.eu.org : /{{home_dir}}/sgn/public_html/myaccount/ erp.estatehunt.in.eu.org : /{{home_dir}}/eh/public_html/erp/ rsm.estatehunt.in.eu.org : /{{home_dir}}/eh/public_html/rsm/ cms.estatehunt.in.eu.org : /{{home_dir}}/eh/public_html/cms/ android.sgsoft.in.eu.org : /{{home_dir}}/sgsoft/public_html/android/ console.sgsoft.in.eu.org : /{{home_dir}}/sgsoft/public_html/console/ dev.sgsoft.in.eu.org : /{{home_dir}}/sgsoft/public_html/dev/ store.sgsoft.in.eu.org : /{{home_dir}}/sgsoft/public_html/store/ And if the list of domains and subdomains exceeds the limit of 10 domains in total, then skip the following domains: sgads.in.eu.org questry.in.eu.org ceramic.eu.org And all the subdomains of sgsoft.in.eu.org.
  14. @Krydos did you added the subdomains as well? And you said that, I've a limit of 10 domains, so can you add the remaining 2 domains as well? If yes, then just read the quoted message, which properly states what I need.
  15. Well, if it affects the performance of the server then it's fine to not add all of the domains but I need the following domains to be added: sgnetworks.in.eu.org estatehunt.in.eu.org sgsoft.in.eu.org And all the subdomains listed for the above domains but you may skip the subdomains starting with 'erp, cms, rsm, dev, console'.
  16. Hi! I'm totally new to Plesk, so I might be missing something. But anyway, I need to add the following domains as add-ons: sgnetworks.in.eu.org estatehunt.in.eu.org sgads.in.eu.org sgsoft.in.eu.org questry.in.eu.org ceramic.eu.org And the following subdomains: cdn.sgnetworks.in.eu.org accounts.sgnetworks.in.eu.org myaccount.sgnetworks.in.eu.org erp.estatehunt.in.eu.org rsm.estatehunt.in.eu.org cms.estatehunt.in.eu.org android.sgsoft.in.eu.org console.sgsoft.in.eu.org dev.sgsoft.in.eu.org store.sgsoft.in.eu.org And I need to park sgnetworks.in.eu.org on the main domain sgnetworks.heliohost.us. Also, I need to change the document root to be set to match the Apache HTTPD document root "/home/user/public_html". For erp.estatehunt.in.eu.org : /{{home_dir}}/eh/public_html (preferred) or /{{home_dir}}/sgn/eh/public_html or /{{home_dir}}/sgn/public_html/eh/public_html : {{user}} = sgn {{addonuser}} = eh {{subuser}} = erp Document roots to be set: sgnetworks.in.eu.org (for main domain): /{{home_dir}}/sgn/public_html estatehunt.in.eu.org : /{{home_dir}}/eh/public_html (preferred) or /{{home_dir}}/sgn/eh/public_html or /{{home_dir}}/sgn/public_html/eh/public_html sgads.in.eu.org : /{{home_dir}}/sga/public_html (preferred) or /{{home_dir}}/sgn/sga/public_html or /{{home_dir}}/sgn/public_html/sga/public_html sgsoft.in.eu.org : /{{home_dir}}/sgs/public_html (preferred) or /{{home_dir}}/sgn/sgs/public_html or /{{home_dir}}/sgn/public_html/sgs/public_html questry.in.eu.org : /{{home_dir}}/questry/public_html (preferred) or /{{home_dir}}/sgn/questry/public_html or /{{home_dir}}/sgn/public_html/questry/public_html ceramic.eu.org : /{{home_dir}}/ceramic/public_html (preferred) or /{{home_dir}}/sgn/ceramic/public_html or /{{home_dir}}/sgn/public_html/ceramic/public_html For all subdomains: if it's set to /{{home_dir}}/{{addonuser}}/public_html/{{subuser}} (preferred) or /{{home_dir}}/sgn/public_html/{{addonuser}}/{{subuser}} or /{{home_dir}}/sgn/public_html/{{addonuser}}/public_html/{{subuser}}, for example, erp.estatehunt.in.eu.org : /{{home_dir}}/eh/public_html/erp (preferred) or /{{home_dir}}/sgn/public_html/eh/erp or /{{home_dir}}/sgn/public_html/eh/public_html/erp
  17. See, I'm using this account here for almost 5-6 years which has almost 452 posts till now, if you merge the duplicate account will it affect to this account negatively? If yes, then don't merge the account.
  18. Okay, so I can create an account and move back to Tommy at some point. And one more thing, I've just checked, I'm not able to do some operations (I don't remember which one) in Helionet due to my current rank, but currently I've 451 posts and I'm still a Rank I member. Previously (before the rejuvenation of Helionet, I was a Rank VII member). Is there any way to fix this?
  19. Hi, I've received an invitation on Johnny but I had an account on Tommy.
  20. 29 const forEach = (obj, callback) => { ~~~~~ Here's the part of the code: /** * Performs the specified action for each element in an object. * * @param {Object} obj * @param {(value:any, key:string)=>void} callback A function that accepts up to three arguments. forEach calls the <b><i>callback</i></b> function one time for each element in the object. */ const forEach = (obj, callback) => { let value; //context = context || this; //apply the function to 'this' by default for(const key in obj) { if(key !== 'length' && obj.hasOwnProperty(key)) { //to rule out inherited properties value = obj[key]; if(typeof callback === 'function') callback(value, key); } } } /** * Appends new elements to the end of an object, and returns the new length of the object. * @param {Object} obj * @param {...any} items New elements to add to the object. */ const push = (obj, ...items) => { let k = obj.length || 0; items.forEach((value) => { obj[k] = value; k++; obj.length = k; }); } const SGNUIKit = { isReady: false, isInit: false, isPreloaderHeld: false, configs: { 'urls': { 'api': { 'geonames': 'https://secure.geonames.org/', 'osm': 'https://nominatim.openstreetmap.org/' }, }, 'api': { 'geonames': '' //username }, 'geocoding': { 'defaultAPI': 'osm' } }, components: {}, onChangeListener: {}, onInitListener: {}, onReadyListener: {}, callCounts: { 'init': 0, 'ready': 0, 'config': 0, 'component': 0, 'holdPreloader': 0, }, /** * This callback is called when a component is loaded/removed or the status of readiness is changed. * * @callback SGNUIKitChangeCallback * @param {string} state The name of the state which is changed. * @param {boolean|JSON} value The value of the state which is changed. * @param {JSON} components The <b><i>JSON</i></b> object of loaded <b>SGNUIKit</b> components, or an empty <b><i>JSON</i></b> object if no components loaded. */ /** * This callback is called when <b>SGNUIKit</b> is ready. * * @callback SGNUIKitReadyCallback * @param {boolean} isReady the status of readiness of <b>SGNUIKit</b>. */ /** * Add a loaded <b>SGNUIKit</b> component. * * @param {{}} config The <b><i>JSON</i></b> object of the <b>SGNUIKit</b> configuration options. */ set config(config) { if(config !== undefined && config !== null && config !== "") { this.configs = new SGNUKConfig(config); this.callCounts.config++; forEach(this.onChangeListener, (listener) => listener("config", config, this.configs)); } }, /** * Get the list of loaded <b>SGNUIKit</b> components. * * @return {Object} The <b><i>JSON</i></b> object of loaded <b>SGNUIKit</b> components, or an empty <b><i>JSON</i></b> object if no components loaded. */ get config() { return this.configs; }, /** * Add a loaded <b>SGNUIKit</b> component. * * @param {{}} value The <b><i>JSON</i></b> object of the loaded <b>SGNUIKit</b> component. */ set component(value) { if(value !== undefined && value !== null && value !== "") { Object.assign(this.components, value); this.callCounts.component++; forEach(this.onChangeListener, (listener) => listener("components", value, this.components)); //this.onChangeListener.forEach((listener) => listener("components", value, this.components)); } }, /** * Get the list of loaded <b>SGNUIKit</b> components. * * @return {object} The <b><i>JSON</i></b> object of loaded <b>SGNUIKit</b> components, or an empty <b><i>JSON</i></b> object if no components loaded. */ get component() { return this.components; }, /** * Check if a <b>SGNUIKit</b> component is loaded. * * @param {string|number} id The <i>ID</i> of the <b>SGNUIKit</b> component to check. */ isComponentLoaded: function(id) { return this.components.hasOwnProperty(id); }, /** * Set the status of readiness of <b>SGNUIKit</b>. * * @param {boolean} isInit The the status of readiness of <b>SGNUIKit</b>. */ set init(isInit) { this.isInit = isInit; this.callCounts.init++; forEach(this.onChangeListener, (listener) => listener("init", this.isInit)); if(isInit) forEach(this.onInitListener, (listener) => listener(isInit)); }, /** * Get the status of readiness of <b>SGNUIKit</b>. * * @return {boolean} <b><i>TRUE</i></b> if <b>SGNUIKit</b> is ready, <b><i>FALSE</i></b> otherwise. */ get init() { return this.isInit; }, /** * Set the status of readiness of <b>SGNUIKit</b>. * * @param {boolean} isReady The the status of readiness of <b>SGNUIKit</b>. */ set ready(isReady) { this.isReady = isReady; this.callCounts.ready++; forEach(this.onChangeListener, (listener) => listener("ready", this.isReady)); //this.onChangeListener.forEach((listener) => listener("ready", this.isReady)); if(isReady) forEach(this.onReadyListener, (listener) => listener(isReady)); //this.onReadyListener.forEach((listener) => listener(isReady)); }, /** * Get the status of readiness of <b>SGNUIKit</b>. * * @return {boolean} <b><i>TRUE</i></b> if <b>SGNUIKit</b> is ready, <b><i>FALSE</i></b> otherwise. */ get ready() { return this.isReady; }, /** * Hold the <b>SGNUIKit</b> preloader even after <b>SGNUIKit</b> has finished loading the components. * * @param {boolean} hold The the status of readiness of <b>SGNUIKit</b>. */ set holdPreloader(hold) { this.isPreloaderHeld = hold; this.callCounts.holdPreloader++; forEach(this.onChangeListener, (listener) => listener("holdPreloader", this.isPreloaderHeld)); //this.onChangeListener.forEach((listener) => listener("holdPreloader", this.isPreloaderHeld)); }, /** * Get the status of readiness of <b>SGNUIKit</b>. * * @return {boolean} <b><i>TRUE</i></b> if <b>SGNUIKit</b> is ready, <b><i>FALSE</i></b> otherwise. */ get holdPreloader() { return this.isPreloaderHeld; }, /** * Set the handler for <b>SGNUIKit</b> <b><i>OnChange</i></b> event, which will be triggered when a component is loaded/removed or the status of readiness is changed. * * @param {SGNUIKitChangeCallback}listener * @param {string|number}[id=undefined] */ setOnChangeListener: function(listener, id) { if(typeof id !== 'string' || $.isNumeric(id)) this.onChangeListener[id] = listener; else push(this.onChangeListener, listener); }, /** * Set the handler for <b>SGNUIKit</b> <b><i>OnReady</i></b> event, which will be triggered when the <b>SGNUIKit</b> is ready. * * @param {SGNUIKitReadyCallback}listener * @param {string|number}[id=undefined] */ setOnInitListener: function(listener, id) { if(typeof id !== 'string' || $.isNumeric(id)) this.onInitListener[id] = listener; else push(this.onInitListener, listener); if(this.init) forEach(this.onInitListener, (listener) => listener(this.isInit)); }, /** * Set the handler for <b>SGNUIKit</b> <b><i>OnReady</i></b> event, which will be triggered when the <b>SGNUIKit</b> is ready. * * @param {SGNUIKitReadyCallback}listener * @param {string|number}[id=undefined] */ setOnReadyListener: function(listener, id) { if(typeof id !== 'string' || $.isNumeric(id)) this.onReadyListener[id] = listener; else push(this.onReadyListener, listener); if(this.ready) forEach(this.onReadyListener, (listener) => listener(this.isReady)); //this.onReadyListener.forEach((listener) => listener(this.ready)); }, }; window.SGNUIKit = SGNUIKit; if(typeof jQuery === 'undefined') { // EMBED JQUERY } /*** * @return {SGNUKConfig} */ const SGNUKConfig = function(config) { const plugin = this; const _defaults = { 'urls': { 'api': { 'geonames': 'https://secure.geonames.org/', 'osm': 'https://nominatim.openstreetmap.org/' }, } } plugin.config = { 'api': { 'geonames': undefined //username }, 'geocoding': { 'defaultAPI': 'osm' } } const init = () => { plugin.config = Object.assign(plugin.config, config); plugin.config = Object.assign(plugin.config, _defaults); } init(); return plugin; }; ((callback) => { const head = document.head || document.getElementsByTagName("head")[0], style = document.createElement("style"); const currentScript = document.currentScript || document.querySelector("script[src*=\"SGNUIKit.loader.js\"]"); let preloader = `\t\t\t<div class="preloader">\n`; //OTHER CODES HERE head.appendChild(style); preloaderElem.innerHTML = preloader; window.onload = function() { document.body.classList.add("has-preloader"); document.body.insertBefore(preloaderElem, document.body.firstChild); if(typeof callback === 'function') callback(); }; })(() => { (async precallback => { const title = document.title; if(title !== undefined) document.title = "Loading..."; if(window.jQuery) $.holdReady(true); //OTHER CODES HERE async function finishLoad() { progress = (filestoload > 0) ? Math.round((filesloaded * 100) / filestoload) : 100; await new Promise(resolve => { if(filesloaded >= filestoload) { resolve(); } }).then(function() { document.querySelector('head > title').innerHTML = title; if(typeof precallback === "function" && progress === 100) precallback(); }); } })(function() { (async callback => { (() => { const startLoad = new Promise(async function(resolve) { await loadStyle(0); await loadScript(0); if(loaded === total) resolve(); }); startLoad.then(() => { finishLoad(); }); })(); async function finishLoad() { const progress = Math.round((loaded * 100) / total); await new Promise(resolve => { if(loaded === total) { resolve(); } }).then(function() { if(typeof callback === "function") callback(loaded, total, progress); }); } })((loaded, total, progress) => { if(progress === 100) { SGNUIKit.init = true; const styles = document.querySelector("style#sgn-uikit-styles"); const left = document.querySelector("style[data-cke=\"true\"]"); if(left !== null) left.parentNode.removeChild(left); if(styles !== null) styles.parentNode.removeChild(styles); $.holdReady(false); jQuery.ready(); } }); }); (() => { SGNUIKit.setOnChangeListener((prop, value) => { if(prop === 'holdPreloader') { if(SGNUIKit.init && !value) { finalize(true); } } else { if(prop === 'init' && value) { finalize(false); } } }, 'sgn-uk-prop-change-listener'); })(); }); tsconfig.json { "include": [ //"./src/addons/*.js", "./src/js/*.js" ], "compilerOptions": { "outDir": "./dist/lib", "declarationDir": "dist/types", "target": "ES6", "module": "ES6", "moduleResolution": "Classic", "strictPropertyInitialization": false, "esModuleInterop": true, "noImplicitAny": true, "noImplicitReturns": true, "noImplicitThis": true, "allowSyntheticDefaultImports": true, "removeComments": true, "allowJs": true, "checkJs": true, "strict": false, "skipLibCheck": true, "allowUmdGlobalAccess": true, "alwaysStrict": true, "useDefineForClassFields": true, // Generate d.ts files "declaration": true, // only output d.ts files "emitDeclarationOnly": true, "declarationMap": true, //"types": [], "typeRoots": [ "./src/types" ] }, "exclude": [ "node_modules", "./node_modules", "./node_modules/*", "./node_modules/@types/node/index.d.ts", ".backup", ".github", "build", "demos", "dist", "docs", "release" ] }
  21. Hi, I'm trying to sort an array of colors based on their group/category. But, unfortunately, the sorted colors are not linear. So here's some codes for your reference. Function: sortColors: function sortColors($colors) { $s = $hue = $sat = $val = $final = []; foreach($colors as $k => $info) { $color = $info['hex']; $hex = strtolower(str_replace('#', '', $color)); $info['hex'] = $hex; $colors[$k] = $info; list($r, $g, $b) = str_split($hex, 2); $r = hexdec($r); $g = hexdec($g); $b = hexdec($b); //$s[$k] = rgbtohsv($r, $g, $b); $s[$k] = rgbToHsl($r, $g, $b); $info['hex'] = "#$hex"; } //Split each array up into H, S and V arrays foreach($s as $k => $v) { $hue[$k] = $v['h']; $sat[$k] = $v['s']; $val[$k] = $v['l']; //$val[$k] = $v['v']; } $r = $s; $keys = array_keys($r); uasort( $r, function($a, $b) { if(!huesAreinSameInterval($a['h'],$b['h'])){ if ($a['h'] < $b['h']) return -1; if ($a['h'] > $b['h']) return 1; } if ($a['s'] < $b['s']) return -1; if ($a['s'] > $b['s']) return 1; if ($a['l'] < $b['l']) return 1; if ($a['l'] > $b['l']) return -1; return 0; } ); $i = 0; foreach($r as $k => $hsv) { $info = $colors[$k]; $hex = $info['hex']; $info['hex'] = "#$hex"; $info['hsv'] = $hsv; $final[] = $info; $i++; } return $final; } Input Array of Colors: Array ( [0] => Array ( [name] => Black [hex] => #000000 ) [1] => Array ( [name] => White [hex] => #FFFFFF ) [2] => Array ( [name] => Red [hex] => #FF0000 ) [3] => Array ( [name] => Red Devil [hex] => #860111 ) [4] => Array ( [name] => Pink [hex] => #FFC0CB ) [5] => Array ( [name] => Blue [hex] => #0000FF ) [6] => Array ( [name] => Lavender Blue [hex] => #CCCCFF ) [7] => Array ( [name] => Mint Green [hex] => #98FF98 ) [8] => Array ( [name] => Lincoln Green [hex] => #195905 ) [9] => Array ( [name] => Electric Yellow [hex] => #FFFF33 ) ) Output of the Sorted Array: Array ( [0] => Array ( [name] => White [hex] => #ffffff [rgb] => Array ( [r] => 255 [g] => 255 [b] => 255 ) [hsl] => Array ( [h] => 0 [s] => 0 [l] => 1 ) [hsv] => Array ( [h] => 0 [s] => 0 [l] => 1 ) ) [1] => Array ( [name] => Black [hex] => #000000 [rgb] => Array ( [r] => 0 [g] => 0 [b] => 0 ) [hsl] => Array ( [h] => 0 [s] => 0 [l] => 0 ) [hsv] => Array ( [h] => 0 [s] => 0 [l] => 0 ) ) [2] => Array ( [name] => Red [hex] => #ff0000 [rgb] => Array ( [r] => 255 [g] => 0 [b] => 0 ) [hsl] => Array ( [h] => 0 [s] => 1 [l] => 0.5 ) [hsv] => Array ( [h] => 0 [s] => 1 [l] => 0.5 ) ) [3] => Array ( [name] => Electric Yellow [hex] => #ffff33 [rgb] => Array ( [r] => 255 [g] => 255 [b] => 51 ) [hsl] => Array ( [h] => 60 [s] => 1 [l] => 0.6 ) [hsv] => Array ( [h] => 60 [s] => 1 [l] => 0.6 ) ) [4] => Array ( [name] => Lincoln Green [hex] => #195905 [rgb] => Array ( [r] => 25 [g] => 89 [b] => 5 ) [hsl] => Array ( [h] => 105.71429 [s] => 0.89362 [l] => 0.18431 ) [hsv] => Array ( [h] => 105.71429 [s] => 0.89362 [l] => 0.18431 ) ) [5] => Array ( [name] => Mint Green [hex] => #98ff98 [rgb] => Array ( [r] => 152 [g] => 255 [b] => 152 ) [hsl] => Array ( [h] => 120 [s] => 1 [l] => 0.79804 ) [hsv] => Array ( [h] => 120 [s] => 1 [l] => 0.79804 ) ) [6] => Array ( [name] => Lavender Blue [hex] => #ccccff [rgb] => Array ( [r] => 204 [g] => 204 [b] => 255 ) [hsl] => Array ( [h] => 240 [s] => 1 [l] => 0.9 ) [hsv] => Array ( [h] => 240 [s] => 1 [l] => 0.9 ) ) [7] => Array ( [name] => Blue [hex] => #0000ff [rgb] => Array ( [r] => 0 [g] => 0 [b] => 255 ) [hsl] => Array ( [h] => 240 [s] => 1 [l] => 0.5 ) [hsv] => Array ( [h] => 240 [s] => 1 [l] => 0.5 ) ) [8] => Array ( [name] => Red Devil [hex] => #860111 [rgb] => Array ( [r] => 134 [g] => 1 [b] => 17 ) [hsl] => Array ( [h] => 352.78195 [s] => 0.98519 [l] => 0.26471 ) [hsv] => Array ( [h] => 352.78195 [s] => 0.98519 [l] => 0.26471 ) ) [9] => Array ( [name] => Pink [hex] => #ffc0cb [rgb] => Array ( [r] => 255 [g] => 192 [b] => 203 ) [hsl] => Array ( [h] => 349.52381 [s] => 1 [l] => 0.87647 ) [hsv] => Array ( [h] => 349.52381 [s] => 1 [l] => 0.87647 ) ) ) Any help will be appreciated. Thank you.
  22. Username: sgn Main Domain: sgn.heliohost.org
×
×
  • Create New...