text: var browserFakeUserAgent = 'Fake/5.0 (FakeOS) AppleWebKit/123 (KHTML, like Gecko) Fake/12.3.4567.89 Fake/123.45';
  
  var isNodejs = typeof process === 'object' && typeof process.versions === 'object' && process.versions.node && /*node-process*/ !process.browser;
  if (isNodejs) {
      var version = process.versions.node.toString().replace('v', '');
      browserFakeUserAgent = 'Nodejs/' + version + ' (NodeOS) AppleWebKit/' + version + ' (KHTML, like Gecko) Nodejs/' + version + ' Nodejs/' + version
  }
  
  (function(that) {
      if (typeof window !== 'undefined') {
          return;
      }
  
      if (typeof window === 'undefined' && typeof global !== 'undefined') {
          global.navigator = {
              userAgent: browserFakeUserAgent,
              getUserMedia: function() {}
          };
  
          /*global window:true */
          that.window = global;
      } else if (typeof window === 'undefined') {
          // window = this;
      }
  
      if (typeof location === 'undefined') {
          /*global location:true */
          that.location = {
              protocol: 'file:',
              href: '',
              hash: ''
          };
      }
  
      if (typeof screen === 'undefined') {
          /*global screen:true */
          that.screen = {
              width: 0,
              height: 0
          };
      }
  })(typeof global !== 'undefined' ? global : window);
  
  /*global navigator:true */
  var navigator = window.navigator;
  
  if (typeof navigator !== 'undefined') {
      if (typeof navigator.webkitGetUserMedia !== 'undefined') {
          navigator.getUserMedia = navigator.webkitGetUserMedia;
      }
  
      if (typeof navigator.mozGetUserMedia !== 'undefined') {
          navigator.getUserMedia = navigator.mozGetUserMedia;
      }
  } else {
      navigator = {
          getUserMedia: function() {},
          userAgent: browserFakeUserAgent
      };
  }
  