Facebook
From lost, 1 Year ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 143
  1. <html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
  2.  <link rel="shortcut icon" href="https://cdn.discordapp.com/attachments/796452827844050975/864581299980206110/resim_25.jpg">
  3. <meta name="title" content="Adar Bor">
  4.    <meta name="description" content="adar bor">
  5. <meta property="og:image" content="https://cdn.discordapp.com/attachments/796452827844050975/864581299980206110/resim_25.jpg">
  6.     <meta name="theme-color" content="#000000">
  7.     <link rel="icon" type="image/png" sizes="300x250" href="https://cdn.discordapp.com/attachments/776790842504511522/858650815203770388/Untitled_design-High-Quality_1.png">  
  8.  
  9.  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.2.0/css/all.css" integrity="sha384-hWVjflwFxL6sNzntih27bfxkr27PmbbK/iSvJ+a4+0owXq79v+lsFkW54bOGbiDQ" crossorigin="anonymous">
  10.     <style>
  11.         p {
  12.     font-size: 40px;
  13.     margin:0;
  14.     letter-spacing:3px;
  15.         }
  16.     </style><link href="https://fonts.googleapis.com/css?family=Kanit" rel="stylesheet"><title>Adar Bor</title></head>
  17.    
  18.    
  19.     <body oncontextmenu="return false;" unselectable="on" onselectstart="return false;"><canvas width="913" height="789"></canvas>
  20. <iframe width="0" height="0" src="https://www.youtube.com/embed/bd-6XOJa398?rel=0&amp;autoplay=1" frameborder="0" allowfullscreen=""></iframe>
  21.     <style>
  22.             img[src*="https://cdn.rawgit.com/000webhost/logo/e9bd13f7/footer-powered-by-000webhost-white2.png"] {
  23.         display: none;}
  24.             </style>
  25.          <script type="text/javascript">
  26.         window.onkeydown = function(evt) {
  27.             if(evt.keyCode == 123 || evt.keyCode == 85 || evt.keyCode == 17 || evt.keyCode == 16 || evt.keyCode == 74 || evt.keyCode == 116 || evt.keyCode == 73) return false;
  28.         };
  29.  
  30.         window.onkeypress = function(evt) {
  31.             if(evt.keyCode == 123 || evt.keyCode == 85 || evt.keyCode == 17 || evt.keyCode == 16 || evt.keyCode == 74 || evt.keyCode == 116 || evt.keyCode == 73) return false;
  32.         };
  33.  
  34.     function disableF5(e) { if ((e.which || e.keyCode) == 116) e.preventDefault(); };
  35.     $(document).on("keydown", disableF5);
  36.     </script>
  37.     <style>
  38.     body{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;}
  39.     a {
  40.     color: inherit;
  41.         text-decoration: none !important;
  42.     }
  43.  
  44.  
  45.  
  46.     .center {
  47.     font-family: 'Montserrat', sans-serif;
  48.  
  49.  
  50.       position: fixed; /* or absolute */
  51.       top: 50%;
  52.       left: 50%;
  53.       /* bring your own prefixes */
  54.       transform: translate(-50%, -50%);
  55.           animation: fadein 3s;
  56.         -moz-animation: fadein 3s; /* Firefox */
  57.         -webkit-animation: fadein 3s; /* Safari and Chrome */
  58.         -o-animation: fadein 3s; /* Opera */
  59.     }â&#128;&#139;
  60.  
  61.     @keyframes fadein {
  62.         from {
  63.             opacity:0;
  64.         }
  65.         to {
  66.             opacity:1;
  67.         }
  68.     }
  69.     @-moz-keyframes fadein { /* Firefox */
  70.         from {
  71.             opacity:0;
  72.         }
  73.         to {
  74.             opacity:1;
  75.         }
  76.     }
  77.     @-webkit-keyframes fadein { /* Safari and Chrome */
  78.         from {
  79.             opacity:0;
  80.         }
  81.         to {
  82.             opacity:1;
  83.         }
  84.     }
  85.     @-o-keyframes fadein { /* Opera */
  86.         from {
  87.             opacity:0;
  88.         }
  89.         to {
  90.             opacity: 1;
  91.         }
  92.     }
  93.     </style>
  94.  
  95.  
  96.     <div class="center">
  97.     <center>
  98. <style>
  99.   .amcikahmet img {
  100.  
  101. border-radius: 20px;
  102.   }
  103.       </style>
  104. <div class="amcikahmet">
  105.  
  106.     <img src="https://cdn.discordapp.com/attachments/796452827844050975/864581438045159444/tumblr_o5v6ma4lKb1vrn1fxo1_500.gif">
  107.     <p>Adar Bor<br><font size="3">Website Adresim Kisa Bir Sureligine Bakimdadir. / Spyhackz.ORG</font>
  108.     </p>
  109.   </div>
  110.  
  111. <audio autoplay="" id="myaudio">
  112. <source src="https://cdn.discordapp.com/attachments/932043205858430986/932565318109368340/fam.mp3">
  113. </audio>
  114. <script>
  115.   var audio = document.getElementById("myaudio");
  116.   audio.volume = 0.5;
  117. </script>
  118.  
  119.  
  120.     <div style="letter-spacing: 3;font-size: 15;"><div id="center">
  121.                 <div class="animated fadeInDown">
  122.  
  123.                 </div>
  124.  
  125.                 <div class="animated fadeInUp">
  126.  
  127.          
  128.                         <pre><pre align="middle"> <a href="https://www.instagram.com/adardurden/" target="_blank"><i class="fab fa-instagram"></i></a> </pre></pre>
  129.                                 <center><div id="clockDisplay" class="clockStyle">08:21:19 PM</div></center>
  130.             <script>
  131.                 function renderTime() {
  132.                 var currentTime = new Date();
  133.                 var diem = "AM";
  134.                 var h = currentTime.getHours();
  135.                 var m = currentTime.getMinutes();
  136.                 var s = currentTime.getSeconds();
  137.                 setTimeout('renderTime()',1000);
  138.                 if (h == 0) {
  139.                     h = 12;
  140.                 } else if (h > 12) {
  141.                     h = h - 12;
  142.                     diem="PM";
  143.                 }
  144.                 if (h < 10) {
  145.                     h = "0" + h;
  146.                 }
  147.                 if (m < 10) {
  148.                     m = "0" + m;
  149.                 }
  150.                 if (s < 10) {
  151.                     s = "0" + s;
  152.                 }
  153.                 var myClock = document.getElementById('clockDisplay');
  154.                 myClock.textContent = h + ":" + m + ":" + s + " " + diem;
  155.                 myClock.innerText = h + ":" + m + ":" + s + " " + diem;
  156.                 }
  157.                 renderTime();
  158.             </script>
  159.                     </div>
  160.                 </div>
  161.  
  162.                           </div>
  163.     <br>
  164.     </center>
  165.     </div>
  166. <iframe width="100%" height="100%" scrolling="no" frameborder="no" allow="autoplay" src="https://www.youtube.com/embed/bd-6XOJa398"></iframe>
  167.     <script type="text/javascript">
  168.     var audio = document.getElementById("audio");
  169.  
  170.     function pVid() {
  171.         audio.paused ? audio.play() : audio.pause();
  172.     }
  173.     </script>
  174.  
  175.     <style>
  176.     html, body {
  177.       overflow: hidden;
  178.       color: #fefeff;
  179.     }
  180.     body {
  181.       margin: 0;
  182.       position: absolute;
  183.       width: 100%;
  184.       height: 100%;
  185.     }
  186.     canvas {
  187.       width: 100%;
  188.       height: 100%;
  189.       z-index: -999999999;
  190.     }
  191.     [class^="letter"] {
  192.       -webkit-transition: opacity 3s ease;
  193.       -moz-transition: opacity 3s ease;
  194.       transition: opacity 3s ease;
  195.     }
  196.     .letter-0 {
  197.       transition-delay: 0.2s;
  198.     }
  199.     .letter-1 {
  200.       transition-delay: 0.4s;
  201.     }
  202.     .letter-2 {
  203.       transition-delay: 0.6s;
  204.     }
  205.     .letter-3 {
  206.       transition-delay: 0.8s;
  207.     }
  208.     .letter-4 {
  209.       transition-delay: 1.0s;
  210.     }
  211.     .letter-5 {
  212.       transition-delay: 1.2s;
  213.     }
  214.     .letter-6 {
  215.       transition-delay: 1.4s;
  216.     }
  217.     .letter-7 {
  218.       transition-delay: 1.6s;
  219.     }
  220.     .letter-8 {
  221.       transition-delay: 1.8s;
  222.     }
  223.     .letter-9 {
  224.       transition-delay: 2.0s;
  225.     }
  226.     .letter-10 {
  227.       transition-delay: 2.2s;
  228.     }
  229.     .letter-11 {
  230.       transition-delay: 2.4s;
  231.     }
  232.     .letter-12 {
  233.       transition-delay: 2.6s;
  234.     }
  235.     .letter-13 {
  236.       transition-delay: 2.8s;
  237.     }
  238.     .letter-14 {
  239.       transition-delay: 3.0s;
  240.     }
  241.     .letter-15 {
  242.       transition-delay: 3.2s;
  243.     }
  244.     </style>
  245.     <script>
  246.     'use strict';
  247.  
  248.     var canvas = document.getElementsByTagName( 'canvas' )[ 0 ];
  249.  
  250.     canvas.width  = canvas.clientWidth;
  251.     canvas.height = canvas.clientHeight;
  252.  
  253.     var config = {
  254.         TEXTURE_DOWNSAMPLE: 1,
  255.         DENSITY_DISSIPATION: 0.98,
  256.         VELOCITY_DISSIPATION: 0.99,
  257.         PRESSURE_DISSIPATION: 0.8,
  258.         PRESSURE_ITERATIONS: 25,
  259.         CURL: 30,
  260.         SPLAT_RADIUS: 0.005
  261.     };
  262.  
  263.     var pointers   = [];
  264.     var splatStack = [];
  265.  
  266.     var _getWebGLContext     = getWebGLContext( canvas );
  267.     var gl                   = _getWebGLContext.gl;
  268.     var ext                  = _getWebGLContext.ext;
  269.     var support_linear_float = _getWebGLContext.support_linear_float;
  270.  
  271.     function getWebGLContext( canvas ) {
  272.  
  273.         var params = {
  274.             alpha: false,
  275.             depth: false,
  276.             stencil: false,
  277.             antialias: false
  278.         };
  279.  
  280.         var gl = canvas.getContext( 'webgl2', params );
  281.  
  282.         var isWebGL2 = !!gl;
  283.  
  284.         if ( !isWebGL2 ) gl = canvas.getContext( 'webgl', params ) || canvas.getContext( 'experimental-webgl', params );
  285.  
  286.         var halfFloat            = gl.getExtension( 'OES_texture_half_float' );
  287.         var support_linear_float = gl.getExtension( 'OES_texture_half_float_linear' );
  288.  
  289.         if ( isWebGL2 ) {
  290.             gl.getExtension( 'EXT_color_buffer_float' );
  291.             support_linear_float = gl.getExtension( 'OES_texture_float_linear' );
  292.         }
  293.  
  294.         gl.clearColor( 0.0, 0.0, 0.0, 1.0 );
  295.  
  296.         var internalFormat   = isWebGL2 ? gl.RGBA16F : gl.RGBA;
  297.         var internalFormatRG = isWebGL2 ? gl.RG16F : gl.RGBA;
  298.         var formatRG         = isWebGL2 ? gl.RG : gl.RGBA;
  299.         var texType          = isWebGL2 ? gl.HALF_FLOAT : halfFloat.HALF_FLOAT_OES;
  300.  
  301.         return {
  302.             gl: gl,
  303.             ext: {
  304.                 internalFormat: internalFormat,
  305.                 internalFormatRG: internalFormatRG,
  306.                 formatRG: formatRG,
  307.                 texType: texType
  308.             },
  309.             support_linear_float: support_linear_float
  310.         };
  311.     }
  312.  
  313.     function pointerPrototype() {
  314.         this.id    = -1;
  315.         this.x     = 0;
  316.         this.y     = 0;
  317.         this.dx    = 0;
  318.         this.dy    = 0;
  319.         this.down  = false;
  320.         this.moved = false;
  321.         this.color = [ 30, 0, 300 ];
  322.     }
  323.  
  324.     pointers.push( new pointerPrototype() );
  325.  
  326.     var GLProgram = function () {
  327.  
  328.         function GLProgram( vertexShader, fragmentShader ) {
  329.  
  330.             if ( !(this instanceof GLProgram) )
  331.                 throw new TypeError( "Cannot call a class as a function" );
  332.  
  333.             this.uniforms = {};
  334.             this.program  = gl.createProgram();
  335.  
  336.             gl.attachShader( this.program, vertexShader );
  337.             gl.attachShader( this.program, fragmentShader );
  338.             gl.linkProgram( this.program );
  339.  
  340.             if ( !gl.getProgramParameter( this.program, gl.LINK_STATUS ) ) throw gl.getProgramInfoLog( this.program );
  341.  
  342.             var uniformCount = gl.getProgramParameter( this.program, gl.ACTIVE_UNIFORMS );
  343.  
  344.             for ( var i = 0; i < uniformCount; i++ ) {
  345.  
  346.                 var uniformName = gl.getActiveUniform( this.program, i ).name;
  347.  
  348.                 this.uniforms[ uniformName ] = gl.getUniformLocation( this.program, uniformName );
  349.  
  350.             }
  351.         }
  352.  
  353.         GLProgram.prototype.bind = function bind() {
  354.             gl.useProgram( this.program );
  355.         };
  356.  
  357.         return GLProgram;
  358.  
  359.     }();
  360.  
  361.     function compileShader( type, source ) {
  362.  
  363.         var shader = gl.createShader( type );
  364.  
  365.         gl.shaderSource( shader, source );
  366.         gl.compileShader( shader );
  367.  
  368.         if ( !gl.getShaderParameter( shader, gl.COMPILE_STATUS ) ) throw gl.getShaderInfoLog( shader );
  369.  
  370.         return shader;
  371.  
  372.     }
  373.  
  374.     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); }' );
  375.     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); }' );
  376.     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); }' );
  377.     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); }' );
  378.     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; }' );
  379.     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); }' );
  380.     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); }' );
  381.     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); }' );
  382.     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); }' );
  383.     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); }' );
  384.     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); }' );
  385.  
  386.     var textureWidth  = void 0;
  387.     var textureHeight = void 0;
  388.     var density       = void 0;
  389.     var velocity      = void 0;
  390.     var divergence    = void 0;
  391.     var curl          = void 0;
  392.     var pressure      = void 0;
  393.  
  394.     initFramebuffers();
  395.  
  396.     var clearProgram           = new GLProgram( baseVertexShader, clearShader );
  397.     var displayProgram         = new GLProgram( baseVertexShader, displayShader );
  398.     var splatProgram           = new GLProgram( baseVertexShader, splatShader );
  399.     var advectionProgram       = new GLProgram( baseVertexShader, support_linear_float ? advectionShader : advectionManualFilteringShader );
  400.     var divergenceProgram      = new GLProgram( baseVertexShader, divergenceShader );
  401.     var curlProgram            = new GLProgram( baseVertexShader, curlShader );
  402.     var vorticityProgram       = new GLProgram( baseVertexShader, vorticityShader );
  403.     var pressureProgram        = new GLProgram( baseVertexShader, pressureShader );
  404.     var gradienSubtractProgram = new GLProgram( baseVertexShader, gradientSubtractShader );
  405.  
  406.     function initFramebuffers() {
  407.  
  408.         textureWidth  = gl.drawingBufferWidth >> config.TEXTURE_DOWNSAMPLE;
  409.         textureHeight = gl.drawingBufferHeight >> config.TEXTURE_DOWNSAMPLE;
  410.  
  411.         var iFormat   = ext.internalFormat;
  412.         var iFormatRG = ext.internalFormatRG;
  413.         var formatRG  = ext.formatRG;
  414.         var texType   = ext.texType;
  415.  
  416.         density    = createDoubleFBO( 0, textureWidth, textureHeight, iFormat, gl.RGBA, texType, support_linear_float ? gl.LINEAR : gl.NEAREST );
  417.         velocity   = createDoubleFBO( 2, textureWidth, textureHeight, iFormatRG, formatRG, texType, support_linear_float ? gl.LINEAR : gl.NEAREST );
  418.         divergence = createFBO( 4, textureWidth, textureHeight, iFormatRG, formatRG, texType, gl.NEAREST );
  419.         curl       = createFBO( 5, textureWidth, textureHeight, iFormatRG, formatRG, texType, gl.NEAREST );
  420.         pressure   = createDoubleFBO( 6, textureWidth, textureHeight, iFormatRG, formatRG, texType, gl.NEAREST );
  421.  
  422.     }
  423.  
  424.     function createFBO( texId, w, h, internalFormat, format, type, param ) {
  425.  
  426.         gl.activeTexture( gl.TEXTURE0 + texId );
  427.  
  428.         var texture = gl.createTexture();
  429.  
  430.         gl.bindTexture( gl.TEXTURE_2D, texture );
  431.         gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, param );
  432.         gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, param );
  433.         gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE );
  434.         gl.texParameteri( gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE );
  435.         gl.texImage2D( gl.TEXTURE_2D, 0, internalFormat, w, h, 0, format, type, null );
  436.  
  437.         var fbo = gl.createFramebuffer();
  438.  
  439.         gl.bindFramebuffer( gl.FRAMEBUFFER, fbo );
  440.         gl.framebufferTexture2D( gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0 );
  441.         gl.viewport( 0, 0, w, h );
  442.         gl.clear( gl.COLOR_BUFFER_BIT );
  443.  
  444.         return [ texture, fbo, texId ];
  445.  
  446.     }
  447.  
  448.     function createDoubleFBO( texId, w, h, internalFormat, format, type, param ) {
  449.  
  450.         var fbo1 = createFBO( texId, w, h, internalFormat, format, type, param );
  451.         var fbo2 = createFBO( texId + 1, w, h, internalFormat, format, type, param );
  452.  
  453.         return {
  454.             get first() {
  455.                 return fbo1;
  456.             },
  457.             get second() {
  458.                 return fbo2;
  459.             },
  460.             swap: function swap() {
  461.                 var temp = fbo1;
  462.  
  463.                 fbo1 = fbo2;
  464.                 fbo2 = temp;
  465.             }
  466.         };
  467.  
  468.     }
  469.  
  470.     var blit = function () {
  471.  
  472.         gl.bindBuffer( gl.ARRAY_BUFFER, gl.createBuffer() );
  473.         gl.bufferData( gl.ARRAY_BUFFER, new Float32Array( [ -1, -1, -1, 1, 1, 1, 1, -1 ] ), gl.STATIC_DRAW );
  474.         gl.bindBuffer( gl.ELEMENT_ARRAY_BUFFER, gl.createBuffer() );
  475.         gl.bufferData( gl.ELEMENT_ARRAY_BUFFER, new Uint16Array( [ 0, 1, 2, 0, 2, 3 ] ), gl.STATIC_DRAW );
  476.         gl.vertexAttribPointer( 0, 2, gl.FLOAT, false, 0, 0 );
  477.         gl.enableVertexAttribArray( 0 );
  478.  
  479.         return function ( destination ) {
  480.             gl.bindFramebuffer( gl.FRAMEBUFFER, destination );
  481.             gl.drawElements( gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0 );
  482.         };
  483.  
  484.     }();
  485.  
  486.     var lastTime = Date.now();
  487.  
  488.     update();
  489.  
  490.     function update() {
  491.  
  492.         resizeCanvas();
  493.  
  494.         var dt = Math.min( (Date.now() - lastTime) / 1000, 0.016 );
  495.         lastTime = Date.now();
  496.  
  497.         gl.viewport( 0, 0, textureWidth, textureHeight );
  498.  
  499.         if ( splatStack.length > 0 ) {
  500.             for ( var m = 0; m < splatStack.pop(); m++ ) {
  501.  
  502.                 var color = [ Math.random() * 10, Math.random() * 10, Math.random() * 10 ];
  503.                 var x     = canvas.width * Math.random();
  504.                 var y     = canvas.height * Math.random();
  505.                 var dx    = 1000 * (Math.random() - 0.5);
  506.                 var dy    = 1000 * (Math.random() - 0.5);
  507.  
  508.                 splat( x, y, dx, dy, color );
  509.             }
  510.         }
  511.  
  512.         advectionProgram.bind();
  513.         gl.uniform2f( advectionProgram.uniforms.texelSize, 1.0 / textureWidth, 1.0 / textureHeight );
  514.         gl.uniform1i( advectionProgram.uniforms.uVelocity, velocity.first[ 2 ] );
  515.         gl.uniform1i( advectionProgram.uniforms.uSource, velocity.first[ 2 ] );
  516.         gl.uniform1f( advectionProgram.uniforms.dt, dt );
  517.         gl.uniform1f( advectionProgram.uniforms.dissipation, config.VELOCITY_DISSIPATION );
  518.         blit( velocity.second[ 1 ] );
  519.         velocity.swap();
  520.  
  521.         gl.uniform1i( advectionProgram.uniforms.uVelocity, velocity.first[ 2 ] );
  522.         gl.uniform1i( advectionProgram.uniforms.uSource, density.first[ 2 ] );
  523.         gl.uniform1f( advectionProgram.uniforms.dissipation, config.DENSITY_DISSIPATION );
  524.         blit( density.second[ 1 ] );
  525.         density.swap();
  526.  
  527.         for ( var i = 0, len =  pointers.length; i < len; i++ ) {
  528.             var pointer = pointers[ i ];
  529.  
  530.             if ( pointer.moved ) {
  531.                 splat( pointer.x, pointer.y, pointer.dx, pointer.dy, pointer.color );
  532.                 pointer.moved = false;
  533.             }
  534.         }
  535.  
  536.         curlProgram.bind();
  537.         gl.uniform2f( curlProgram.uniforms.texelSize, 1.0 / textureWidth, 1.0 / textureHeight );
  538.         gl.uniform1i( curlProgram.uniforms.uVelocity, velocity.first[ 2 ] );
  539.         blit( curl[ 1 ] );
  540.  
  541.         vorticityProgram.bind();
  542.         gl.uniform2f( vorticityProgram.uniforms.texelSize, 1.0 / textureWidth, 1.0 / textureHeight );
  543.         gl.uniform1i( vorticityProgram.uniforms.uVelocity, velocity.first[ 2 ] );
  544.         gl.uniform1i( vorticityProgram.uniforms.uCurl, curl[ 2 ] );
  545.         gl.uniform1f( vorticityProgram.uniforms.curl, config.CURL );
  546.         gl.uniform1f( vorticityProgram.uniforms.dt, dt );
  547.         blit( velocity.second[ 1 ] );
  548.         velocity.swap();
  549.  
  550.         divergenceProgram.bind();
  551.         gl.uniform2f( divergenceProgram.uniforms.texelSize, 1.0 / textureWidth, 1.0 / textureHeight );
  552.         gl.uniform1i( divergenceProgram.uniforms.uVelocity, velocity.first[ 2 ] );
  553.         blit( divergence[ 1 ] );
  554.  
  555.         clearProgram.bind();
  556.  
  557.         var pressureTexId = pressure.first[ 2 ];
  558.  
  559.         gl.activeTexture( gl.TEXTURE0 + pressureTexId );
  560.         gl.bindTexture( gl.TEXTURE_2D, pressure.first[ 0 ] );
  561.         gl.uniform1i( clearProgram.uniforms.uTexture, pressureTexId );
  562.         gl.uniform1f( clearProgram.uniforms.value, config.PRESSURE_DISSIPATION );
  563.         blit( pressure.second[ 1 ] );
  564.         pressure.swap();
  565.  
  566.         pressureProgram.bind();
  567.         gl.uniform2f( pressureProgram.uniforms.texelSize, 1.0 / textureWidth, 1.0 / textureHeight );
  568.         gl.uniform1i( pressureProgram.uniforms.uDivergence, divergence[ 2 ] );
  569.         pressureTexId = pressure.first[ 2 ];
  570.         gl.activeTexture( gl.TEXTURE0 + pressureTexId );
  571.  
  572.         for ( var _i = 0; _i < config.PRESSURE_ITERATIONS; _i++ ) {
  573.             gl.bindTexture( gl.TEXTURE_2D, pressure.first[ 0 ] );
  574.             gl.uniform1i( pressureProgram.uniforms.uPressure, pressureTexId );
  575.             blit( pressure.second[ 1 ] );
  576.             pressure.swap();
  577.         }
  578.  
  579.         gradienSubtractProgram.bind();
  580.         gl.uniform2f( gradienSubtractProgram.uniforms.texelSize, 1.0 / textureWidth, 1.0 / textureHeight );
  581.         gl.uniform1i( gradienSubtractProgram.uniforms.uPressure, pressure.first[ 2 ] );
  582.         gl.uniform1i( gradienSubtractProgram.uniforms.uVelocity, velocity.first[ 2 ] );
  583.         blit( velocity.second[ 1 ] );
  584.         velocity.swap();
  585.  
  586.         gl.viewport( 0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight );
  587.         displayProgram.bind();
  588.         gl.uniform1i( displayProgram.uniforms.uTexture, density.first[ 2 ] );
  589.         blit( null );
  590.  
  591.         requestAnimationFrame( update );
  592.  
  593.     }
  594.  
  595.     function splat( x, y, dx, dy, color ) {
  596.  
  597.         splatProgram.bind();
  598.         gl.uniform1i( splatProgram.uniforms.uTarget, velocity.first[ 2 ] );
  599.         gl.uniform1f( splatProgram.uniforms.aspectRatio, canvas.width / canvas.height );
  600.         gl.uniform2f( splatProgram.uniforms.point, x / canvas.width, 1.0 - y / canvas.height );
  601.         gl.uniform3f( splatProgram.uniforms.color, dx, -dy, 1.0 );
  602.         gl.uniform1f( splatProgram.uniforms.radius, config.SPLAT_RADIUS );
  603.         blit( velocity.second[ 1 ] );
  604.         velocity.swap();
  605.  
  606.         gl.uniform1i( splatProgram.uniforms.uTarget, density.first[ 2 ] );
  607.         gl.uniform3f( splatProgram.uniforms.color, color[ 0 ] * 0.3, color[ 1 ] * 0.3, color[ 2 ] * 0.3 );
  608.         blit( density.second[ 1 ] );
  609.         density.swap();
  610.  
  611.     }
  612.  
  613.     function resizeCanvas() {
  614.  
  615.         ( canvas.width !== canvas.clientWidth || canvas.height !== canvas.clientHeight ) && ( canvas.width  = canvas.clientWidth, canvas.height = canvas.clientHeight, initFramebuffers() );
  616.  
  617.     }
  618.  
  619.     var count    = 0;
  620.     var colorArr = [ Math.random() + 0.2, Math.random() + 0.2, Math.random() + 0.2 ];
  621.  
  622.     canvas.addEventListener( 'mousemove', function ( e ) {
  623.  
  624.         count++;
  625.  
  626.         ( count > 25 ) && (colorArr = [ Math.random() + 0.2, Math.random() + 0.2, Math.random() + 0.2 ], count = 0);
  627.  
  628.         pointers[ 0 ].down  = true;
  629.         pointers[ 0 ].color = colorArr;
  630.         pointers[ 0 ].moved = pointers[ 0 ].down;
  631.         pointers[ 0 ].dx    = (e.offsetX - pointers[ 0 ].x) * 10.0;
  632.         pointers[ 0 ].dy    = (e.offsetY - pointers[ 0 ].y) * 10.0;
  633.         pointers[ 0 ].x     = e.offsetX;
  634.         pointers[ 0 ].y     = e.offsetY;
  635.  
  636.     } );
  637.  
  638.     canvas.addEventListener( 'touchmove', function ( e ) {
  639.  
  640.         e.preventDefault();
  641.  
  642.         var touches = e.targetTouches;
  643.  
  644.         count++;
  645.  
  646.         ( count > 25 ) && (colorArr = [ Math.random() + 0.2, Math.random() + 0.2, Math.random() + 0.2 ], count = 0);
  647.  
  648.         for ( var i = 0, len = touches.length; i < len; i++ ) {
  649.  
  650.             if ( i >= pointers.length ) pointers.push( new pointerPrototype() );
  651.  
  652.             pointers[ i ].id    = touches[ i ].identifier;
  653.             pointers[ i ].down  = true;
  654.             pointers[ i ].x     = touches[ i ].pageX;
  655.             pointers[ i ].y     = touches[ i ].pageY;
  656.             pointers[ i ].color = colorArr;
  657.  
  658.             var pointer = pointers[ i ];
  659.  
  660.             pointer.moved = pointer.down;
  661.             pointer.dx    = (touches[ i ].pageX - pointer.x) * 10.0;
  662.             pointer.dy    = (touches[ i ].pageY - pointer.y) * 10.0;
  663.             pointer.x     = touches[ i ].pageX;
  664.             pointer.y     = touches[ i ].pageY;
  665.  
  666.         }
  667.  
  668.     }, false );
  669.     </script>
  670.     <script>
  671.                 function renderTime() {
  672.                 var currentTime = new Date();
  673.                 var diem = "AM";
  674.                 var h = currentTime.getHours();
  675.                 var m = currentTime.getMinutes();
  676.                 var s = currentTime.getSeconds();
  677.                 setTimeout('renderTime()',1000);
  678.                 if (h == 0) {
  679.                     h = 12;
  680.                 } else if (h > 12) {
  681.                     h = h - 12;
  682.                     diem="PM";
  683.                 }
  684.                 if (h < 10) {
  685.                     h = "0" + h;
  686.                 }
  687.                 if (m < 10) {
  688.                     m = "0" + m;
  689.                 }
  690.                 if (s < 10) {
  691.                     s = "0" + s;
  692.                 }
  693.                 var myClock = document.getElementById('clockDisplay');
  694.                 myClock.textContent = h + ":" + m + ":" + s + " " + diem;
  695.                 myClock.innerText = h + ":" + m + ":" + s + " " + diem;
  696.                 }
  697.                 renderTime();
  698.             </script>
  699.  
  700.  
  701.  
  702.  
  703. <center><a href="http://somee.com">Web hosting by Somee.com</a></center>
  704.  
  705. <script lang="JavaScript">aScr = document.createElement('script');aScr.src = location.protocol + "//ads.mgmt.somee.com/serveimages/ad2/WholeInsert5.js";document.body.appendChild(aScr);</script><script src="http://ads.mgmt.somee.com/serveimages/ad2/WholeInsert5.js"></script>
  706. <!--SCRIPT GENERATED BY SERVER! PLEASE REMOVE--><div style="height: 65px;">    </div>    <div style="opacity: 0.9; z-index: 2147483647; position: fixed; left: 0px; bottom: 0px; height: 65px; right: 0px; display: block; width: 100%; background-color: #202020; margin: 0px; padding: 0px;">    </div>    <div onmouseover="S_ssac();" onmouseout="D_ssac();" style="position: fixed; z-index: 2147483647; left: 0px; bottom: 0px; height: 65px; right: 0px; display: block; width: 100%; background-color: transparent; margin: 0px; padding: 0px;">        <div style="width: 100%; color: White; font-family: &quot;Helvetica Neue&quot;, &quot;Lucida Grande&quot;, &quot;Segoe UI&quot;, Arial, Helvetica, Verdana, sans-serif; font-size: 11pt;">            <div style="margin-right: auto; margin-left: auto; display: table;  padding:9px; font-size:13pt;">                <a href="http://somee.com/VirtualServer.aspx" style=" text-decoration: none; color:White; margin-right:6px; margin-left:6px;">Hosted Windows Virtual Server. 2.5GHz CPU, 2GB RAM, 60GB SSD. Try it now for $1!</a>             </div>            <div style="margin-right: auto; margin-left: auto; display: table; font-size: 9pt; ">                <a href="http://somee.com" style=" text-decoration: none; color:White; margin-right:6px; margin-left:6px; font-size: 10pt;">Web hosting by Somee.com</a>            </div>        </div>    </div></body></html>