| 1234567891011121314151617181920212223242526272829303132 | 
var rvalidchars = /^[\],:{}\s]*$/;var rvalidescape = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g;var rvalidtokens = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g;var rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g;var rtrimLeft = /^\s+/;var rtrimRight = /\s+$/;module.exports = function parsejson(data) {  if ('string' != typeof data || !data) {    return null;  }  data = data.replace(rtrimLeft, '').replace(rtrimRight, '');    if (global.JSON && JSON.parse) {    return JSON.parse(data);  }  if (rvalidchars.test(data.replace(rvalidescape, '@')      .replace(rvalidtokens, ']')      .replace(rvalidbraces, ''))) {    return (new Function('return ' + data))();  }};
 |