|                                                                  |  | module.exports = realpathrealpath.realpath = realpathrealpath.sync = realpathSyncrealpath.realpathSync = realpathSyncrealpath.monkeypatch = monkeypatchrealpath.unmonkeypatch = unmonkeypatch
var fs = require('fs')var origRealpath = fs.realpathvar origRealpathSync = fs.realpathSync
var version = process.versionvar ok = /^v[0-5]\./.test(version)var old = require('./old.js')
function newError (er) {  return er && er.syscall === 'realpath' && (    er.code === 'ELOOP' ||    er.code === 'ENOMEM' ||    er.code === 'ENAMETOOLONG'  )}
function realpath (p, cache, cb) {  if (ok) {    return origRealpath(p, cache, cb)  }
  if (typeof cache === 'function') {    cb = cache    cache = null  }  origRealpath(p, cache, function (er, result) {    if (newError(er)) {      old.realpath(p, cache, cb)    } else {      cb(er, result)    }  })}
function realpathSync (p, cache) {  if (ok) {    return origRealpathSync(p, cache)  }
  try {    return origRealpathSync(p, cache)  } catch (er) {    if (newError(er)) {      return old.realpathSync(p, cache)    } else {      throw er    }  }}
function monkeypatch () {  fs.realpath = realpath  fs.realpathSync = realpathSync}
function unmonkeypatch () {  fs.realpath = origRealpath  fs.realpathSync = origRealpathSync}
 |