{"id":45,"date":"2026-10-13T21:46:08","date_gmt":"2026-10-13T14:46:08","guid":{"rendered":"https:\/\/etugiwater.vn\/chinh-sach-bao-mat\/"},"modified":"2026-11-05T10:08:24","modified_gmt":"2026-11-05T03:08:24","slug":"chinh-sach-bao-mat","status":"publish","type":"page","link":"https:\/\/etugiwater.vn\/en\/chinh-sach-bao-mat\/","title":{"rendered":"Privacy Policy"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"45\" class=\"elementor elementor-45\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b718052 et-sec et-pagehead e-flex e-con-boxed e-con e-parent\" data-id=\"b718052\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-690f137 e-con-full et-d-copy e-flex e-con e-child\" data-id=\"690f137\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-aa210fa et-eyebrow  elementor-widget elementor-widget-heading\" data-id=\"aa210fa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<p class=\"elementor-heading-title elementor-size-default\">Ch\u00ednh s\u00e1ch<\/p>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-30b0352 et-h1  elementor-widget elementor-widget-heading\" data-id=\"30b0352\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">Ch\u00ednh s\u00e1ch b\u1ea3o m\u1eadt th\u00f4ng tin<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-75cedd6 et-lead elementor-widget elementor-widget-text-editor\" data-id=\"75cedd6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>C\u00e1ch ETUGI ti\u1ebfp nh\u1eadn v\u00e0 s\u1eed d\u1ee5ng th\u00f4ng tin Anh\/Ch\u1ecb g\u1eedi qua website.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-433cdb4 elementor-widget elementor-widget-html\" data-id=\"433cdb4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script>\/\/ Chuy\u1ec3n \u0111\u1ed9ng c\u1ee7a b\u1ea3n nh\u00e1p trang ch\u1ee7: hi\u1ec7n d\u1ea7n khi cu\u1ed9n t\u1edbi, b\u00ecnh tr\u01b0\u1ee3t v\u00e0o, thanh ti\u1ebfn tr\u00ecnh.\n\/\/ N\u1ed9i dung ch\u1ec9 b\u1ecb \u1ea9n sau khi c\u00f3 l\u1edbp et-js, n\u00ean script l\u1ed7i hay b\u1eadt gi\u1ea3m chuy\u1ec3n \u0111\u1ed9ng v\u1eabn \u0111\u1ecdc \u0111\u01b0\u1ee3c \u0111\u1ee7.\n\/\/ Kh\u00f4ng d\u00f9ng d\u1ea5u g\u1ea1ch ch\u00e9o ng\u01b0\u1ee3c trong file n\u00e0y: Elementor c\u00f3 th\u1ec3 b\u1ecf khi l\u01b0u.\n(function () {\n  if (matchMedia('(prefers-reduced-motion: reduce)').matches || !('IntersectionObserver' in window)) return;\n  document.documentElement.classList.add('et-js');\n\n  const start = () => {\n    const seen = new IntersectionObserver((list) => {\n      list.forEach((en) => {\n        if (!en.isIntersecting) return;\n        en.target.classList.add('is-in');\n        seen.unobserve(en.target);\n      });\n    }, { rootMargin: '0px 0px -8% 0px' });\n    document.querySelectorAll('.et-d-rv').forEach((el) => seen.observe(el));\n\n    \/\/ \u0110\u1eb7t --p t\u1eeb 0 \u0111\u1ebfn 1 theo v\u1ecb tr\u00ed cu\u1ed9n c\u1ee7a kh\u1ed1i ch\u1ee9a\n    const tracks = [...document.querySelectorAll('.et-d-jug, .et-d-rail')].map((el) => ({ el, box: el.closest('.et-d-sec') || el }));\n    let queued = false;\n    const update = () => {\n      queued = false;\n      const vh = innerHeight;\n      tracks.forEach(({ el, box }) => {\n        const r = box.getBoundingClientRect();\n        const p = Math.min(1, Math.max(0, (vh * .95 - r.top) \/ (vh * .7)));\n        el.style.setProperty('--p', p.toFixed(3));\n      });\n    };\n    const ask = () => { if (!queued) { queued = true; requestAnimationFrame(update); } };\n    addEventListener('scroll', ask, { passive: true });\n    addEventListener('resize', ask, { passive: true });\n    update();\n  };\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', start); else start();\n})();\n<\/script><script>\/\/ Hi\u1ec7u \u1ee9ng n\u01b0\u1edbc chuy\u1ec3n \u0111\u1ed9ng cho banner trang ch\u1ee7 v\u00e0 c\u00e1c banner trang con (.et-d-hero, .et-pagehead, .et-hero).\n\/\/ Gi\u1eef nguy\u00ean \u1ea3nh n\u1ec1n s\u00f3ng n\u01b0\u1edbc (media 30): d\u00f9ng WebGL l\u00e0m kh\u00fac x\u1ea1 ch\u00ednh \u1ea3nh \u0111\u00f3, kh\u00f4ng th\u00eam \u1ea3nh hay th\u01b0 vi\u1ec7n.\r\n\/\/ Kh\u00f4ng h\u1ed7 tr\u1ee3 WebGL, m\u00e1y y\u1ebfu ho\u1eb7c b\u1eadt gi\u1ea3m chuy\u1ec3n \u0111\u1ed9ng: canvas kh\u00f4ng ch\u1ea1y, banner v\u1ec1 \u1ea3nh t\u0129nh nh\u01b0 c\u0169.\r\n\/\/ Nh\u00fang b\u1eb1ng widget HTML trong banner (xem water() trong etugi_build.js). Kh\u00f4ng d\u00f9ng d\u1ea5u g\u1ea1ch ch\u00e9o ng\u01b0\u1ee3c trong file n\u00e0y: Elementor c\u00f3 th\u1ec3 b\u1ecf khi l\u01b0u.\r\n(function () {\r\n  \/\/ Widget ch\u1ec9 ch\u1ee9a script: \u1ea9n \u0111i \u0111\u1ec3 kh\u00f4ng chi\u1ebfm kho\u1ea3ng c\u00e1ch trong banner\r\n  const self = document.currentScript;\r\n  const box = self && self.closest('.elementor-widget');\r\n  if (box && !document.body.classList.contains('elementor-editor-active')) box.style.display = 'none';\r\n\r\n  const init = () => {\r\n  const hero = document.querySelector('.et-d-hero, .et-pagehead, .et-hero');\n  const deep = hero && !hero.classList.contains('et-hero') ? 1 : 0;\n  if (!hero || hero.querySelector('.et-water')) return;\r\n  if (matchMedia('(prefers-reduced-motion: reduce)').matches) return;\r\n  const bg = getComputedStyle(hero).backgroundImage;\r\n  if (bg.indexOf('url(') !== 0) return;\r\n\r\n  const VERT = 'attribute vec2 a;void main(){gl_Position=vec4(a,0.,1.);}';\r\n  const FRAG = `\r\nprecision highp float;\r\nuniform sampler2D tex;\r\nuniform vec2 res, img;\r\nuniform float t, deep;\r\nuniform vec4 rip[10], safe;\r\n\r\nfloat hash(vec2 p){ p=fract(p*vec2(123.34,456.21)); p+=dot(p,p+45.32); return fract(p.x*p.y); }\r\nfloat noise(vec2 p){\r\n  vec2 i=floor(p), f=fract(p); f=f*f*(3.-2.*f);\r\n  return mix(mix(hash(i),hash(i+vec2(1,0)),f.x),mix(hash(i+vec2(0,1)),hash(i+vec2(1,1)),f.x),f.y);\r\n}\r\nfloat fbm(vec2 p){ return noise(p)*.55+noise(p*2.03+7.1)*.3+noise(p*4.1+3.7)*.15; }\r\n\/\/ Hai l\u1edbp s\u00f3ng tr\u00f4i ng\u01b0\u1ee3c chi\u1ec1u, l\u1edbp n\u00e0y u\u1ed1n l\u1edbp kia \u0111\u1ec3 m\u1eb7t n\u01b0\u1edbc kh\u00f4ng l\u1eb7p \u0111\u1ec1u\r\nfloat wave(vec2 p){\r\n  vec2 w=vec2(fbm(p*.7+vec2(t*.09,-t*.05)),fbm(p*.7+vec2(-t*.07,t*.06)+5.2));\r\n  return fbm(p+w*1.6+vec2(-t*.16,t*.03));\r\n}\r\n\r\nvoid main(){\r\n  \/\/ Kh\u1edbp \u0111\u00fang background-size:cover + background-position:bottom center c\u1ee7a banner\r\n  float s=max(res.x\/img.x,res.y\/img.y);\r\n  vec2 uv=(gl_FragCoord.xy-vec2((res.x-img.x*s)*.5,0.))\/(img*s);\r\n\r\n  \/\/ M\u1eb7t n\u01b0\u1edbc \u1edf ph\u1ea7n d\u01b0\u1edbi \u1ea3nh, ng\u1ecdn s\u00f3ng v\u00e0 gi\u1ecdt n\u01b0\u1edbc \u1edf b\u00ean ph\u1ea3i; ph\u1ea7n tr\u1eddi tr\u1eafng \u0111\u1ee9ng y\u00ean\r\n  float surface=1.-smoothstep(.26,.50,uv.y);\r\n  float splash=smoothstep(.42,.72,uv.x)*(1.-smoothstep(.55,.86,uv.y))*.55;\r\n  float mask=mix(max(surface,splash),1.,deep);\r\n\r\n  \/\/ Ph\u1ed1i c\u1ea3nh: g\u1ee3n s\u00f3ng d\u1eb9t v\u00e0 d\u00e0y d\u1ea7n v\u1ec1 ph\u00eda \u0111\u01b0\u1eddng ch\u00e2n tr\u1eddi\r\n  float d=max(.46-uv.y,0.)+.16;\r\n  vec2 pSurf=vec2((uv.x-.5)*res.x\/res.y*2.2\/d,1.1\/d);\r\n  vec2 pSplash=uv*vec2(res.x\/res.y,1.)*7.;\r\n  vec2 p=mix(mix(pSplash,pSurf,surface),pSplash*.55,deep);\r\n  float e=.035, h0=wave(p);\r\n  vec2 g=vec2(wave(p+vec2(e,0.))-h0,wave(p+vec2(0.,e))-h0)\/e;\r\n\r\n  g*=mask;\r\n  \/\/ V\u00f2ng s\u00f3ng l\u1edbn lan ra t\u1eeb con tr\u1ecf ho\u1eb7c gi\u1ecdt n\u01b0\u1edbc r\u01a1i: m\u1ed9t b\u00f3 4-5 v\u00f2ng ch\u1ea1y theo m\u00e9p s\u00f3ng, ph\u1ee7 c\u1ea3 banner\r\n  float ring=0.;\r\n  vec2 rg=vec2(0.);\r\n  for(int i=0;i<10;i++){\r\n    float age=t-rip[i].z;\r\n    if(rip[i].w<=0.||age<0.||age>5.) continue;\r\n    vec2 dv=(uv-rip[i].xy)*img*s\/res.y*vec2(1.,mix(1.55,1.22,deep));\r\n    float r=length(dv)+1e-4;\r\n    float x=r-age*.17;\r\n    float a=rip[i].w*exp(-x*x\/.0075)*exp(-age*.62);\r\n    float c=cos(x*96.)*a;\r\n    rg+=dv\/r*c;\r\n    ring+=c;\r\n  }\r\n\r\n  vec2 off=g*vec2(.0052,.0034)+rg*.016;\r\n  vec3 col=texture2D(tex,clamp(uv+off,vec2(.001),vec2(.999))).rgb;\r\n  \/\/ \u00c1nh s\u00e1ng v\u00e0 b\u00f3ng theo \u0111\u1ed9 nghi\u00eang m\u1eb7t n\u01b0\u1edbc\r\n  float tilt=dot(g,normalize(vec2(-.35,.94)));\r\n  col+=smoothstep(.55,1.5,tilt)*.13;\r\n  col-=smoothstep(.45,1.6,-tilt)*vec3(.075,.05,.03);\r\n  \/\/ V\u00f2ng s\u00f3ng: m\u00e9p s\u00e1ng v\u00e0 r\u00e3nh xanh \u0111\u1ec3 th\u1ea5y r\u00f5 tr\u00ean n\u1ec1n g\u1ea7n tr\u1eafng; gi\u1edbi h\u1ea1n \u0111\u1ed9 t\u1ed1i \u0111\u1ec3 ch\u1eef \u0111\u00e8 l\u00ean v\u1eabn \u0111\u1ee7 t\u01b0\u01a1ng ph\u1ea3n\r\n  if(deep>.5){\r\n    \/\/ N\u1ec1n s\u00e2u: v\u00f2ng s\u00e1ng nh\u01b0 clip m\u1eabu, nh\u01b0ng d\u1ecbu l\u1ea1i \u1edf v\u00f9ng c\u00f3 ch\u1eef \u0111\u1ec3 gi\u1eef t\u01b0\u01a1ng ph\u1ea3n\r\n    float sd=max(max(safe.x-gl_FragCoord.x,gl_FragCoord.x-safe.z),max(safe.y-gl_FragCoord.y,gl_FragCoord.y-safe.w));\r\n    col+=max(ring,0.)*.85*vec3(.82,.95,1.)*mix(.26,1.,smoothstep(0.,70.,sd));\r\n    col*=1.-min(max(-ring,0.)*.6,.5);\r\n  }else{\r\n    col+=max(ring,0.)*.34;\r\n    col*=1.-min(max(-ring,0.)*.5,.28)*vec3(1.,.72,.42);\r\n  }\r\n  gl_FragColor=vec4(col,1.);\r\n}`;\r\n\r\n  const canvas = document.createElement('canvas');\r\n  canvas.className = 'et-water';\r\n  canvas.setAttribute('aria-hidden', 'true');\r\n  canvas.style.cssText = 'position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:0;transition:opacity 1.2s';\r\n  const gl = canvas.getContext('webgl', { alpha: false, antialias: false, powerPreference: 'low-power' });\r\n  if (!gl) return;\r\n\r\n  const shader = (type, src) => {\r\n    const x = gl.createShader(type);\r\n    gl.shaderSource(x, src);\r\n    gl.compileShader(x);\r\n    if (!gl.getShaderParameter(x, gl.COMPILE_STATUS)) throw new Error(gl.getShaderInfoLog(x));\r\n    return x;\r\n  };\r\n  let prog;\r\n  try {\r\n    prog = gl.createProgram();\r\n    gl.attachShader(prog, shader(gl.VERTEX_SHADER, VERT));\r\n    gl.attachShader(prog, shader(gl.FRAGMENT_SHADER, FRAG));\r\n    gl.linkProgram(prog);\r\n    gl.useProgram(prog);\r\n  } catch (e) { console.warn('etugi_water', e); return; }\r\n\r\n  gl.bindBuffer(gl.ARRAY_BUFFER, gl.createBuffer());\r\n  gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([-1, -1, 3, -1, -1, 3]), gl.STATIC_DRAW);\r\n  gl.bindAttribLocation(prog, 0, 'a');\r\n  gl.linkProgram(prog);\r\n  gl.useProgram(prog);\r\n  gl.enableVertexAttribArray(0);\r\n  gl.vertexAttribPointer(0, 2, gl.FLOAT, false, 0, 0);\r\n  const u = (n) => gl.getUniformLocation(prog, n);\r\n  const U = { res: u('res'), img: u('img'), t: u('t'), rip: u('rip'), deep: u('deep'), safe: u('safe') };\r\n\r\n  const ripples = new Float32Array(40);\r\n  let ripIndex = 0, nextDrop = .4;\r\n  let raf = 0, running = false, paused = false, seen = true, time = 0, last = 0;\r\n  let quality = Math.min(devicePixelRatio || 1, innerWidth < 768 ? 1 : 1.5);\r\n  let frames = 0, sum = 0, avgMs = 0;\r\n  let imgW = 1, imgH = 1;\r\n\r\n  const size = () => {\r\n    const w = hero.offsetWidth, h = hero.offsetHeight;\r\n    canvas.width = Math.max(1, Math.round(w * quality));\r\n    canvas.height = Math.max(1, Math.round(h * quality));\r\n    gl.viewport(0, 0, canvas.width, canvas.height);\r\n    gl.uniform2f(U.res, canvas.width, canvas.height);\r\n    gl.uniform2f(U.img, imgW, imgH);\r\n    gl.uniform1f(U.deep, deep);\r\n    const copy = hero.querySelector('.et-d-copy');\r\n    if (copy) {\r\n      const hr = hero.getBoundingClientRect(), r = copy.getBoundingClientRect();\r\n      gl.uniform4f(U.safe, (r.left - hr.left) * quality, (hr.bottom - r.bottom) * quality, (r.right - hr.left) * quality, (hr.bottom - r.top) * quality);\r\n    }\r\n  };\r\n  const addRipple = (x, y, power) => {\r\n    ripples.set([x, y, time, power], ripIndex * 4);\r\n    ripIndex = (ripIndex + 1) % 10;\r\n  };\r\n  const remove = () => {\r\n    running = false;\r\n    cancelAnimationFrame(raf);\r\n    canvas.remove();\r\n    if (btn) btn.remove();\r\n  };\r\n  const draw = (now) => {\r\n    if (!running) return;\r\n    raf = requestAnimationFrame(draw);\r\n    const dt = Math.min((now - last) \/ 1000, .1);\r\n    \/\/ T\u1ef1 gi\u1ea3m \u0111\u1ed9 ph\u00e2n gi\u1ea3i khi m\u00e1y y\u1ebfu; v\u1eabn ch\u1eadm th\u00ec tr\u1ea3 v\u1ec1 \u1ea3nh t\u0129nh\r\n    if (last) {\r\n      sum += now - last;\r\n      if (++frames === 60) {\r\n        avgMs = sum \/ 60; sum = 0; frames = 0;\r\n        if (avgMs > 34) {\r\n          if (quality > .6) { quality *= .7; size(); } else { remove(); return; }\r\n        }\r\n      }\r\n    }\r\n    last = now;\r\n    time += dt;\r\n    if (time > nextDrop) {\r\n      addRipple(.3 + Math.random() * .65, .12 + Math.random() * .6, .75 + Math.random() * .25);\r\n      nextDrop = time + 1.8 + Math.random() * 2.2;\r\n    }\r\n    gl.uniform1f(U.t, time);\r\n    gl.uniform4fv(U.rip, ripples);\r\n    gl.drawArrays(gl.TRIANGLES, 0, 3);\r\n  };\r\n  const sync = () => {\r\n    const go = seen && !paused && !document.hidden;\r\n    if (go === running) return;\r\n    running = go;\r\n    if (go) { last = 0; raf = requestAnimationFrame(draw); } else cancelAnimationFrame(raf);\r\n  };\r\n\r\n  \/\/ N\u00fat d\u1eebng: chuy\u1ec3n \u0111\u1ed9ng li\u00ean t\u1ee5c qu\u00e1 5 gi\u00e2y c\u1ea7n c\u00f3 c\u00e1ch t\u1eaft (WCAG 2.2.2)\r\n  const ICON = {\r\n    pause: '<svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M3 2h3v10H3zM8 2h3v10H8z\"\/><\/svg>',\r\n    play: '<svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" aria-hidden=\"true\"><path fill=\"currentColor\" d=\"M3 1.5v11L12 7z\"\/><\/svg>',\r\n  };\r\n  const btn = document.createElement('button');\r\n  btn.type = 'button';\r\n  btn.className = 'et-water-toggle';\r\n  btn.style.cssText = 'position:absolute;right:14px;bottom:14px;z-index:2;width:44px;height:44px;padding:0;display:flex;align-items:center;justify-content:center;border:0;border-radius:50%;background:rgba(255,255,255,.72);color:#07529C;cursor:pointer;box-shadow:0 2px 8px rgba(7,82,156,.18)';\r\n  const label = () => {\r\n    btn.innerHTML = paused ? ICON.play : ICON.pause;\r\n    btn.setAttribute('aria-label', paused ? 'B\u1eadt hi\u1ec7u \u1ee9ng n\u01b0\u1edbc' : 'T\u1ea1m d\u1eebng hi\u1ec7u \u1ee9ng n\u01b0\u1edbc');\r\n    btn.title = btn.getAttribute('aria-label');\r\n  };\r\n  try { paused = localStorage.getItem('etWaterPaused') === '1'; } catch (e) { \/* tr\u00ecnh duy\u1ec7t ch\u1eb7n l\u01b0u tr\u1eef *\/ }\r\n  btn.addEventListener('click', () => {\r\n    paused = !paused;\r\n    try { localStorage.setItem('etWaterPaused', paused ? '1' : '0'); } catch (e) { \/* tr\u00ecnh duy\u1ec7t ch\u1eb7n l\u01b0u tr\u1eef *\/ }\r\n    label();\r\n    sync();\r\n  });\r\n  label();\r\n\r\n  const image = new Image();\r\n  image.onload = () => {\r\n    const tex = gl.createTexture();\r\n    gl.bindTexture(gl.TEXTURE_2D, tex);\r\n    gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL, true);\r\n    gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGB, gl.RGB, gl.UNSIGNED_BYTE, image);\r\n    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\r\n    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\r\n    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\r\n    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\r\n    imgW = image.naturalWidth; imgH = image.naturalHeight;\r\n\r\n    const inner = hero.querySelector(':scope > .e-con-inner');\r\n    if (inner) { inner.style.position = 'relative'; inner.style.zIndex = '1'; }\r\n    hero.style.overflow = 'hidden';\r\n    hero.prepend(canvas);\r\n    hero.appendChild(btn);\r\n    size();\r\n    gl.uniform1f(U.t, 0);\r\n    gl.uniform4fv(U.rip, ripples);\r\n    gl.drawArrays(gl.TRIANGLES, 0, 3);\r\n    canvas.style.opacity = '1';\r\n\r\n    new ResizeObserver(size).observe(hero);\r\n    if (document.fonts && document.fonts.ready) document.fonts.ready.then(size);\r\n    new IntersectionObserver((en) => { seen = en[0].isIntersecting; sync(); }).observe(hero);\r\n    document.addEventListener('visibilitychange', sync);\r\n    canvas.addEventListener('webglcontextlost', remove);\r\n\r\n    \/\/ Con tr\u1ecf l\u01b0\u1edbt qua banner t\u1ea1o v\u00f2ng s\u00f3ng; ch\u1ea1m tr\u00ean \u0111i\u1ec7n tho\u1ea1i c\u0169ng v\u1eady\r\n    let lastMove = 0;\r\n    hero.addEventListener('pointermove', (ev) => {\r\n      if (ev.pointerType === 'touch' || ev.timeStamp - lastMove < 300) return;\r\n      const r = hero.getBoundingClientRect();\r\n      const s = Math.max(r.width \/ imgW, r.height \/ imgH);\r\n      lastMove = ev.timeStamp;\r\n      addRipple((ev.clientX - r.left - (r.width - imgW * s) \/ 2) \/ (imgW * s), (r.bottom - ev.clientY) \/ (imgH * s), .8);\r\n    }, { passive: true });\r\n    hero.addEventListener('pointerdown', (ev) => {\r\n      const r = hero.getBoundingClientRect();\r\n      const s = Math.max(r.width \/ imgW, r.height \/ imgH);\r\n      addRipple((ev.clientX - r.left - (r.width - imgW * s) \/ 2) \/ (imgW * s), (r.bottom - ev.clientY) \/ (imgH * s), 1);\r\n    }, { passive: true });\r\n    sync();\r\n  };\r\n  image.src = bg.slice(4, -1).replace(\/[\"']\/g, '');\r\n\r\n  window.ETUGI_WATER = { stats: () => ({ avgMs, quality, running, w: canvas.width, h: canvas.height }), remove };\r\n  };\r\n  \/\/ \u0110\u1ee3i trang t\u1ea3i xong \u0111\u1ec3 hi\u1ec7u \u1ee9ng kh\u00f4ng l\u00e0m ch\u1eadm l\u1ea7n hi\u1ec3n th\u1ecb \u0111\u1ea7u\r\n  if (document.readyState === 'complete') init(); else window.addEventListener('load', init);\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6b1e506 et-sec et-narrow e-flex e-con-boxed e-con e-parent\" data-id=\"6b1e506\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-91c76bf elementor-widget elementor-widget-text-editor\" data-id=\"91c76bf\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<h3>Th\u00f4ng tin \u0111\u01b0\u1ee3c thu th\u1eadp<\/h3><p>Khi Anh\/Ch\u1ecb g\u1eedi form t\u01b0 v\u1ea5n ho\u1eb7c form \u0111\u0103ng k\u00fd \u0111\u1ea1i l\u00fd, website ti\u1ebfp nh\u1eadn c\u00e1c th\u00f4ng tin do Anh\/Ch\u1ecb t\u1ef1 \u0111i\u1ec1n: h\u1ecd t\u00ean, s\u1ed1 \u0111i\u1ec7n tho\u1ea1i, email (n\u1ebfu c\u00f3), khu v\u1ef1c, s\u1ea3n ph\u1ea9m quan t\u00e2m v\u00e0 l\u1eddi nh\u1eafn.<\/p><h3>M\u1ee5c \u0111\u00edch s\u1eed d\u1ee5ng<\/h3><p>Th\u00f4ng tin ch\u1ec9 \u0111\u01b0\u1ee3c d\u00f9ng \u0111\u1ec3 li\u00ean h\u1ec7 t\u01b0 v\u1ea5n, b\u00e1o gi\u00e1, x\u00e1c nh\u1eadn y\u00eau c\u1ea7u \u0111\u1eb7t h\u00e0ng ho\u1eb7c trao \u0111\u1ed5i v\u1ec1 h\u1ee3p t\u00e1c \u0111\u1ea1i l\u00fd.<\/p><h3>Chia s\u1ebb th\u00f4ng tin<\/h3><p>ETUGI kh\u00f4ng b\u00e1n ho\u1eb7c trao \u0111\u1ed5i th\u00f4ng tin c\u1ee7a Anh\/Ch\u1ecb cho b\u00ean th\u1ee9 ba v\u00ec m\u1ee5c \u0111\u00edch qu\u1ea3ng c\u00e1o.<\/p><h3>Y\u00eau c\u1ea7u ch\u1ec9nh s\u1eeda, x\u00f3a th\u00f4ng tin<\/h3><p>Anh\/Ch\u1ecb c\u00f3 th\u1ec3 y\u00eau c\u1ea7u ch\u1ec9nh s\u1eeda ho\u1eb7c x\u00f3a th\u00f4ng tin \u0111\u00e3 g\u1eedi b\u1eb1ng c\u00e1ch g\u1ecdi hotline <a href=\"tel:0942368582\">0942 368 582<\/a>.<\/p><h3>\u0110\u01a1n v\u1ecb ch\u1ecbu tr\u00e1ch nhi\u1ec7m<\/h3><p>C\u00f4ng ty TNHH Th\u01b0\u01a1ng m\u1ea1i v\u00e0 D\u1ecbch v\u1ee5 H\u1eefu Th\u1ecbnh H\u00e0 T\u0129nh | S\u1ed1 301 Tr\u1ea7n Ph\u00fa, ph\u01b0\u1eddng B\u1eafc H\u1ed3ng L\u0129nh, H\u00e0 T\u0129nh.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Ch\u00ednh s\u00e1ch Ch\u00ednh s\u00e1ch b\u1ea3o m\u1eadt th\u00f4ng tin C\u00e1ch ETUGI ti\u1ebfp nh\u1eadn v\u00e0 s\u1eed d\u1ee5ng th\u00f4ng tin Anh\/Ch\u1ecb g\u1eedi qua [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"plain-container","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"disabled","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-45","page","type-page","status-publish","hentry"],"_hostinger_reach_plugin_has_subscription_block":false,"_hostinger_reach_plugin_is_elementor":false,"_links":{"self":[{"href":"https:\/\/etugiwater.vn\/en\/wp-json\/wp\/v2\/pages\/45","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/etugiwater.vn\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/etugiwater.vn\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/etugiwater.vn\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/etugiwater.vn\/en\/wp-json\/wp\/v2\/comments?post=45"}],"version-history":[{"count":12,"href":"https:\/\/etugiwater.vn\/en\/wp-json\/wp\/v2\/pages\/45\/revisions"}],"predecessor-version":[{"id":654,"href":"https:\/\/etugiwater.vn\/en\/wp-json\/wp\/v2\/pages\/45\/revisions\/654"}],"wp:attachment":[{"href":"https:\/\/etugiwater.vn\/en\/wp-json\/wp\/v2\/media?parent=45"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}