(function (g) { "function" === typeof define && define.amd ? define(["jquery", "datatables.net", "datatables.net-buttons"], function (d) { return g(d, window, document); }) : "object" === typeof exports ? module.exports = function (d, f) { d || (d = window); if (!f || !f.fn.dataTable) f = require("datatables.net")(d, f).$; f.fn.dataTable.Buttons || require("datatables.net-buttons")(d, f); return g(f, d, d.document); } : g(jQuery, window, document); })(function (g, d, f, k) { var l = g.fn.dataTable, j; if ("undefined" !== typeof navigator && /MSIE [1-9]\./.test(navigator.userAgent)) j = void 0; else { var v = d.document, o = v.createElementNS("http://www.w3.org/1999/xhtml", "a"), D = "download" in o, p = d.webkitRequestFileSystem, w = d.requestFileSystem || p || d.mozRequestFileSystem, E = function (a) { (d.setImmediate || d.setTimeout)(function () { throw a; }, 0); }, q = 0, r = function (a) { var b = function () { "string" === typeof a ? (d.URL || d.webkitURL || d).revokeObjectURL(a) : a.remove(); }; d.chrome ? b() : setTimeout(b, 500); }, s = function (a, b, e) { for(b = [].concat(b), c = b.length; c--;) { var d = a["on" + b[c]]; if ("function" === typeof d) try { d.call(a, e || a); } catch (h) { E(h); } } }, y = function (a) { return /^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type) ? new Blob(["", a], { type: a.type }) : a; }, A = function (a, b) { a = y(a), e = this, c = a.type, x = !1, h, g, z = function () { s(e, ["writestart", "progress", "write", "writeend"]); }, f = function () { if (x || !h) h = (d.URL || d.webkitURL || d).createObjectURL(a); g ? g.location.href = h : d.open(h, "_blank") === k && "undefined" !== typeof safari && (d.location.href = h); e.readyState = e.DONE; z(); r(h); }, n = function (a) { return function () { if (e.readyState !== e.DONE) return a.apply(this, arguments); }; }, i = { create: !0, exclusive: !1 }, j; e.readyState = e.INIT; b || (b = "download"); if (D) h = (d.URL || d.webkitURL || d).createObjectURL(a), o.href = h, o.download = b, c = v.createEvent("MouseEvents"), c.initMouseEvent("click", !0, !1, d, 0, 0, 0, 0, 0, !1, !1, !1, !1, 0, null), o.dispatchEvent(c), e.readyState = e.DONE, z(), r(h); else { d.chrome && (c && "application/octet-stream" !== c) && (j = a.slice || a.webkitSlice, a = j.call(a, 0, a.size, "application/octet-stream"), x = !0); p && "download" !== b && (b += ".download"); if ("application/octet-stream" === c || p) g = d; w ? (q += a.size, w(d.TEMPORARY, q, n(function (c) { c.root.getDirectory("saved", i, n(function (c) { var d = function () { c.getFile(b, i, n(function (b) { b.createWriter(n(function (c) { c.onwriteend = function (a) { g.location.href = b.toURL(); e.readyState = e.DONE; s(e, "writeend", a); r(b); }; c.onerror = function () { var a = c.error; a.code !== a.ABORT_ERR && f(); }; ["writestart", "progress", "write", "abort"].forEach(function (a) { c["on" + a] = e["on" + a]; }); c.write(a); e.abort = function () { c.abort(); e.readyState = e.DONE; }; e.readyState = e.WRITING; }), f); }), f); }; c.getFile(b, { create: false }, n(function (a) { a.remove(); d(); }), n(function (a) { a.code === a.NOT_FOUND_ERR ? d() : f(); })); }), f); }), f)) : f(); } }, i = A.prototype; "undefined" !== typeof navigator && navigator.msSaveOrOpenBlob ? j = function (a, b) { return navigator.msSaveOrOpenBlob(y(a), b); } : (i.abort = function () { this.readyState = this.DONE; s(this, "abort"); }, i.readyState = i.INIT = 0, i.WRITING = 1, i.DONE = 2, i.error = i.onwritestart = i.onprogress = i.onwrite = i.onabort = i.onerror = i.onwriteend = null, j = function (a, b) { return new A(a, b); }); } var t = function (a, b) { var e = "*" === a.filename && "*" !== a.title && a.title !== k ? a.title : a.filename; - 1 !== e.indexOf("*") && (e = e.replace("*", g("title").text())); e = e.replace(/[^a-zA-Z0-9_\u00A1-\uFFFF\.,\-_ !\(\)]/g, ""); return b === k || !0 === b ? e + a.extension : e; }, F = function (a) { a = a.title; return -1 !== a.indexOf("*") ? a.replace("*", g("title").text()) : a; }, u = function (a) { return a.newline ? a.newline : navigator.userAgent.match(/Windows/) ? "\r\n" : "\n"; }, B = function (a, b) { for (var e = u(b), c = a.buttons.exportData(b.exportOptions), d = b.fieldBoundary, h = b.fieldSeparator, f = RegExp(d, "g"), g = b.escapeChar !== k ? b.escapeChar : "\\", i = function (a) { for (var b = "", c = 0, e = a.length; c < e; c++) 0 < c && (b += h), b += d ? d + ("" + a[c]).replace(f, g + d) + d : a[c]; return b; }, n = b.header ? i(c.header) + e : "", j = b.footer ? e + i(c.footer) : "", l = [], m = 0, o = c.body.length; m < o; m++) l.push(i(c.body[m])); return { str: n + l.join(e) + j, rows: l.length }; }, C = function () { return -1 !== navigator.userAgent.indexOf("Safari") && -1 === navigator.userAgent.indexOf("Chrome") && -1 === navigator.userAgent.indexOf("Opera"); }, m = { "_rels/.rels": '\t', "xl/_rels/workbook.xml.rels": '\t', "[Content_Types].xml": '\t\t\t\t\t', "xl/workbook.xml": '\t\t\t\t\t\t\t\t\t\t', "xl/worksheets/sheet1.xml": '\t\t\t__DATA__\t' }; l.ext.buttons.copyHtml5 = { className: "buttons-copy buttons-html5", text: function (a) { return a.i18n("buttons.copy", " Copy"); }, action: function (a, b, d, c) { a = B(b, c); c = a.str; d = g("
").css( { height: 1, width: 1, overflow: "hidden", position: "fixed", top: 0, left: 0 }); c = g("