app/assets/javascripts/refinery/photo_gallery/admin/plupload/plupload.html5.js
(function (h, k, j, e) {
var c = {}, g;
function m(o, p) {
var n;
if ("FileReader" in h) {
n = new FileReader();
n.readAsDataURL(o);
n.onload = function () {
p(n.result)
}
} else {
return p(o.getAsDataURL())
}
}
function l(o, p) {
var n;
if ("FileReader" in h) {
n = new FileReader();
n.readAsBinaryString(o);
n.onload = function () {
p(n.result)
}
} else {
return p(o.getAsBinary())
}
}
function d(r, p, n, v) {
var q, o, u, s, t = this;
m(c[r.id], function (w) {
q = k.createElement("canvas");
q.style.display = "none";
k.body.appendChild(q);
o = q.getContext("2d");
u = new Image();
u.onerror = u.onabort = function () {
v({success:false})
};
u.onload = function () {
var B, x, z, y, A;
if (!p.width) {
p.width = u.width
}
if (!p.height) {
p.height = u.height
}
s = Math.min(p.width / u.width, p.height / u.height);
if (s < 1 || (s === 1 && n === "image/jpeg")) {
B = Math.round(u.width * s);
x = Math.round(u.height * s);
q.width = B;
q.height = x;
o.drawImage(u, 0, 0, B, x);
if (n === "image/jpeg") {
y = new f(atob(w.substring(w.indexOf("base64,") + 7)));
if (y.headers && y.headers.length) {
A = new a();
if (A.init(y.get("exif")[0])) {
A.setExif("PixelXDimension", B);
A.setExif("PixelYDimension", x);
y.set("exif", A.getBinary());
if (t.hasEventListener("ExifData")) {
t.trigger("ExifData", r, A.EXIF())
}
if (t.hasEventListener("GpsData")) {
t.trigger("GpsData", r, A.GPS())
}
}
}
if (p.quality) {
try {
w = q.toDataURL(n, p.quality / 100)
} catch (C) {
w = q.toDataURL(n)
}
}
} else {
w = q.toDataURL(n)
}
w = w.substring(w.indexOf("base64,") + 7);
w = atob(w);
if (y && y.headers && y.headers.length) {
w = y.restore(w);
y.purge()
}
q.parentNode.removeChild(q);
v({success:true, data:w})
} else {
v({success:false})
}
};
u.src = w
})
}
j.runtimes.Html5 = j.addRuntime("html5", {getFeatures:function () {
var s, o, r, q, p, n;
o = r = p = n = false;
if (h.XMLHttpRequest) {
s = new XMLHttpRequest();
r = !!s.upload;
o = !!(s.sendAsBinary || s.upload)
}
if (o) {
q = !!(s.sendAsBinary || (h.Uint8Array && h.ArrayBuffer));
p = !!(File && (File.prototype.getAsDataURL || h.FileReader) && q);
n = !!(File && (File.prototype.mozSlice || File.prototype.webkitSlice || File.prototype.slice))
}
g = j.ua.safari && j.ua.windows;
return{html5:o, dragdrop:(function () {
var t = k.createElement("div");
return("draggable" in t) || ("ondragstart" in t && "ondrop" in t)
}()), jpgresize:p, pngresize:p, multipart:p || !!h.FileReader || !!h.FormData, canSendBinary:q, cantSendBlobInFormData:!!(j.ua.gecko && h.FormData && h.FileReader && !FileReader.prototype.readAsArrayBuffer), progress:r, chunks:n, multi_selection:!(j.ua.safari && j.ua.windows), triggerDialog:(j.ua.gecko && h.FormData || j.ua.webkit)}
}, init:function (p, r) {
var n, q;
function o(w) {
var u, t, v = [], x, s = {};
for (t = 0; t < w.length; t++) {
u = w[t];
if (s[u.name]) {
continue
}
s[u.name] = true;
x = j.guid();
c[x] = u;
v.push(new j.File(x, u.fileName || u.name, u.fileSize || u.size))
}
if (v.length) {
p.trigger("FilesAdded", v)
}
}
n = this.getFeatures();
if (!n.html5) {
r({success:false});
return
}
p.bind("Init", function (w) {
var G, F, C = [], v, D, t = w.settings.filters, u, B, s = k.body, E;
G = k.createElement("div");
G.id = w.id + "_html5_container";
j.extend(G.style, {position:"absolute", background:p.settings.shim_bgcolor || "transparent", width:"100px", height:"100px", overflow:"hidden", zIndex:99999, opacity:p.settings.shim_bgcolor ? "" : 0});
G.className = "plupload html5";
if (p.settings.container) {
s = k.getElementById(p.settings.container);
if (j.getStyle(s, "position") === "static") {
s.style.position = "relative"
}
}
s.appendChild(G);
no_type_restriction:for (v = 0; v < t.length; v++) {
u = t[v].extensions.split(/,/);
for (D = 0; D < u.length; D++) {
if (u[D] === "*") {
C = [];
break no_type_restriction
}
B = j.mimeTypes[u[D]];
if (B && j.inArray(B, C) === -1) {
C.push(B)
}
}
}
G.innerHTML = '<input id="' + p.id + '_html5" style="font-size:999px" type="file" ' + (p.settings.multi_selection && p.features.multi_selection ? 'multiple="multiple"' : "") + " />";
G.scrollTop = 100;
E = k.getElementById(p.id + "_html5");
if (w.features.triggerDialog) {
j.extend(E.style, {position:"absolute", width:"100%", height:"100%"})
} else {
j.extend(E.style, {cssFloat:"right", styleFloat:"right"})
}
E.onchange = function () {
o(this.files);
this.value = ""
};
F = k.getElementById(w.settings.browse_button);
if (F) {
var z = w.settings.browse_button_hover, A = w.settings.browse_button_active, x = w.features.triggerDialog ? F : G;
if (z) {
j.addEvent(x, "mouseover", function () {
j.addClass(F, z)
}, w.id);
j.addEvent(x, "mouseout", function () {
j.removeClass(F, z)
}, w.id)
}
if (A) {
j.addEvent(x, "mousedown", function () {
j.addClass(F, A)
}, w.id);
j.addEvent(k.body, "mouseup", function () {
j.removeClass(F, A)
}, w.id)
}
if (w.features.triggerDialog) {
j.addEvent(F, "click", function (H) {
var y = k.getElementById(w.id + "_html5");
if (y && !y.disabled) {
y.click()
}
H.preventDefault()
}, w.id)
}
}
});
p.bind("PostInit", function () {
var s = k.getElementById(p.settings.drop_element);
if (s) {
if (g) {
j.addEvent(s, "dragenter", function (w) {
var v, t, u;
v = k.getElementById(p.id + "_drop");
if (!v) {
v = k.createElement("input");
v.setAttribute("type", "file");
v.setAttribute("id", p.id + "_drop");
v.setAttribute("multiple", "multiple");
j.addEvent(v, "change", function () {
o(this.files);
j.removeEvent(v, "change", p.id);
v.parentNode.removeChild(v)
}, p.id);
s.appendChild(v)
}
t = j.getPos(s, k.getElementById(p.settings.container));
u = j.getSize(s);
if (j.getStyle(s, "position") === "static") {
j.extend(s.style, {position:"relative"})
}
j.extend(v.style, {position:"absolute", display:"block", top:0, left:0, width:u.w + "px", height:u.h + "px", opacity:0})
}, p.id);
return
}
j.addEvent(s, "dragover", function (t) {
t.preventDefault()
}, p.id);
j.addEvent(s, "drop", function (u) {
var t = u.dataTransfer;
if (t && t.files) {
o(t.files)
}
u.preventDefault()
}, p.id)
}
});
p.bind("Refresh", function (s) {
var t, u, v, x, w;
t = k.getElementById(p.settings.browse_button);
if (t) {
u = j.getPos(t, k.getElementById(s.settings.container));
v = j.getSize(t);
x = k.getElementById(p.id + "_html5_container");
j.extend(x.style, {top:u.y + "px", left:u.x + "px", width:v.w + "px", height:v.h + "px"});
if (p.features.triggerDialog) {
if (j.getStyle(t, "position") === "static") {
j.extend(t.style, {position:"relative"})
}
w = parseInt(j.getStyle(t, "z-index"), 10);
if (isNaN(w)) {
w = 0
}
j.extend(t.style, {zIndex:w});
j.extend(x.style, {zIndex:w - 1})
}
}
});
p.bind("DisableBrowse", function (s, u) {
var t = k.getElementById(s.id + "_html5");
if (t) {
t.disabled = u
}
});
p.bind("CancelUpload", function () {
if (q && q.abort) {
q.abort()
}
});
p.bind("UploadFile", function (s, u) {
var v = s.settings, y, t;
function x(A, D, z) {
var B;
if (File.prototype.slice) {
try {
A.slice();
return A.slice(D, z)
} catch (C) {
return A.slice(D, z - D)
}
} else {
if (B = File.prototype.webkitSlice || File.prototype.mozSlice) {
return B.call(A, D, z)
} else {
return null
}
}
}
function w(A) {
var D = 0, C = 0, z = ("FileReader" in h) ? new FileReader : null;
function B() {
var I, M, K, L, H, J, F, E = s.settings.url;
function G(V) {
var T = 0, N = "----pluploadboundary" + j.guid(), O, P = "--", U = "\r\n", R = "";
q = new XMLHttpRequest;
if (q.upload) {
q.upload.onprogress = function (W) {
u.loaded = Math.min(u.size, C + W.loaded - T);
s.trigger("UploadProgress", u)
}
}
q.onreadystatechange = function () {
var W, Y;
if (q.readyState == 4 && s.state !== j.STOPPED) {
try {
W = q.status
} catch (X) {
W = 0
}
if (W >= 400) {
s.trigger("Error", {code:j.HTTP_ERROR, message:j.translate("HTTP Error."), file:u, status:W})
} else {
if (K) {
Y = {chunk:D, chunks:K, response:q.responseText, status:W};
s.trigger("ChunkUploaded", u, Y);
C += J;
if (Y.cancelled) {
u.status = j.FAILED;
return
}
u.loaded = Math.min(u.size, (D + 1) * H)
} else {
u.loaded = u.size
}
s.trigger("UploadProgress", u);
V = I = O = R = null;
if (!K || ++D >= K) {
u.status = j.DONE;
s.trigger("FileUploaded", u, {response:q.responseText, status:W})
} else {
B()
}
}
}
};
if (s.settings.multipart && n.multipart) {
L.name = u.target_name || u.name;
q.open("post", E, true);
j.each(s.settings.headers, function (X, W) {
q.setRequestHeader(W, X)
});
if (typeof(V) !== "string" && !!h.FormData) {
O = new FormData();
j.each(j.extend(L, s.settings.multipart_params), function (X, W) {
O.append(W, X)
});
O.append(s.settings.file_data_name, V);
q.send(O);
return
}
if (typeof(V) === "string") {
q.setRequestHeader("Content-Type", "multipart/form-data; boundary=" + N);
j.each(j.extend(L, s.settings.multipart_params), function (X, W) {
R += P + N + U + 'Content-Disposition: form-data; name="' + W + '"' + U + U;
R += unescape(encodeURIComponent(X)) + U
});
F = j.mimeTypes[u.name.replace(/^.+\.([^.]+)/, "$1").toLowerCase()] || "application/octet-stream";
R += P + N + U + 'Content-Disposition: form-data; name="' + s.settings.file_data_name + '"; filename="' + unescape(encodeURIComponent(u.name)) + '"' + U + "Content-Type: " + F + U + U + V + U + P + N + P + U;
T = R.length - V.length;
V = R;
if (q.sendAsBinary) {
q.sendAsBinary(V)
} else {
if (n.canSendBinary) {
var S = new Uint8Array(V.length);
for (var Q = 0; Q < V.length; Q++) {
S[Q] = (V.charCodeAt(Q) & 255)
}
q.send(S.buffer)
}
}
return
}
}
E = j.buildUrl(s.settings.url, j.extend(L, s.settings.multipart_params));
q.open("post", E, true);
q.setRequestHeader("Content-Type", "application/octet-stream");
j.each(s.settings.headers, function (X, W) {
q.setRequestHeader(W, X)
});
q.send(V)
}
if (u.status == j.DONE || u.status == j.FAILED || s.state == j.STOPPED) {
return
}
L = {name:u.target_name || u.name};
if (v.chunk_size && u.size > v.chunk_size && (n.chunks || typeof(A) == "string")) {
H = v.chunk_size;
K = Math.ceil(u.size / H);
J = Math.min(H, u.size - (D * H));
if (typeof(A) == "string") {
I = A.substring(D * H, D * H + J)
} else {
I = x(A, D * H, D * H + J)
}
L.chunk = D;
L.chunks = K
} else {
J = u.size;
I = A
}
if (s.settings.multipart && n.multipart && typeof(I) !== "string" && z && n.cantSendBlobInFormData && n.chunks && s.settings.chunk_size) {
z.onload = function () {
G(z.result)
};
z.readAsBinaryString(I)
} else {
G(I)
}
}
B()
}
y = c[u.id];
if (n.jpgresize && s.settings.resize && /\.(png|jpg|jpeg)$/i.test(u.name)) {
d.call(s, u, s.settings.resize, /\.png$/i.test(u.name) ? "image/png" : "image/jpeg", function (z) {
if (z.success) {
u.size = z.data.length;
w(z.data)
} else {
if (n.chunks) {
w(y)
} else {
l(y, w)
}
}
})
} else {
if (!n.chunks && n.jpgresize) {
l(y, w)
} else {
w(y)
}
}
});
p.bind("Destroy", function (s) {
var u, v, t = k.body, w = {inputContainer:s.id + "_html5_container", inputFile:s.id + "_html5", browseButton:s.settings.browse_button, dropElm:s.settings.drop_element};
for (u in w) {
v = k.getElementById(w[u]);
if (v) {
j.removeAllEvents(v, s.id)
}
}
j.removeAllEvents(k.body, s.id);
if (s.settings.container) {
t = k.getElementById(s.settings.container)
}
t.removeChild(k.getElementById(w.inputContainer))
});
r({success:true})
}});
function b() {
var q = false, o;
function r(t, v) {
var s = q ? 0 : -8 * (v - 1), w = 0, u;
for (u = 0; u < v; u++) {
w |= (o.charCodeAt(t + u) << Math.abs(s + u * 8))
}
return w
}
function n(u, s, t) {
var t = arguments.length === 3 ? t : o.length - s - 1;
o = o.substr(0, s) + u + o.substr(t + s)
}
function p(t, u, w) {
var x = "", s = q ? 0 : -8 * (w - 1), v;
for (v = 0; v < w; v++) {
x += String.fromCharCode((u >> Math.abs(s + v * 8)) & 255)
}
n(x, t, w)
}
return{II:function (s) {
if (s === e) {
return q
} else {
q = s
}
}, init:function (s) {
q = false;
o = s
}, SEGMENT:function (s, u, t) {
switch (arguments.length) {
case 1:
return o.substr(s, o.length - s - 1);
case 2:
return o.substr(s, u);
case 3:
n(t, s, u);
break;
default:
return o
}
}, BYTE:function (s) {
return r(s, 1)
}, SHORT:function (s) {
return r(s, 2)
}, LONG:function (s, t) {
if (t === e) {
return r(s, 4)
} else {
p(s, t, 4)
}
}, SLONG:function (s) {
var t = r(s, 4);
return(t > 2147483647 ? t - 4294967296 : t)
}, STRING:function (s, t) {
var u = "";
for (t += s; s < t; s++) {
u += String.fromCharCode(r(s, 1))
}
return u
}}
}
function f(s) {
var u = {65505:{app:"EXIF", name:"APP1", signature:"Exif\0"}, 65506:{app:"ICC", name:"APP2", signature:"ICC_PROFILE\0"}, 65517:{app:"IPTC", name:"APP13", signature:"Photoshop 3.0\0"}}, t = [], r, n, p = e, q = 0, o;
r = new b();
r.init(s);
if (r.SHORT(0) !== 65496) {
return
}
n = 2;
o = Math.min(1048576, s.length);
while (n <= o) {
p = r.SHORT(n);
if (p >= 65488 && p <= 65495) {
n += 2;
continue
}
if (p === 65498 || p === 65497) {
break
}
q = r.SHORT(n + 2) + 2;
if (u[p] && r.STRING(n + 4, u[p].signature.length) === u[p].signature) {
t.push({hex:p, app:u[p].app.toUpperCase(), name:u[p].name.toUpperCase(), start:n, length:q, segment:r.SEGMENT(n, q)})
}
n += q
}
r.init(null);
return{headers:t, restore:function (y) {
r.init(y);
var w = new f(y);
if (!w.headers) {
return false
}
for (var x = w.headers.length; x > 0; x--) {
var z = w.headers[x - 1];
r.SEGMENT(z.start, z.length, "")
}
w.purge();
n = r.SHORT(2) == 65504 ? 4 + r.SHORT(4) : 2;
for (var x = 0, v = t.length; x < v; x++) {
r.SEGMENT(n, 0, t[x].segment);
n += t[x].length
}
return r.SEGMENT()
}, get:function (x) {
var y = [];
for (var w = 0, v = t.length; w < v; w++) {
if (t[w].app === x.toUpperCase()) {
y.push(t[w].segment)
}
}
return y
}, set:function (y, x) {
var z = [];
if (typeof(x) === "string") {
z.push(x)
} else {
z = x
}
for (var w = ii = 0, v = t.length; w < v; w++) {
if (t[w].app === y.toUpperCase()) {
t[w].segment = z[ii];
t[w].length = z[ii].length;
ii++
}
if (ii >= z.length) {
break
}
}
}, purge:function () {
t = [];
r.init(null)
}}
}
function a() {
var q, n, o = {}, t;
q = new b();
n = {tiff:{274:"Orientation", 34665:"ExifIFDPointer", 34853:"GPSInfoIFDPointer"}, exif:{36864:"ExifVersion", 40961:"ColorSpace", 40962:"PixelXDimension", 40963:"PixelYDimension", 36867:"DateTimeOriginal", 33434:"ExposureTime", 33437:"FNumber", 34855:"ISOSpeedRatings", 37377:"ShutterSpeedValue", 37378:"ApertureValue", 37383:"MeteringMode", 37384:"LightSource", 37385:"Flash", 41986:"ExposureMode", 41987:"WhiteBalance", 41990:"SceneCaptureType", 41988:"DigitalZoomRatio", 41992:"Contrast", 41993:"Saturation", 41994:"Sharpness"}, gps:{0:"GPSVersionID", 1:"GPSLatitudeRef", 2:"GPSLatitude", 3:"GPSLongitudeRef", 4:"GPSLongitude"}};
t = {ColorSpace:{1:"sRGB", 0:"Uncalibrated"}, MeteringMode:{0:"Unknown", 1:"Average", 2:"CenterWeightedAverage", 3:"Spot", 4:"MultiSpot", 5:"Pattern", 6:"Partial", 255:"Other"}, LightSource:{1:"Daylight", 2:"Fliorescent", 3:"Tungsten", 4:"Flash", 9:"Fine weather", 10:"Cloudy weather", 11:"Shade", 12:"Daylight fluorescent (D 5700 - 7100K)", 13:"Day white fluorescent (N 4600 -5400K)", 14:"Cool white fluorescent (W 3900 - 4500K)", 15:"White fluorescent (WW 3200 - 3700K)", 17:"Standard light A", 18:"Standard light B", 19:"Standard light C", 20:"D55", 21:"D65", 22:"D75", 23:"D50", 24:"ISO studio tungsten", 255:"Other"}, Flash:{0:"Flash did not fire.", 1:"Flash fired.", 5:"Strobe return light not detected.", 7:"Strobe return light detected.", 9:"Flash fired, compulsory flash mode", 13:"Flash fired, compulsory flash mode, return light not detected", 15:"Flash fired, compulsory flash mode, return light detected", 16:"Flash did not fire, compulsory flash mode", 24:"Flash did not fire, auto mode", 25:"Flash fired, auto mode", 29:"Flash fired, auto mode, return light not detected", 31:"Flash fired, auto mode, return light detected", 32:"No flash function", 65:"Flash fired, red-eye reduction mode", 69:"Flash fired, red-eye reduction mode, return light not detected", 71:"Flash fired, red-eye reduction mode, return light detected", 73:"Flash fired, compulsory flash mode, red-eye reduction mode", 77:"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected", 79:"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected", 89:"Flash fired, auto mode, red-eye reduction mode", 93:"Flash fired, auto mode, return light not detected, red-eye reduction mode", 95:"Flash fired, auto mode, return light detected, red-eye reduction mode"}, ExposureMode:{0:"Auto exposure", 1:"Manual exposure", 2:"Auto bracket"}, WhiteBalance:{0:"Auto white balance", 1:"Manual white balance"}, SceneCaptureType:{0:"Standard", 1:"Landscape", 2:"Portrait", 3:"Night scene"}, Contrast:{0:"Normal", 1:"Soft", 2:"Hard"}, Saturation:{0:"Normal", 1:"Low saturation", 2:"High saturation"}, Sharpness:{0:"Normal", 1:"Soft", 2:"Hard"}, GPSLatitudeRef:{N:"North latitude", S:"South latitude"}, GPSLongitudeRef:{E:"East longitude", W:"West longitude"}};
function p(u, C) {
var w = q.SHORT(u), z, F, G, B, A, v, x, D, E = [], y = {};
for (z = 0; z < w; z++) {
x = v = u + 12 * z + 2;
G = C[q.SHORT(x)];
if (G === e) {
continue
}
B = q.SHORT(x += 2);
A = q.LONG(x += 2);
x += 4;
E = [];
switch (B) {
case 1:
case 7:
if (A > 4) {
x = q.LONG(x) + o.tiffHeader
}
for (F = 0; F < A; F++) {
E[F] = q.BYTE(x + F)
}
break;
case 2:
if (A > 4) {
x = q.LONG(x) + o.tiffHeader
}
y[G] = q.STRING(x, A - 1);
continue;
case 3:
if (A > 2) {
x = q.LONG(x) + o.tiffHeader
}
for (F = 0; F < A; F++) {
E[F] = q.SHORT(x + F * 2)
}
break;
case 4:
if (A > 1) {
x = q.LONG(x) + o.tiffHeader
}
for (F = 0; F < A; F++) {
E[F] = q.LONG(x + F * 4)
}
break;
case 5:
x = q.LONG(x) + o.tiffHeader;
for (F = 0; F < A; F++) {
E[F] = q.LONG(x + F * 4) / q.LONG(x + F * 4 + 4)
}
break;
case 9:
x = q.LONG(x) + o.tiffHeader;
for (F = 0; F < A; F++) {
E[F] = q.SLONG(x + F * 4)
}
break;
case 10:
x = q.LONG(x) + o.tiffHeader;
for (F = 0; F < A; F++) {
E[F] = q.SLONG(x + F * 4) / q.SLONG(x + F * 4 + 4)
}
break;
default:
continue
}
D = (A == 1 ? E[0] : E);
if (t.hasOwnProperty(G) && typeof D != "object") {
y[G] = t[G][D]
} else {
y[G] = D
}
}
return y
}
function s() {
var v = e, u = o.tiffHeader;
q.II(q.SHORT(u) == 18761);
if (q.SHORT(u += 2) !== 42) {
return false
}
o.IFD0 = o.tiffHeader + q.LONG(u += 2);
v = p(o.IFD0, n.tiff);
o.exifIFD = ("ExifIFDPointer" in v ? o.tiffHeader + v.ExifIFDPointer : e);
o.gpsIFD = ("GPSInfoIFDPointer" in v ? o.tiffHeader + v.GPSInfoIFDPointer : e);
return true
}
function r(w, u, z) {
var B, y, x, A = 0;
if (typeof(u) === "string") {
var v = n[w.toLowerCase()];
for (hex in v) {
if (v[hex] === u) {
u = hex;
break
}
}
}
B = o[w.toLowerCase() + "IFD"];
y = q.SHORT(B);
for (i = 0; i < y; i++) {
x = B + 12 * i + 2;
if (q.SHORT(x) == u) {
A = x + 8;
break
}
}
if (!A) {
return false
}
q.LONG(A, z);
return true
}
return{init:function (u) {
o = {tiffHeader:10};
if (u === e || !u.length) {
return false
}
q.init(u);
if (q.SHORT(0) === 65505 && q.STRING(4, 5).toUpperCase() === "EXIF\0") {
return s()
}
return false
}, EXIF:function () {
var v;
v = p(o.exifIFD, n.exif);
if (v.ExifVersion && j.typeOf(v.ExifVersion) === "array") {
for (var w = 0, u = ""; w < v.ExifVersion.length; w++) {
u += String.fromCharCode(v.ExifVersion[w])
}
v.ExifVersion = u
}
return v
}, GPS:function () {
var u;
u = p(o.gpsIFD, n.gps);
if (u.GPSVersionID) {
u.GPSVersionID = u.GPSVersionID.join(".")
}
return u
}, setExif:function (u, v) {
if (u !== "PixelXDimension" && u !== "PixelYDimension") {
return false
}
return r("exif", u, v)
}, getBinary:function () {
return q.SEGMENT()
}}
}
})(window, document, plupload);