Advertisement
Guest User

Untitled

a guest
Jun 24th, 2018
404
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ! function(a) {
  2.     "use strict";
  3.     var b = a.module("angular-bind-html-compile", []);
  4.     b.directive("bindHtmlCompile", ["$compile", function(a) {
  5.         return {
  6.             restrict: "A",
  7.             link: function(b, c, d) {
  8.                 b.$watch(function() {
  9.                     return b.$eval(d.bindHtmlCompile)
  10.                 }, function(e) {
  11.                     c.html(e && e.toString());
  12.                     var f = b;
  13.                     d.bindHtmlScope && (f = b.$eval(d.bindHtmlScope)), a(c.contents())(f)
  14.                 })
  15.             }
  16.         }
  17.     }])
  18. }(window.angular),
  19. function() {
  20.     "use strict";
  21.     angular.module("app", ["ngRoute", "ngResource", "ngSanitize", "emojiApp", "ngFileUpload", "pascalprecht.translate", "ngCookies", "ngJcrop", "ngTagsInput", "ui.bootstrap-slider", "ui.select", "angular-confirm", "angular-bind-html-compile", "ui.router", "ui.bootstrap", "angular-loading-bar", "duScroll", "frapontillo.bootstrap-switch", "app.nav", "app.api", "app.auth", "app.errors", "app.i18n", "app.upload", "app.header", "app.pages"])
  22. }(),
  23. function() {
  24.     "use strict";
  25.     angular.module("app").config(["$sceDelegateProvider", "$httpProvider", function(a, b) {
  26.         a.resourceUrlWhitelist(["self", "http://localhost/**", "http://localhost.gramblr.com/**", "http://cdn.gramblr.com/**"]), b.defaults.useXDomain = !0
  27.     }]).config(["$stateProvider", "$urlRouterProvider", "ngJcropConfigProvider", function(a, b, c) {
  28.         c.setJcropConfig({
  29.             bgColor: "black",
  30.             bgOpacity: .4,
  31.             minAspectRatio: .801,
  32.             maxAspectRatio: 1.899,
  33.             maxHeight: 400,
  34.             maxWidth: 600
  35.         }), c.setPreviewStyle({
  36.             display: "none"
  37.         });
  38.         var d = "http://cdn.gramblr.com/views";
  39.         return a.state("site", {
  40.             "abstract": !0,
  41.             resolve: {
  42.                 authorize: ["authorization", function(a) {
  43.                     return a.authorize()
  44.                 }]
  45.             }
  46.         }).state("upload", {
  47.             parent: "site",
  48.             "abstract": !0,
  49.             url: "/",
  50.             views: {
  51.                 "content@": {
  52.                     templateUrl: d + "/app/upload.html"
  53.                 }
  54.             },
  55.             data: {
  56.                 roles: ["user"]
  57.             }
  58.         }).state("upload.step1", {
  59.             parent: "upload",
  60.             url: "upload",
  61.             views: {
  62.                 "uploadwizard@upload": {
  63.                     templateUrl: d + "/app/upload_step1.html"
  64.                 }
  65.             }
  66.         }).state("upload.step2", {
  67.             parent: "upload",
  68.             url: "crop-photo",
  69.             views: {
  70.                 "uploadwizard@upload": {
  71.                     templateUrl: d + "/app/upload_step2.html"
  72.                 }
  73.             }
  74.         }).state("upload.step2.video", {
  75.             parent: "upload",
  76.             url: "crop-video/{videoFile}",
  77.             views: {
  78.                 "uploadwizard@upload": {
  79.                     templateUrl: d + "/app/upload_step2_video.html"
  80.                 }
  81.             }
  82.         }).state("upload.step3", {
  83.             parent: "upload",
  84.             url: "apply-filters",
  85.             views: {
  86.                 "uploadwizard@upload": {
  87.                     templateUrl: d + "/app/upload_step3.html"
  88.                 }
  89.             }
  90.         }).state("upload.step3.video", {
  91.             parent: "upload",
  92.             url: "confirm-video",
  93.             views: {
  94.                 "uploadwizard@upload": {
  95.                     templateUrl: d + "/app/upload_step3_video.html"
  96.                 }
  97.             }
  98.         }).state("upload.step4", {
  99.             parent: "upload",
  100.             url: "confirm/{motionUrl}",
  101.             views: {
  102.                 "uploadwizard@upload": {
  103.                     templateUrl: d + "/app/upload_step4.html"
  104.                 }
  105.             }
  106.         }).state("upload.finished", {
  107.             parent: "upload",
  108.             url: "finished/{mediaId}/{freeLikes:int}/{photoUrl}/{caption}",
  109.             views: {
  110.                 "uploadwizard@upload": {
  111.                     templateUrl: d + "/app/upload_done.html"
  112.                 }
  113.             }
  114.         }).state("upload.scheduled", {
  115.             parent: "upload",
  116.             url: "scheduled/{scheduledFor}",
  117.             views: {
  118.                 "uploadwizard@upload": {
  119.                     templateUrl: d + "/app/upload_scheduled.html"
  120.                 }
  121.             }
  122.         }).state("upload.finished.video", {
  123.             parent: "upload",
  124.             url: "finished-video/{mediaId}",
  125.             views: {
  126.                 "uploadwizard@upload": {
  127.                     templateUrl: d + "/app/upload_done_video.html"
  128.                 }
  129.             }
  130.         }).state("signin", {
  131.             parent: "site",
  132.             url: "/signin",
  133.             views: {
  134.                 "content@": {
  135.                     templateUrl: d + "/pages/signin.html"
  136.                 }
  137.             },
  138.             data: {
  139.                 roles: [],
  140.                 mustLogout: !0
  141.             }
  142.         }).state("forgotpassword", {
  143.             parent: "site",
  144.             url: "/forgot-password",
  145.             views: {
  146.                 "content@": {
  147.                     templateUrl: d + "/pages/forgot-password.html"
  148.                 }
  149.             },
  150.             data: {
  151.                 roles: [],
  152.                 mustLogout: !0
  153.             }
  154.         }).state("changepassword", {
  155.             parent: "site",
  156.             url: "/change-password/{email}",
  157.             views: {
  158.                 "content@": {
  159.                     templateUrl: d + "/pages/change-password.html"
  160.                 }
  161.             },
  162.             data: {
  163.                 roles: [],
  164.                 mustLogout: !0
  165.             }
  166.         }).state("signup", {
  167.             parent: "site",
  168.             url: "/signup",
  169.             views: {
  170.                 "content@": {
  171.                     templateUrl: d + "/pages/signup.html"
  172.                 }
  173.             },
  174.             data: {
  175.                 roles: [],
  176.                 mustLogout: !0
  177.             }
  178.         }).state("403", {
  179.             parent: "site",
  180.             url: "/access-denied",
  181.             views: {
  182.                 "content@": {
  183.                     templateUrl: d + "/pages/403.html"
  184.                 }
  185.             },
  186.             data: {
  187.                 roles: []
  188.             }
  189.         }).state("404", {
  190.             parent: "site",
  191.             url: "/not-found",
  192.             views: {
  193.                 "content@": {
  194.                     templateUrl: d + "/pages/404.html"
  195.                 }
  196.             },
  197.             data: {
  198.                 roles: []
  199.             }
  200.         }).state("profile", {
  201.             parent: "site",
  202.             url: "/profile",
  203.             views: {
  204.                 "content@": {
  205.                     templateUrl: d + "/pages/profile.html"
  206.                 }
  207.             },
  208.             data: {
  209.                 roles: ["user"]
  210.             }
  211.         }).state("buycoins", {
  212.             parent: "site",
  213.             url: "/buy_coins",
  214.             views: {
  215.                 "content@": {
  216.                     templateUrl: d + "/pages/paypal.html"
  217.                 }
  218.             },
  219.             data: {
  220.                 roles: ["user"]
  221.             }
  222.         }).state("thankyou", {
  223.             parent: "site",
  224.             url: "/thankyou",
  225.             views: {
  226.                 "content@": {
  227.                     templateUrl: d + "/pages/thankyou.html"
  228.                 }
  229.             },
  230.             data: {
  231.                 roles: ["user"]
  232.             }
  233.         }).state("history", {
  234.             parent: "site",
  235.             url: "/history",
  236.             views: {
  237.                 "content@": {
  238.                     templateUrl: d + "/pages/history.html"
  239.                 }
  240.             },
  241.             data: {
  242.                 roles: ["user"]
  243.             }
  244.         }).state("transactions", {
  245.             parent: "site",
  246.             url: "/view-transactions",
  247.             views: {
  248.                 "content@": {
  249.                     templateUrl: d + "/pages/view_transactions.html"
  250.                 }
  251.             },
  252.             data: {
  253.                 roles: ["user"]
  254.             }
  255.         }).state("ratings", {
  256.             parent: "site",
  257.             url: "/ratings",
  258.             views: {
  259.                 "content@": {
  260.                     templateUrl: d + "/pages/ratings.html?1"
  261.                 }
  262.             },
  263.             data: {
  264.                 roles: ["user"]
  265.             }
  266.         }).state("100best", {
  267.             parent: "site",
  268.             url: "/100_best",
  269.             views: {
  270.                 "content@": {
  271.                     templateUrl: d + "/pages/daily_winners.html"
  272.                 }
  273.             },
  274.             data: {
  275.                 roles: ["user"]
  276.             }
  277.         }).state("addlikes", {
  278.             parent: "site",
  279.             url: "/add_likes?mediaCode",
  280.             views: {
  281.                 "content@": {
  282.                     templateUrl: d + "/pages/add_likes.html"
  283.                 }
  284.             },
  285.             data: {
  286.                 roles: ["user"]
  287.             }
  288.         }).state("schedule", {
  289.             parent: "site",
  290.             url: "/schedule",
  291.             views: {
  292.                 "content@": {
  293.                     templateUrl: d + "/pages/schedule.html"
  294.                 }
  295.             },
  296.             data: {
  297.                 roles: ["user"]
  298.             }
  299.         }).state("engagement", {
  300.             parent: "site",
  301.             url: "/engagement",
  302.             views: {
  303.                 "content@": {
  304.                     templateUrl: d + "/pages/engagement.html"
  305.                 }
  306.             },
  307.             data: {
  308.                 roles: ["user"]
  309.             }
  310.         }), b.when("", "/signin"), b.when("/", "/upload"), b.otherwise("/not-found"), a
  311.     }]).controller("AppCtrl", ["$scope", "$rootScope", "$route", "$document", "$http", "$timeout", "remote", "$log", function(a, b, c, d, e, f, g, h) {
  312.         var i = new Date,
  313.             j = i.getFullYear();
  314.         b.last_version = "2.9.104", b.last_upload = new Date(0, 0, 0, 0, 0, 0), b.uploader = {}, b.main = {
  315.             brand: "Gramblr",
  316.             user_id: 0,
  317.             name: "Guest",
  318.             thumbnail: "http://cdn.gramblr.com/images/anonymous-user.png",
  319.             year: j,
  320.             is_autolike: null,
  321.             coins: 0,
  322.             coins_diff_while_away: 0,
  323.             configuration: {
  324.                 gramblr_version: "0.0.0"
  325.             },
  326.             next_upload: 0
  327.         }, b.versionGte = function(a) {
  328.             var c = function(a, b, c) {
  329.                 function d(a) {
  330.                     return (e ? /^\d+[A-Za-z]*$/ : /^\d+$/).test(a)
  331.                 }
  332.                 var e = c && c.lexicographical,
  333.                     f = c && c.zeroExtend,
  334.                     g = a.split("."),
  335.                     h = b.split(".");
  336.                 if (!g.every(d) || !h.every(d)) return NaN;
  337.                 if (f) {
  338.                     for (; g.length < h.length;) g.push("0");
  339.                     for (; h.length < g.length;) h.push("0")
  340.                 }
  341.                 e || (g = g.map(Number), h = h.map(Number));
  342.                 for (var i = 0; i < g.length; ++i) {
  343.                     if (h.length == i) return 1;
  344.                     if (g[i] != h[i]) return g[i] > h[i] ? 1 : -1
  345.                 }
  346.                 return g.length != h.length ? -1 : 0
  347.             };
  348.             return c(b.main.configuration.gramblr_version, a) >= 0
  349.         }, b.playCoinsDiff = function(a, c) {
  350.             if (a && 0 != a)
  351.                 if (c && (b.main.coins -= a), a > 0) {
  352.                     var d = function(a) {
  353.                         f(function() {
  354.                             if (0 != a) {
  355.                                 var c = 1;
  356.                                 a > 1e3 && (c = 20), b.main.coins += c, d(a - c)
  357.                             }
  358.                         }, Math.min(250, 500 / a))
  359.                     };
  360.                     f(function() {
  361.                         d(a)
  362.                     }, 1e3), $("#coins").append('<span class="added-coins color-success" style="position:absolute;" id="added_coins">+' + a + "</span>"), f(function() {
  363.                         $("#added_coins").remove()
  364.                     }, 1500)
  365.                 } else {
  366.                     var e = function(a) {
  367.                         f(function() {
  368.                             0 != a && (b.main.coins--, e(a - 1))
  369.                         }, Math.min(250, 500 / a))
  370.                     };
  371.                     e(-a), $("#coins").append('<span class="removed-coins color-danger" style="position:absolute;" id="removed_coins">' + a + "</span>"), f(function() {
  372.                         $("#removed_coins").remove()
  373.                     }, 1500)
  374.                 }
  375.         }, e.get("/api/configuration").then(function(a) {
  376.             b.main.configuration = a.data, d[0].title = "Gramblr" + b.main.configuration.gramblr_arch + " v" + b.main.configuration.gramblr_version
  377.         }), a.color = {
  378.             primary: "#4E7FE1",
  379.             success: "#81CA80",
  380.             info: "#6BBCD7",
  381.             infoAlt: "#7266BD",
  382.             warning: "#E9C842",
  383.             danger: "#E96562",
  384.             gray: "#DCDCDC"
  385.         }, b.$on("$stateChangeSuccess", function(a, b, c, e, f) {
  386.             d.scrollTo(0, 0)
  387.         })
  388.     }]).directive("customPage", function() {
  389.         function a(a, b, c) {
  390.             var d, e;
  391.             e = function() {
  392.                 return c.path()
  393.             }, d = function(a) {
  394.                 switch (b.removeClass("body-wide body-err body-lock body-auth"), a) {
  395.                     case "/not-found":
  396.                     case "/access-denied":
  397.                         return b.addClass("body-wide body-err");
  398.                     case "/signin":
  399.                     case "/signup":
  400.                     case "/forgot-password":
  401.                         return b.addClass("body-wide body-auth");
  402.                     case "/lock-screen":
  403.                         return b.addClass("body-wide body-lock")
  404.                 }
  405.                 return a.indexOf("change-password") > 0 ? b.addClass("body-wide body-auth") : void 0
  406.             }, d(c.path()), a.$watch(e, function(a, b) {
  407.                 return a !== b ? d(c.path()) : void 0
  408.             })
  409.         }
  410.         var b = {
  411.             restrict: "A",
  412.             controller: ["$scope", "$element", "$location", a]
  413.         };
  414.         return b
  415.     }).run(["$rootScope", "$state", "$stateParams", "authorization", "principal", function(a, b, c, d, e) {
  416.         a.$on("$stateChangeStart", function(b, c, f) {
  417.             a.toState = c, a.toStateParams = f, e.isIdentityResolved() && d.authorize()
  418.         })
  419.     }])
  420. }(),
  421. function() {
  422.     "use strict";
  423.  
  424.     function a(a) {
  425.         return {
  426.             log_activity: a("api/activity/:severity", null),
  427.             log_error: a("api/error/"),
  428.             notifications: a("api/notifications"),
  429.             messages: a("api/messages"),
  430.             check_user: a("api/users/:user/is_valid", null),
  431.             check_email: a("api/:email/availability", null),
  432.             login: a("api/login"),
  433.             logout: a("api/logout"),
  434.             forgot_password: a("api/forgot_password"),
  435.             change_password: a("api/change_password"),
  436.             login_instagram: a("api/instagram/login"),
  437.             register: a("api/users/add"),
  438.             identity: a("api/users/current_identity"),
  439.             repost: a("repost", null),
  440.             repost_progress: a("repost_progress"),
  441.             crop: a("crop"),
  442.             crop_video: a("crop_video"),
  443.             effects_url: a(":ig_user/effects_url", null),
  444.             effects: a("effects", null),
  445.             caption: a("caption", null),
  446.             caption_video: a("caption_video", null),
  447.             update_caption: a("/api/update_caption"),
  448.             reschedule: a("/api/reschedule"),
  449.             video_duration: a("video/get_duration/:ig_user/:video_file", null),
  450.             video_gen_frames: a("video/gen_frames/:ig_user/:video_file", null),
  451.             autolike: a("api/users/autolike", null),
  452.             ig_accounts: a("api/users/instagram_accounts"),
  453.             upload_history: a("api/users/upload_history"),
  454.             uploads_scheduled: a("api/users/uploads_scheduled"),
  455.             cancel_scheduled_upload: a("api/users/cancel_scheduled_upload"),
  456.             add_instagram_account: a("api/instagram/add_account"),
  457.             forget_instagram_account: a("api/instagram/forget_account"),
  458.             switch_instagram_account: a("/api/instagram/switch", null),
  459.             get_image_url: a("/img_url/:media_code", null),
  460.             add_likes: a("/api/add_likes"),
  461.             gen_list_likes: a("/api/gen_list_likes/:ig_user", null),
  462.             send_likes: a("/api/send_likes"),
  463.             send_unlike: a("/api/send_unlike"),
  464.             engagement_likes_recent: a("/api/engagement_likes_recent/:ig_user/:offset/:max/", null),
  465.             send_engagement_unlikes: a("/api/send_engagement_unlikes/:ig_user"),
  466.             engagement_settings: a("/api/engagement_settings/:ig_user/"),
  467.             transactions: a("/api/users/transactions/:start", null),
  468.             reboot: a("/reboot"),
  469.             ping: a("/ping"),
  470.             accept_free_likes: a("/api/accept_free_likes"),
  471.             refuse_free_likes: a("/api/refuse_free_likes"),
  472.             delete_media: a("/api/delete_media"),
  473.             validate_user_needy: a("/api/:ig_user/is_instagram_needy", null),
  474.             send_confirmation_email: a("/api/instagram/send_confirmation_email"),
  475.             unpause_likes: a("/api/instagram/unpause_likes"),
  476.             upload_mobile: a("/api/email_upload"),
  477.             update_profile_pic: a("/update_profile_picture/:ig_user"),
  478.             remove_avatar: a("/api/instagram/remove_avatar"),
  479.             next_upload: a("/api/users/get_next_upload"),
  480.             generate_motion_effects: a("/generate_motion_effects/:ig_user", null),
  481.             get_user_id: a("/api/get_user_id", null),
  482.             reset_device_uuid: a("/reset_device_uuid/:ig_user", null),
  483.             delete_instagram_post: a("/delete_photo/:ig_user/:media_code", null),
  484.             verify_untrusted: a("/api/verify_untrusted/", null),
  485.             try_login: a("/api/instagram/try_login", null),
  486.             daily_winners: a("/api/winners", null)
  487.         }
  488.     }
  489.     angular.module("app.api", ["ngResource"]).factory("remote", ["$resource", a])
  490. }(),
  491. function() {
  492.     "use strict";
  493.     angular.module("app.auth", ["ui.router", "ui.bootstrap", "app.api", "ngCookies"]).directive("compareTo", function() {
  494.         return {
  495.             require: "ngModel",
  496.             scope: {
  497.                 otherModelValue: "=compareTo"
  498.             },
  499.             link: function(a, b, c, d) {
  500.                 d.$validators.compareTo = function(b) {
  501.                     return b == a.otherModelValue
  502.                 }, a.$watch("otherModelValue", function() {
  503.                     d.$validate()
  504.                 })
  505.             }
  506.         }
  507.     }).directive("instagramUsername", ["$q", "remote", function(a, b) {
  508.         return {
  509.             require: "ngModel",
  510.             link: function(c, d, e, f) {
  511.                 f.$asyncValidators.ig_user = function(c, d) {
  512.                     if (f.$isEmpty(c)) return a.when();
  513.                     var e = a.defer(),
  514.                         g = b.check_user.get({
  515.                             user: c
  516.                         }, function() {
  517.                             g.invalid ? e.reject() : e.resolve()
  518.                         });
  519.                     return e.promise
  520.                 }
  521.             }
  522.         }
  523.     }]).directive("emailAvailability", ["$q", "remote", function(a, b) {
  524.         return {
  525.             require: "ngModel",
  526.             link: function(c, d, e, f) {
  527.                 f.$asyncValidators.unique_email = function(c, d) {
  528.                     if (f.$isEmpty(c)) return a.when();
  529.                     var e = a.defer(),
  530.                         g = b.check_email.get({
  531.                             email: c
  532.                         }, function() {
  533.                             g.count > 0 ? e.reject() : e.resolve()
  534.                         });
  535.                     return e.promise
  536.                 }
  537.             }
  538.         }
  539.     }]).directive("slimScroll", function() {
  540.         return {
  541.             restrict: "A",
  542.             link: function(a, b, c) {
  543.                 var d = b.slimScroll({
  544.                     height: a.$eval(c.scrollHeight)
  545.                 });
  546.                 return d
  547.             }
  548.         }
  549.     }).factory("principal", ["$rootScope", "$q", "remote", "$modal", function(a, b, c, d) {
  550.         var e = void 0,
  551.             f = !1;
  552.         return {
  553.             isIdentityResolved: function() {
  554.                 return angular.isDefined(e)
  555.             },
  556.             isAuthenticated: function() {
  557.                 return f
  558.             },
  559.             isInRole: function(a) {
  560.                 return f && e.roles ? -1 != e.roles.indexOf(a) : !1
  561.             },
  562.             isInAnyRole: function(a) {
  563.                 if (!f || !e.roles) return !1;
  564.                 for (var b = 0; b < a.length; b++)
  565.                     if (this.isInRole(a[b])) return !0;
  566.                 return !1
  567.             },
  568.             authenticate: function(b) {
  569.                 e = b, f = null != b, f && (a.main.name = b.ig_user, a.main.user_id = b.user_id, a.main.thumbnail = b.thumbnail, a.main.next_upload = b.next_upload, b.thumbnail.match(/anonymousUser/) && c.update_profile_pic.get({
  570.                     ig_user: a.main.name
  571.                 }, function(b) {
  572.                     a.main.thumbnail = b.image_url
  573.                 }, function(a) {}), a.main.coins = b.coins, a.main.is_autolike = b.is_autolike, a.playCoinsDiff(b.coins_diff_while_away, !0))
  574.             },
  575.             identity: function(g) {
  576.                 var h = b.defer();
  577.                 return g === !0 && (e = void 0), angular.isDefined(e) ? (h.resolve(e), h.promise) : (c.identity.get({}, function(b) {
  578.                     if (!b.ig_user) return f = !1, e = {}, void h.reject();
  579.                     e = b, f = !0, a.main.name = b.ig_user;
  580.                     var g = function(b) {
  581.                         d.open({
  582.                             templateUrl: "http://cdn.gramblr.com/views/modals/signin_instagram.html?5",
  583.                             controller: "AuthInstagramCtrl",
  584.                             resolve: {
  585.                                 identity: function() {
  586.                                     return {
  587.                                         ig_user: a.main.name
  588.                                     }
  589.                                 },
  590.                                 errordata: function() {
  591.                                     return b
  592.                                 }
  593.                             },
  594.                             size: "sm"
  595.                         })
  596.                     };
  597.                     c.try_login.save({
  598.                         ig_user: b.ig_user
  599.                     }, function(a) {
  600.                         500 == a.status && g(a)
  601.                     }, function(a) {
  602.                         500 == a.status && g(a.data)
  603.                     }), a.main.user_id = b.user_id, a.main.thumbnail = b.thumbnail, a.main.coins = b.coins, a.main.is_autolike = b.is_autolike, a.main.next_upload = b.next_upload, b.thumbnail.match(/anonymousUser/) && c.update_profile_pic.get({
  604.                         ig_user: a.main.name
  605.                     }, function(b) {
  606.                         a.main.thumbnail = b.image_url
  607.                     }, function(a) {}), a.playCoinsDiff(b.coins_diff_while_away, !0), h.resolve(e)
  608.                 }, function(a) {
  609.                     e = {}, f = !1, h.reject(a)
  610.                 }), h.promise)
  611.             }
  612.         }
  613.     }]).factory("authorization", ["$rootScope", "$state", "principal", "$cookies", function(a, b, c, d) {
  614.         return {
  615.             authorize: function() {
  616.                 var e = function() {
  617.                     if ("1" != d.get("IsMember")) {
  618.                         var c = new Date;
  619.                         return c.setDate(c.getDate() + 999), d.put("IsMember", "1", {
  620.                             expires: c
  621.                         }), void b.transitionTo("signup")
  622.                     }
  623.                     a.toState.data.mustLogout || (a.returnToState = a.toState, a.returnToStateParams = a.toStateParams), b.go("signin")
  624.                 };
  625.                 return c.identity().then(function() {
  626.                     var d = c.isAuthenticated();
  627.                     d && a.toState.data.mustLogout && b.transitionTo("upload.step1"), a.toState.data.roles && a.toState.data.roles.length > 0 && !c.isInAnyRole(a.toState.data.roles) && (d ? b.go("403") : e())
  628.                 }, function() {
  629.                     e()
  630.                 })
  631.             }
  632.         }
  633.     }]).controller("AuthInstagramCtrl", ["$scope", "$state", "principal", "remote", "identity", "$modalInstance", "$translate", "checkpoints", "errordata", function(a, b, c, d, e, f, g, h, i) {
  634.         a.$on("$destroy", function() {
  635.             h.clear()
  636.         }), a.is_antivirus = !1, a.is_checkpoint = !1, a.igsignin = {}, a.igsignin.username = e.ig_user, a.disableLoginButton = !1, a.loading = !1, a.has_login = e.can_change_username, a.sendVerifyChoice = function() {
  637.             h.sendVerifyChoice(a.igsignin.username, a.igsignin.password ? a.igsignin.password : "")
  638.         }, a.sendSecurityCode = function() {
  639.             h.sendSecurityCode(a.igsignin.username, a.igsignin.password ? a.igsignin.password : "", a.doSigninInstagram)
  640.         }, a.askReplay = function() {
  641.             h.askReplay(a.igsignin.username, a.igsignin.password ? a.igsignin.password : "")
  642.         }, a.untrusted_choice = null, a.$watch("untrusted_choice", function(b) {
  643.             h.untrusted_choice = a.untrusted_choice
  644.         }), a.$watch("igSigninError", function(b, c) {
  645.             b != c && (h.serverError = a.igSigninError)
  646.         }), a.$watch(function() {
  647.             return h.untrusted_choice
  648.         }, function(b) {
  649.             a.untrusted_choice = h.untrusted_choice
  650.         }), a.$watch(function() {
  651.             return h.loading
  652.         }, function(b) {
  653.             a.loading = h.loading
  654.         }), a.$watch(function() {
  655.             return h.loading_replay
  656.         }, function(b) {
  657.             a.loading_replay = h.loading_replay
  658.         }), a.$watch(function() {
  659.             return h.serverError
  660.         }, function(b, c) {
  661.             b != c && (a.igSigninError = h.serverError)
  662.         }), a.$watchCollection(function() {
  663.             return h.untrusted
  664.         }, function(b) {
  665.             a.untrusted = h.untrusted
  666.         }), a.$watchCollection(function() {
  667.             return h.submit_code
  668.         }, function(b) {
  669.             a.submit_code = h.submit_code
  670.         }), i && (i.type && "untrusted" == i.type ? (h.handle_untrusted(i.html, i.url), a.igSigninError = h.serverError, a.untrusted = h.untrusted, a.submit_code = h.submit_code, a.untrusted_choice = h.untrusted_choice) : !i.type || "sms" != i.type && "email" != i.type ? i.message ? ("Could not login to Instagram. Instagram returned this message - " == i.message ? a.igSigninError = "Could not login, possibly due to phone or email verification requirements. If you have two-factor authentication enabled, unfortunately we do not support this login method at the moment. Otherwise, sign out and back into instagram.com and try again from here afterwards." : i.message.match("<!DOCTYPE") || i.message.match("<html><head") ? a.igSigninError = "Instagram is down?" : a.igSigninError = i.message.replace("Enforcement failed", "Installation is invalid due to a network error. Unblock app.gramblr.com:4344 in your firewall and restart the computer. Also, try not to use auto-complete to fill the fields (type each one by hand)"), h.serverError = a.igSigninError) : g("FOLLOW_LOGIN_LINK").then(function(b) {
  671.             a.igSigninError = b
  672.         }) : (h.handle_code_request_raw(i.html, i.url), a.igSigninError = h.serverError, a.untrusted = h.untrusted, a.submit_code = h.submit_code, a.untrusted_choice = h.untrusted_choice)), a.doSigninInstagram = function() {
  673.             a.disableLoginButton = !0, a.signinError = null, a.loading = !0, a.is_antivirus = !1, a.is_checkpoint = !1;
  674.             var i = new Date,
  675.                 j = i.getTimezoneOffset();
  676.             d.login_instagram.save({
  677.                 ig_user: a.igsignin.username,
  678.                 ig_pass: a.igsignin.password,
  679.                 timezone: j,
  680.                 change_username: a.igsignin.username != e.ig_user
  681.             }, function(d) {
  682.                 a.loading = !1, a.disableLoginButton = !1, c.authenticate(d), a.returnToState ? (b.go(a.returnToState.name, a.returnToStateParams), f.close()) : (f.close(), b.transitionTo("upload.step1"))
  683.             }, function(e) {
  684.                 if (e.data.message.match(/Already logged in/)) c.authenticate(c.identity(!0).then(function() {
  685.                     a.loading = !1, a.disableLoginButton = !1, b.transitionTo("upload.step1")
  686.                 }));
  687.                 else {
  688.                     for (var f = ["つかり", "Toegan", "vinden", "introuvable", "trouver", "найти", "encontrar", "finden", "bulmak", "Access", "access", "Accès", "Acesso", "accès", "EriÅŸim", "доступ", "Zugriff"], i = 0; i < f.length; i++)
  689.                         if (e.data.message.match(f[i])) {
  690.                             a.is_antivirus = !0;
  691.                             break
  692.                         }
  693.                     a.loading = !1, a.disableLoginButton = !1, "Could not login to Instagram. Instagram returned this message - " == e.data.message ? a.igSigninError = "Could not login, possibly due to phone or email verification requirements. If you have two-factor authentication enabled, unfortunately we do not support this login method at the moment. Otherwise, sign out and back into instagram.com and try again from here afterwards." : e.data.message.match("challenge_required") || e.data.message.match("checkpoint_required") ? (a.is_checkpoint = !0, e.data.type && "untrusted" == e.data.type ? h.handle_untrusted(e.data.html, e.data.url) : !e.data.type || "sms" != e.data.type && "email" != e.data.type ? g("FOLLOW_LOGIN_LINK").then(function(b) {
  694.                         a.igSigninError = b
  695.                     }) : h.handle_code_request_raw(e.data.html, e.data.url)) : e.data.message.match("<!DOCTYPE") || e.data.message.match("<html><head") ? a.igSigninError = "Instagram is down?" : a.igSigninError = e.data.message.replace("Enforcement failed", "The process did not start correctly. Try rebooting"), d.log_activity.save({
  696.                         severity: "error",
  697.                         ig_user: a.igsignin.username,
  698.                         func: "doLoginInstagramSignin",
  699.                         message: e.data.message
  700.                     }, function(a) {}, function(a) {})
  701.                 }
  702.             })
  703.         }
  704.     }]).controller("AuthCtrl", ["$rootScope", "$scope", "$state", "principal", "remote", "$modal", "$stateParams", "$translate", function(a, b, c, d, e, f, g, h) {
  705.         b.signup = {}, b.signin = {}, b.is_antivirus = !1, b.is_checkpoint = !1, b.forgotpassword = {}, b.changepassword = {}, b.loading = !1, angular.isDefined(g.email) && (b.email = g.email), b.doSignin = function() {
  706.             $(document.forms.signinForm).find("input").checkAndTriggerAutoFillEvent(), a.changedpassword = !1, b.signinError = null, b.loading = !0, b.is_checkpoint = !1, b.signin.email = $("#signinemail").val(), b.signin.password = $("#signinpass").val(), e.login.save({
  707.                 email: b.signin.email,
  708.                 password: b.signin.password
  709.             }, function(a) {
  710.                 b.loading = !1, d.authenticate(a), b.returnToState ? c.go(b.returnToState.name, b.returnToStateParams) : c.transitionTo("upload.step1")
  711.             }, function(a) {
  712.                 if (b.loading = !1, "Could not login to Instagram. Instagram returned this message - " == a.data.message) b.signinError = "Could not login, possibly due to phone or email verification requirements. If you have two-factor authentication enabled, unfortunately we do not support this login method at the moment. Otherwise, sign out and back into instagram.com and try again from here afterwards.";
  713.                 else if (a.data.message.match("challenge_required") || a.data.message.match("checkpoint_required")) {
  714.                     b.is_checkpoint = !0;
  715.                     f.open({
  716.                         templateUrl: "http://cdn.gramblr.com/views/modals/signin_instagram.html?5",
  717.                         controller: "AuthInstagramCtrl",
  718.                         resolve: {
  719.                             errordata: function() {
  720.                                 return a.data
  721.                             },
  722.                             identity: function() {
  723.                                 return a.data.identity
  724.                             }
  725.                         },
  726.                         size: "sm"
  727.                     });
  728.                     h("FOLLOW_LOGIN_LINK").then(function(a) {
  729.                         b.signinError = a
  730.                     })
  731.                 } else if (a.data.identity && a.data.identity.ig_user != '') {
  732.                     f.open({
  733.                         templateUrl: "http://cdn.gramblr.com/views/modals/signin_instagram.html?5",
  734.                         controller: "AuthInstagramCtrl",
  735.                         resolve: {
  736.                             errordata: function() {
  737.                                 return {
  738.                                     message: a.data.message
  739.                                 }
  740.                             },
  741.                             identity: function() {
  742.                                 return a.data.identity
  743.                             }
  744.                         },
  745.                         size: "sm"
  746.                     })
  747.                 } else a.data.message.match(/Enforcement failed/) ? (b.signinError = "The process did not start correctly. Try rebooting", e.log_error.save({
  748.                     severity: "error",
  749.                     func: "doSignin",
  750.                     message: a.data.message
  751.                 }, function(a) {}, function(a) {})) : a.data.message.match("<!DOCTYPE") || a.data.message.match("<html><head") ? b.signinError = "Instagram is down?" : (b.signinError = a.data.message, e.log_error.save({
  752.                     severity: "error",
  753.                     func: "doSignin",
  754.                     message: a.data.message
  755.                 }, function(a) {}, function(a) {}))
  756.             })
  757.         }, b.openResetInstructions = function() {
  758.             f.open({
  759.                 templateUrl: "http://cdn.gramblr.com/views/modals/reset_instagram_pass.html",
  760.                 size: "lg"
  761.             })
  762.         }, b.doSignup = function() {
  763.             $(document.forms.signupForm).find("input").checkAndTriggerAutoFillEvent(), b.loading = !0, b.signupError = null, b.is_antivirus = !1, b.is_checkpoint = !1;
  764.             var a = new Date;
  765.             b.signup.email = $("#signupemail").val().trim(), b.signup.password = $("#signuppass").val(), b.signup.confirmPassword = $("#signuppassconfirm").val(), b.signup.ig_user = $("#instagramuser").val().trim(), b.signup.ig_pass = $("#instagrampass").val(), b.signup.timezone = a.getTimezoneOffset(), e.register.save(b.signup, function(a) {
  766.                 d.authenticate(a), c.transitionTo("upload.step1"), b.loading = !1
  767.             }, function(a) {
  768.                 b.loading = !1;
  769.                 for (var d = ["つかり", "Toegan", "vinden", "introuvable", "trouver", "найти", "encontrar", "finden", "bulmak", "Access", "access", "Accès", "Acesso", "accès", "EriÅŸim", "доступ", "Zugriff"], g = 0; g < d.length; g++)
  770.                     if (a.data.message.match(d[g])) {
  771.                         b.is_antivirus = !0;
  772.                         break
  773.                     }
  774.                 if (a.data.message.match(/belongs to an account/)) b.signin.email = $("#signupemail").val(), b.signin.password = b.signup.password, c.transitionTo("signin"), b.doSignin();
  775.                 else if (a.data.message.match("challenge_required") || a.data.message.match("checkpoint_required")) {
  776.                     f.open({
  777.                         templateUrl: "http://cdn.gramblr.com/views/modals/signin_instagram.html?5",
  778.                         controller: "AuthInstagramCtrl",
  779.                         resolve: {
  780.                             errordata: function() {
  781.                                 return a.data
  782.                             },
  783.                             identity: function() {
  784.                                 return {
  785.                                     ig_user: b.signup.ig_user
  786.                                 }
  787.                             }
  788.                         },
  789.                         size: "sm"
  790.                     });
  791.                     h("FOLLOW_LOGIN_LINK").then(function(a) {
  792.                         b.signinError = a
  793.                     })
  794.                 } else a.data.message.match(/Enforcement failed/) ? (b.signupError = "Installation is invalid due to a network error. Unblock app.gramblr.com:4344 in your firewall and restart the computer. Also, try not to use auto-complete to fill the fields (type each one by hand)", e.log_error.save({
  795.                     file: "app.js",
  796.                     func: "doSignup",
  797.                     message: "Signup error: " + a.data.message,
  798.                     args: []
  799.                 }, function() {}, function() {})) : ("Could not login to Instagram. Instagram returned this message - " == a.data.message ? b.signupError = "Could not login, possibly due to phone or email verification requirements. If you have two-factor authentication enabled, unfortunately we do not support this login method at the moment. Otherwise, sign out and back into instagram.com and try again from here afterwards." : a.data.message.match("<!DOCTYPE") || a.data.message.match("<html><head") ? b.signupError = "Instagram is down?" : b.signupError = a.data.message.replace("Enforcement failed", "Installation is invalid due to a network error. Unblock app.gramblr.com:4344 in your firewall and restart the computer. Also, try not to use auto-complete to fill the fields (type each one by hand)"), e.log_error.save({
  800.                     file: "app.js",
  801.                     func: "doSignup",
  802.                     message: "Signup error: " + a.data.message,
  803.                     args: []
  804.                 }, function() {}, function() {}))
  805.             })
  806.         }, b.doSendToken = function() {
  807.             $(document.forms.forgotPasswordForm).find("input").checkAndTriggerAutoFillEvent(), b.loading = !0, e.forgot_password.save({
  808.                 email: b.forgotpassword.email
  809.             }, function(a) {
  810.                 b.loading = !1, c.transitionTo("changepassword", {
  811.                     email: b.forgotpassword.email
  812.                 })
  813.             }, function(a) {
  814.                 b.loading = !1, b.forgotpasswordError = a.data.message
  815.             })
  816.         }, b.doChangePassword = function() {
  817.             $(document.forms.changePasswordForm).find("input").checkAndTriggerAutoFillEvent(), b.loading = !0, e.change_password.save({
  818.                 email: b.email,
  819.                 password: b.changepassword.password,
  820.                 confirm_password: b.changepassword.confirmPassword,
  821.                 secret_token: b.changepassword.secretToken
  822.             }, function(d) {
  823.                 b.loading = !1, a.changedpassword = !0, c.transitionTo("signin")
  824.             }, function(c) {
  825.                 b.loading = !1, a.changedpassword = !1, b.changepasswordError = c.data.message
  826.             })
  827.         }, b.openTerms = function() {
  828.             f.open({
  829.                 templateUrl: "http://cdn.gramblr.com/views/pages/terms.html",
  830.                 size: "lg"
  831.             })
  832.         }
  833.     }])
  834. }(),
  835. function() {
  836.     function a(a) {
  837.         a.useCookieStorage(), a.useSanitizeValueStrategy("escape"), a.useStaticFilesLoader({
  838.             prefix: "http://cdn.gramblr.com/i18n/",
  839.             suffix: ".json"
  840.         });
  841.         var b = window.navigator.userLanguage || window.navigator.language;
  842.         switch (b = b.substr(0, 2)) {
  843.             case "en":
  844.             case "es":
  845.             case "de":
  846.             case "tr":
  847.             case "pt":
  848.             case "fr":
  849.             case "ru":
  850.             case "ar":
  851.             case "id":
  852.             case "ko":
  853.             case "jp":
  854.             case "zh":
  855.             case "he":
  856.                 a.preferredLanguage(b);
  857.                 break;
  858.             default:
  859.                 a.preferredLanguage("en")
  860.         }
  861.     }
  862.  
  863.     function b(a, b) {
  864.         switch (b.use()) {
  865.             case "en":
  866.                 a.lang = "English";
  867.                 break;
  868.             case "es":
  869.                 a.lang = "Español";
  870.                 break;
  871.             case "fr":
  872.                 a.lang = "Français";
  873.                 break;
  874.             case "de":
  875.                 a.lang = "Deutsche";
  876.                 break;
  877.             case "tr":
  878.                 a.lang = "Türk";
  879.                 break;
  880.             case "pt":
  881.                 a.lang = "Portugal";
  882.                 break;
  883.             case "ru":
  884.                 a.lang = "Русский язык";
  885.                 break;
  886.             case "ar":
  887.                 a.lang = "العربية";
  888.                 break;
  889.             case "ko":
  890.                 a.lang = "한국어";
  891.                 break;
  892.             case "jp":
  893.                 a.lang = "日本語";
  894.                 break;
  895.             case "id":
  896.                 a.lang = "Bahasa Indonesia";
  897.                 break;
  898.             case "zh":
  899.                 a.lang = "绰号";
  900.                 break;
  901.             case "he":
  902.                 a.lang = "עברית‎";
  903.                 break;
  904.             default:
  905.                 b.use("en"), a.lang = "English"
  906.         }
  907.         a.setLang = function(c) {
  908.             switch (c) {
  909.                 case "English":
  910.                     moment.locale("en"), b.use("en");
  911.                     break;
  912.                 case "Français":
  913.                     moment.locale("fr"), b.use("fr");
  914.                     break;
  915.                 case "Español":
  916.                     moment.locale("es"), b.use("es");
  917.                     break;
  918.                 case "Deutsche":
  919.                     moment.locale("de"), b.use("de");
  920.                     break;
  921.                 case "Türk":
  922.                     moment.locale("tr"), b.use("tr");
  923.                     break;
  924.                 case "Portugal":
  925.                     moment.locale("pt"), b.use("pt");
  926.                     break;
  927.                 case "Русский язык":
  928.                     moment.locale("ru"), b.use("ru");
  929.                     break;
  930.                 case "العربية":
  931.                     moment.locale("ar"), b.use("ar");
  932.                     break;
  933.                 case "绰号":
  934.                     moment.locale("zh"), b.use("zh");
  935.                     break;
  936.                 case "日本語":
  937.                     moment.locale("jp"), b.use("jp");
  938.                     break;
  939.                 case "한국어":
  940.                     moment.locale("ko"), b.use("ko");
  941.                     break;
  942.                 case "Bahasa Indonesia":
  943.                     moment.locale("id"), b.use("id");
  944.                     break;
  945.                 case "עברית‎":
  946.                     moment.locale("he"), b.use("he")
  947.             }
  948.             return a.lang = c
  949.         }, a.getLangCode = function(b) {
  950.             switch (b || (b = a.lang), b) {
  951.                 case "English":
  952.                     return "EN";
  953.                 case "Español":
  954.                     return "ES";
  955.                 case "Deutsche":
  956.                     return "DE";
  957.                 case "Portugal":
  958.                     return "PT";
  959.                 case "Français":
  960.                     return "FR";
  961.                 case "Türk":
  962.                     return "TR";
  963.                 case "Русский язык":
  964.                     return "RU";
  965.                 case "العربية":
  966.                     return "AR";
  967.                 case "绰号":
  968.                     return "ZH";
  969.                 case "日本語":
  970.                     return "JP";
  971.                 case "한국어":
  972.                     return "KO";
  973.                 case "Bahasa Indonesia":
  974.                     return "ID";
  975.                 case "עברית‎":
  976.                     return "HE"
  977.             }
  978.         }, a.setLang(a.lang)
  979.     }
  980.     angular.module("app.i18n", ["pascalprecht.translate", "ngSanitize", "ngCookies"]).config(["$translateProvider", a]).controller("LangCtrl", ["$scope", "$translate", b])
  981. }(),
  982. function() {
  983.     "use strict";
  984.  
  985.     function a(a) {
  986.         function b(b, c, d) {
  987.             var e;
  988.             e = $("#app"), c.on("click", function(b) {
  989.                 return e.hasClass("nav-collapsed-min") ? (e.removeClass("nav-collapsed-min"), a.$broadcast("nav:resize")) : (e.addClass("nav-collapsed-min"), a.$broadcast("nav:reset"), a.$broadcast("nav:resize")), b.preventDefault()
  990.             })
  991.         }
  992.         var c = {
  993.             restrict: "A",
  994.             link: b
  995.         };
  996.         return c
  997.     }
  998.  
  999.     function b() {
  1000.         function a(a, b, c) {
  1001.             var d, e, f, g, h, i, j, k, l, m, n;
  1002.             m = 250, j = $(window), g = b.find("ul").parent("li"), g.append('<i class="ti-angle-down icon-has-ul-h"></i><i class="ti-angle-right icon-has-ul"></i>'), d = g.children("a"), h = b.children("li").not(g), e = h.children("a"), f = $("#app"), i = $("#nav-container"), d.on("click", function(a) {
  1003.                 var b, c;
  1004.                 return f.hasClass("nav-collapsed-min") || i.hasClass("nav-horizontal") && j.width() >= 768 ? !1 : (c = $(this), b = c.parent("li"), g.not(b).removeClass("open").find("ul").slideUp(m), b.toggleClass("open").find("ul").stop().slideToggle(m), void a.preventDefault())
  1005.             }), e.on("click", function(a) {
  1006.                 g.removeClass("open").find("ul").slideUp(m)
  1007.             }), a.$on("nav:reset", function(a) {
  1008.                 g.removeClass("open").find("ul").slideUp(m)
  1009.             }), k = void 0, l = j.width(), n = function() {
  1010.                 var a;
  1011.                 a = j.width(), 768 > a && f.removeClass("nav-collapsed-min"), 768 > l && a >= 768 && i.hasClass("nav-horizontal") && g.removeClass("open").find("ul").slideUp(m), l = a
  1012.             }, j.resize(function() {
  1013.                 var a;
  1014.                 clearTimeout(a), a = setTimeout(n, 300)
  1015.             })
  1016.         }
  1017.         var b = {
  1018.             restrict: "A",
  1019.             link: a
  1020.         };
  1021.         return b
  1022.     }
  1023.  
  1024.     function c() {
  1025.         function a(a, b, c, d) {
  1026.             var e, f, g;
  1027.             f = b.find("a"), g = function() {
  1028.                 return d.path()
  1029.             }, e = function(a, b) {
  1030.                 return b = "#" + b, angular.forEach(a, function(a) {
  1031.                     var c, d, e;
  1032.                     return d = angular.element(a), c = d.parent("li"), e = d.attr("href"), c.hasClass("active") && c.removeClass("active"), 0 === b.indexOf(e) ? c.addClass("active") : void 0
  1033.                 })
  1034.             }, e(f, d.path()), a.$watch(g, function(a, b) {
  1035.                 return a !== b ? e(f, d.path()) : void 0
  1036.             })
  1037.         }
  1038.         var b = {
  1039.             restrict: "A",
  1040.             controller: ["$scope", "$element", "$attrs", "$location", a]
  1041.         };
  1042.         return b
  1043.     }
  1044.  
  1045.     function d() {
  1046.         function a(a, b, c) {
  1047.             b.on("click", function() {
  1048.                 return $("#app").toggleClass("on-canvas")
  1049.             })
  1050.         }
  1051.         var b = {
  1052.             restrict: "A",
  1053.             link: a
  1054.         };
  1055.         return b
  1056.     }
  1057.     angular.module("app.nav", []).directive("toggleNavCollapsedMin", ["$rootScope", a]).directive("collapseNav", b).directive("highlightActive", c).directive("toggleOffCanvas", d)
  1058. }(),
  1059. function() {
  1060.     "use strict";
  1061.     angular.module("app.errors", ["ngResource", "ui.bootstrap", "app.api"]).controller("ErrorCtrl", ["$scope", "remote", "$modalInstance", "errorDetails", "stackTrace", "$http", function(a, b, c, d, e, f) {
  1062.         a.is_antivirus = !1, (d.match(/ini/) || d.match(/access/)) && (a.is_antivirus = !0), a.errorMessage = d, a.close = function() {
  1063.             c.close()
  1064.         }, a.sendReport = function() {
  1065.             f({
  1066.                 method: "POST",
  1067.                 url: "/add_report",
  1068.                 headers: {
  1069.                     "Content-Type": "text/plain"
  1070.                 },
  1071.                 transformRequest: function(a) {
  1072.                     return a
  1073.                 },
  1074.                 data: e
  1075.             }).success(function() {
  1076.                 c.close()
  1077.             })
  1078.         }
  1079.     }]).factory("errors", ["$modal", "$translate", function(a, b) {
  1080.         return {
  1081.             alert: function(c, d, e) {
  1082.                 function f(b) {
  1083.                     a.open({
  1084.                         templateUrl: "http://cdn.gramblr.com/views/modals/error.html",
  1085.                         size: "lg",
  1086.                         resolve: {
  1087.                             errorDetails: function() {
  1088.                                 return b
  1089.                             },
  1090.                             stackTrace: function() {
  1091.                                 return b + "\nIn " + d + "\n" + JSON.stringify(e)
  1092.                             }
  1093.                         },
  1094.                         controller: "ErrorCtrl"
  1095.                     })
  1096.                 }
  1097.                 null == c ? b("GRAMBLR_CRASHED").then(function(a) {
  1098.                     f(a)
  1099.                 }) : f(c)
  1100.             }
  1101.         }
  1102.     }])
  1103. }(),
  1104. function() {
  1105.     "use strict";
  1106.     angular.module("app.header", ["ngResource", "ui.bootstrap", "app.api", "app.errors", "frapontillo.bootstrap-switch", "ngFileUpload"]).directive("profilePicture", ["remote", "$rootScope", function(a, b) {
  1107.         var c = {
  1108.             link: function(c, d, e) {
  1109.                 d.bind("error", function() {
  1110.                     b.main.thumbnail = "http://cdn.gramblr.com/images/anonymous-user.png", angular.element(this).attr("src", "http://cdn.gramblr.com/images/anonymous-user.png"), b.main.update_profile_pic || (b.main.update_profile_pic = 1), b.main.update_profile_pic++ > 10 || a.update_profile_pic.get({
  1111.                         ig_user: b.main.name
  1112.                     }, function(a) {
  1113.                         angular.element(this).attr("src", a.image_url), b.main.thumbnail = a.image_url
  1114.                     }, function(a) {})
  1115.                 })
  1116.             }
  1117.         };
  1118.         return c
  1119.     }]).directive("ratingsProfilePicture", ["remote", "$rootScope", function(a, b) {
  1120.         var c = {
  1121.             link: function(a, c, d) {
  1122.                 c.bind("error", function() {
  1123.                     b.main.thumbnail = "http://cdn.gramblr.com/images/anonymous-user.png", angular.element(this).attr("src", "http://cdn.gramblr.com/images/anonymous-user.png")
  1124.                 })
  1125.             }
  1126.         };
  1127.         return c
  1128.     }]).filter("propsFilter", function() {
  1129.         return function(a, b) {
  1130.             var c = [];
  1131.             if (angular.isArray(a))
  1132.                 for (var d = Object.keys(b), e = 0; e < a.length; e++) {
  1133.                     for (var f = a[e], g = !1, h = 0; h < d.length; h++) {
  1134.                         var i = d[h],
  1135.                             j = b[i].toLowerCase();
  1136.                         if (-1 !== f[i].toString().toLowerCase().indexOf(j)) {
  1137.                             g = !0;
  1138.                             break
  1139.                         }
  1140.                     }
  1141.                     g && c.push(f)
  1142.                 } else c = a;
  1143.             return c
  1144.         }
  1145.     }).provider("checkpoints", [function() {
  1146.         this.$get = ["remote", function(a) {
  1147.             var b = function() {
  1148.                 var b = this;
  1149.                 this.untrusted_choice = null;
  1150.                 var c = function(a) {
  1151.                     var c = JSON.parse(a);
  1152.                     if (!d(c)) {
  1153.                         var e = c.extraData.content,
  1154.                             f = {};
  1155.                         f.navigation = c.navigation, angular.forEach(e, function(a, b) {
  1156.                             "GraphChallengePageText" == a.__typename ? f.prompt_text = a.text : "GraphChallengePageSecondaryText" == a.__typename ? f.prompt_replay_text = a.html.replace('<a href="javascript:_replay()">', "").replace("</a>", "") : "fields" in a && (f.call_to_action = a.call_to_action, f.label = a.fields[0].value.label, f.input_name = a.fields[0].input_name)
  1157.                         }), b.submit_code = f
  1158.                     }
  1159.                 };
  1160.                 this.handle_code_request_raw = function(a, d) {
  1161.                     b.checkpoint_url = d;
  1162.                     var e = JSON.parse(a.match(/window._sharedData = (.*?);<\/script>/im)[1]),
  1163.                         f = e.entry_data.Challenge[0];
  1164.                     c(JSON.stringify(f))
  1165.                 }, this.handle_untrusted = function(a, c) {
  1166.                     b.checkpoint_url = c;
  1167.                     var d = JSON.parse(a.match(/window._sharedData = (.*?);<\/script>/im)[1]),
  1168.                         e = d.entry_data.Challenge[0],
  1169.                         f = {};
  1170.                     f.navigation = e.navigation, angular.forEach(e.extraData.content, function(a, c) {
  1171.                         "GraphChallengePageText" == a.__typename ? f.prompt_text = a.text : "fields" in a && (f.call_to_action = a.call_to_action, f.choices = [], angular.forEach(a.fields[0].values, function(a, c) {
  1172.                             f.choices[c] = {}, f.choices[c].value = a.value, f.choices[c].text = a.label, a.selected && (b.untrusted_choice = a.value)
  1173.                         }))
  1174.                     }), b.untrusted = f, b.serverError = f.prompt_text
  1175.                 };
  1176.                 var d = function(a) {
  1177.                     return a.challenge && a.challenge.errors && a.challenge.errors.length > 0 ? (b.serverError = a.challenge.errors[0], !0) : a.errors && a.errors.length > 0 ? (b.serverError = a.errors[0], !0) : !1
  1178.                 };
  1179.                 this.sendVerifyChoice = function(e, f) {
  1180.                     b.loading = !0, a.verify_untrusted.save({
  1181.                         ig_user: e,
  1182.                         ig_pass: f,
  1183.                         path: b.untrusted.navigation.forward,
  1184.                         args: "choice=" + b.untrusted_choice,
  1185.                         referrer: b.checkpoint_url
  1186.                     }, function(a) {
  1187.                         b.serverError = null, b.loading = !1, c(a.html), b.untrusted = null
  1188.                     }, function(a) {
  1189.                         b.serverError = null, b.loading = !1;
  1190.                         var c = JSON.parse(a.data.html);
  1191.                         d(c)
  1192.                     })
  1193.                 }, this.askReplay = function(c, e) {
  1194.                     b.loading = !0, b.loading_replay = !0, b.serverError = null, a.verify_untrusted.save({
  1195.                         ig_user: c,
  1196.                         ig_pass: e,
  1197.                         path: b.submit_code.navigation.replay,
  1198.                         args: "",
  1199.                         referrer: b.checkpoint_url
  1200.                     }, function(a) {
  1201.                         b.loading = !1, b.loading_replay = !1;
  1202.                         var c = JSON.parse(a.html);
  1203.                         d(c) || (b.untrusted = null)
  1204.                     }, function(a) {
  1205.                         b.loading_replay = !1, b.loading = !1;
  1206.                         var c = JSON.parse(a.data.html);
  1207.                         d(c)
  1208.                     })
  1209.                 }, this.sendSecurityCode = function(c, e, f) {
  1210.                     b.loading = !0, b.serverError = null, a.verify_untrusted.save({
  1211.                         ig_user: c,
  1212.                         ig_pass: e,
  1213.                         path: b.submit_code.navigation.forward,
  1214.                         args: b.submit_code.input_name + "=" + b.submit_code.security_code.replace(" ", ""),
  1215.                         referrer: b.checkpoint_url
  1216.                     }, function(a) {
  1217.                         b.loading = !1;
  1218.                         var c = JSON.parse(a.html);
  1219.                         d(c) || (b.submit_code = null, f())
  1220.                     }, function(a) {
  1221.                         b.loading = !1;
  1222.                         var c = JSON.parse(a.data.html);
  1223.                         d(c)
  1224.                     })
  1225.                 }, this.clear = function() {
  1226.                     b.untrusted = null, b.submit_code = null, b.checkpoint_url = null, b.serverError = null, b.untrusted_choice = null
  1227.                 }
  1228.             };
  1229.             return new b
  1230.         }]
  1231.     }]).controller("SwitchAccountCtrl", ["$rootScope", "$scope", "remote", "$state", "errors", "principal", "$modalInstance", "$translate", "checkpoints", function(a, b, c, d, e, f, g, h, i) {
  1232.         a.hasModalOpen = !0, b.$on("$destroy", function() {
  1233.             a.hasModalOpen = !1, i.clear()
  1234.         }), b.is_new = !1, b.setNew = function() {
  1235.             b.is_new = !0
  1236.         }, b.unsetNew = function() {
  1237.             b.is_new = !1
  1238.         }, b.is_checkpoint = !1, b.serverError = null, b.selected = {}, b.accounts = [], b.security_code = "", b.loading = !1, b.sendVerifyChoice = function() {
  1239.             i.sendVerifyChoice(b.is_new ? b.account.username : b.main.to_username, b.is_new ? b.account.password : b.main.to_pass)
  1240.         }, b.sendSecurityCode = function() {
  1241.             i.sendSecurityCode(b.is_new ? b.account.username : b.main.to_username, b.is_new ? b.account.password : b.main.to_pass, b.doSwitchAccount)
  1242.         }, b.askReplay = function() {
  1243.             i.askReplay(b.is_new ? b.account.username : b.main.to_username, b.is_new ? b.account.password : b.main.to_pass)
  1244.         }, b.untrusted_choice = null, b.$watch("untrusted_choice", function(a) {
  1245.             i.untrusted_choice = b.untrusted_choice
  1246.         }), b.$watch("serverError", function(a, c) {
  1247.             a != c && (i.serverError = b.serverError)
  1248.         }), b.$watch(function() {
  1249.             return i.untrusted_choice
  1250.         }, function(a) {
  1251.             b.untrusted_choice = i.untrusted_choice
  1252.         }), b.$watch(function() {
  1253.             return i.loading
  1254.         }, function(a) {
  1255.             b.loading = i.loading
  1256.         }), b.$watch(function() {
  1257.             return i.loading_replay
  1258.         }, function(a) {
  1259.             b.loading_replay = i.loading_replay
  1260.         }), b.$watch(function() {
  1261.             return i.serverError
  1262.         }, function(a, c) {
  1263.             a != c && (b.serverError = i.serverError)
  1264.         }), b.$watchCollection(function() {
  1265.             return i.untrusted
  1266.         }, function(a) {
  1267.             b.untrusted = i.untrusted
  1268.         }), b.$watchCollection(function() {
  1269.             return i.submit_code
  1270.         }, function(a) {
  1271.             b.submit_code = i.submit_code
  1272.         }), a.accounts || (a.accounts = c.ig_accounts.query()), b.accounts = a.accounts, b.forgetAccount = function(a) {
  1273.             c.forget_instagram_account.save({
  1274.                 ig_user: b.accounts[a].username
  1275.             }), b.accounts.splice(a, 1)
  1276.         }, b.account = {}, b.doSwitchAccount = function() {
  1277.             if (b.is_checkpoint = !1, b.is_new && b.account && b.account.username && b.account.password) {
  1278.                 b.loading = !0;
  1279.                 var d = new Date,
  1280.                     e = d.getTimezoneOffset();
  1281.                 c.add_instagram_account.save({
  1282.                     timezone: e,
  1283.                     ig_user: b.account.username.trim(),
  1284.                     ig_pass: b.account.password
  1285.                 }, function(c) {
  1286.                     b.loading = !1, f.authenticate(c), a.accounts = null, g.close()
  1287.                 }, function(a) {
  1288.                     b.loading = !1, a.data.message.match("challenge_required") || a.data.message.match("checkpoint_required") ? (b.is_checkpoint = !0, a.data.type && "untrusted" == a.data.type ? i.handle_untrusted(a.data.html, a.data.url) : !a.data.type || "sms" != a.data.type && "email" != a.data.type ? a.data.message.match("<!DOCTYPE") || a.data.message.match("<html><head") ? b.serverError = "Instagram is down?" : h("FOLLOW_LOGIN_LINK").then(function(a) {
  1289.                         b.serverError = a
  1290.                     }) : i.handle_code_request_raw(a.data.html, a.data.url)) : b.serverError = a.data.message, c.log_activity.save({
  1291.                         severity: "error",
  1292.                         func: "doSwitchAccountRegister",
  1293.                         ig_user: b.account.username,
  1294.                         message: a.data.message
  1295.                     }, function(a) {}, function(a) {})
  1296.                 })
  1297.             } else !b.is_new && b.account && b.account.selected && (b.loading = !0, b.main.to_username = b.account.selected.username, b.main.to_pass = b.account.password, c.switch_instagram_account.save({
  1298.                 ig_user: b.account.selected.username,
  1299.                 ig_pass: b.account.password,
  1300.                 change_pass: null != b.serverError
  1301.             }, function(a) {
  1302.                 b.loading = !1, f.authenticate(a), g.close()
  1303.             }, function(a) {
  1304.                 b.loading = !1, a.data.message.match("challenge_required") || a.data.message.match("checkpoint_required") ? (b.is_checkpoint = !0, a.data.type && "untrusted" == a.data.type ? i.handle_untrusted(a.data.html, a.data.url) : !a.data.type || "sms" != a.data.type && "email" != a.data.type ? a.data.message.match("<!DOCTYPE") || a.data.message.match("<html><head") ? b.serverError = "Instagram is down?" : h("FOLLOW_LOGIN_LINK").then(function(a) {
  1305.                     b.serverError = a
  1306.                 }) : i.handle_code_request_raw(a.data.html, a.data.url)) : b.serverError = a.data.message, c.log_activity.save({
  1307.                     severity: "error",
  1308.                     func: "doSwitchAccount",
  1309.                     ig_user: b.account.selected.username,
  1310.                     message: a.data.message
  1311.                 }, function(a) {}, function(a) {})
  1312.             }))
  1313.         }
  1314.     }]).controller("ChangeAvatarCtrl", ["$rootScope", "$scope", "Upload", "$state", "errors", "$log", "remote", function(a, b, c, d, e, f, g) {
  1315.         b.profile_loading = !1, b.$watch("file", function() {
  1316.             null != b.file && b.upload([b.file]), b.upload = function(d) {
  1317.                 d = d[0], d && (b.profile_loading = !0, angular.element(document.querySelector("#loader-profile")).removeClass("hidden"), c.upload({
  1318.                     url: "/api/instagram/change_profile_pic",
  1319.                     fields: {
  1320.                         ig_user: a.main.name
  1321.                     },
  1322.                     file: d,
  1323.                     sendFieldsAs: "form",
  1324.                     fileFormDataName: "photo"
  1325.                 }).success(function(c, d, e, f) {
  1326.                     angular.element(document.querySelector("#loader-profile")).addClass("hidden"), b.profile_loading = !1, a.main.thumbnail = c.profile_pic_url
  1327.                 }).error(function(a, c, d) {
  1328.                     angular.element(document.querySelector("#loader-profile")).addClass("hidden"), b.profile_loading = !1, e.alert(a)
  1329.                 }))
  1330.             }, b.removeAvatar = function() {
  1331.                 g.remove_avatar.save({
  1332.                     ig_user: a.main.name
  1333.                 }, function(b) {
  1334.                     a.main.thumbnail = b.profile_pic_url
  1335.                 }, function(a) {
  1336.                     e.alert(a)
  1337.                 })
  1338.             }
  1339.         })
  1340.     }]).controller("HeaderCtrl", ["$rootScope", "$scope", "remote", "$state", "errors", "principal", "$modal", "$timeout", "$interval", "$window", function(a, b, c, d, e, f, g, h, i, j) {
  1341.         b.rebooting = !1, b.reboot = function() {
  1342.             b.rebooting = !0, c.reboot.get();
  1343.             var a = function() {
  1344.                 h(function() {
  1345.                     c.ping.get({}, function() {
  1346.                         b.rebooting = !1
  1347.                     }, function() {
  1348.                         a()
  1349.                     })
  1350.                 }, 3e3)
  1351.             };
  1352.             a()
  1353.         }, b.countdown = "00:00:00", i(function() {
  1354.             if (a.main.next_upload > 0 || "00:00:00" != b.countdown && a.main.next_upload > -30) {
  1355.                 var d = parseInt(a.main.next_upload + 30 + "", 10),
  1356.                     e = Math.floor(d / 3600),
  1357.                     f = Math.floor((d - 3600 * e) / 60),
  1358.                     g = d - 3600 * e - 60 * f;
  1359.                 10 > e && (e = "0" + e), 10 > f && (f = "0" + f), 10 > g && (g = "0" + g);
  1360.                 var h = e + ":" + f + ":" + g;
  1361.                 b.countdown = h, a.main.next_upload -= 1
  1362.             } else a.main.next_upload <= -30 && (b.countdown = "00:00:00", c.next_upload.get({}, function(b) {
  1363.                 a.main.next_upload = 0 == b.next_upload ? -30 : b.next_upload
  1364.             }))
  1365.         }, 1e3), b.is_outdated = !1, b.download_path = "", b.$watch("main.configuration", function() {
  1366.             "0.0.0" != a.main.configuration.gramblr_version && (b.is_outdated = !a.versionGte(a.last_version) && j.navigator.userAgent.match(/Win/), j.navigator.userAgent.match(/\bWindows|(Win\d\d)\b/) ? b.download_path = "http://gramblr.com/gramblr2_win" + b.main.configuration.gramblr_arch + ".zip" : j.navigator.userAgent.match(/\bMac OS\b/) ? b.download_path = "http://gramblr.com/gramblr2_osx.dmg" : b.download_path = "http://gramblr.com")
  1367.         }), j.navigator.userAgent.match(/\bWindows|(Win\d\d)\b/) ? b.main.configuration.gramblr_arch ? b.download_path = "http://gramblr.com/gramblr2_win" + b.main.configuration.gramblr_arch + ".zip" : b.download_path = "http://gramblr.com" : j.navigator.userAgent.match(/\bMac OS\b/) ? b.download_path = "http://gramblr.com/gramblr2_osx.dmg" : b.download_path = "http://gramblr.com", b.change_autolike = function() {
  1368.             f.isAuthenticated() && c.autolike.save({
  1369.                 ig_user: a.main.name,
  1370.                 is_autolike: a.main.is_autolike
  1371.             })
  1372.         }, b.signout = function() {
  1373.             c.logout.save({}, function(a) {
  1374.                 f.authenticate(null), d.go("signin")
  1375.             }, function(a) {
  1376.                 e.alert(a.data)
  1377.             })
  1378.         }, b.switchAccount = function() {
  1379.             g.open({
  1380.                 templateUrl: "http://cdn.gramblr.com/views/modals/switch_instagram.html",
  1381.                 controller: "SwitchAccountCtrl",
  1382.                 size: "sm"
  1383.             })
  1384.         }, b.showRatingsHelp = function() {
  1385.             g.open({
  1386.                 templateUrl: "http://cdn.gramblr.com/views/modals/ratings-help.html",
  1387.                 size: "md"
  1388.             })
  1389.         }, b.changeAvatar = function() {
  1390.             g.open({
  1391.                 templateUrl: "http://cdn.gramblr.com/views/modals/change_avatar.html",
  1392.                 size: "md",
  1393.                 controller: "ChangeAvatarCtrl"
  1394.             })
  1395.         }, b.viewTransactions = function() {
  1396.             d.transitionTo("transactions")
  1397.         }, b.notifications = c.notifications.query()
  1398.     }])
  1399. }(),
  1400. function() {
  1401.     "use strict";
  1402.     angular.module("app.upload", ["ngResource", "ngSanitize", "emojiApp", "ui.bootstrap", "app.api", "app.errors", "ngFileUpload", "ngTagsInput", "ngJcrop", "angular-confirm", "ngCookies"]).directive("onEnterKey", function() {
  1403.         return function(a, b, c) {
  1404.             b.bind("keydown keypress", function(b) {
  1405.                 13 === b.which && (a.$apply(function() {
  1406.                     a.$eval(c.onEnterKey)
  1407.                 }), b.preventDefault())
  1408.             })
  1409.         }
  1410.     }).directive("userTags", function() {
  1411.         return {
  1412.             restrict: "EA",
  1413.             link: function(a, b, c) {
  1414.                 a.$watch(function() {
  1415.                     return [b[0].offsetWidth, b[0].offsetHeight].join("x")
  1416.                 }, function(b) {
  1417.                     a.onPhotoResize()
  1418.                 })
  1419.             }
  1420.         }
  1421.     }).controller("UploadCtrl", ["$rootScope", "remote", "$log", "errors", "$scope", "$cookies", function(a, b, c, d, e, f) {
  1422.         a.unique_id || (a.unique_id = 0), a.uploader = {}, e.hide_account_verification = "1" == f.get("hacct"), e.hideAccountVerification = function() {
  1423.             f.put("hacct", "1"), e.hide_account_verification = !0
  1424.         }, e.check_acct_loading = !1, e.send_email_loading = !1, e.confirmation = {}, e.sendConfirmation = function() {
  1425.             e.send_email_loading = !0;
  1426.             var c = {
  1427.                 ig_user: a.main.name
  1428.             };
  1429.             b.send_confirmation_email.save(c, function(a) {
  1430.                 e.send_email_loading = !1, e.confirmation = a
  1431.             }, function(a) {
  1432.                 e.send_email_loading = !1, d.alert(a.data, "send_confirmation_email.save", c)
  1433.             })
  1434.         }, e.account_verified = !0, e.validateAccount = function(c) {
  1435.             e.hide_account_verification || "1" == f.get("validate_" + a.main.name) || (e.check_acct_loading = !0, b.validate_user_needy.get({
  1436.                 ig_user: a.main.name,
  1437.                 forced: c
  1438.             }, function(b) {
  1439.                 e.check_acct_loading = !1, e.account_verified = !b.is_needy || !b.is_profile_action_needed, e.account_verified && f.put("validate_" + a.main.name, "1")
  1440.             }, function(a) {
  1441.                 e.check_acct_loading = !1
  1442.             }))
  1443.         }, e.$watch("main.name", function() {
  1444.             e.validateAccount(!1)
  1445.         }), e.closeConfirmation = function() {
  1446.             e.confirmation = {}
  1447.         }
  1448.     }]).controller("Step1Ctrl", ["$rootScope", "$scope", "Upload", "$state", "errors", "$log", "$timeout", "$interval", "remote", "$http", "$modal", function(a, b, c, d, e, f, g, h, i, j, k) {
  1449.         a.uploader.step = 1, b.show_tags = !1, b.repost_url = "", b.toggleTags = function() {
  1450.             b.show_tags ? b.show_tags = !1 : b.show_tags = !0
  1451.         }, b.showSupportedSites = function() {
  1452.             k.open({
  1453.                 templateUrl: "http://cdn.gramblr.com/views/modals/supported_sites_reposts.html",
  1454.                 size: "md"
  1455.             })
  1456.         }, b.searchTags = function(b) {
  1457.             return j.get("/search_tags/" + a.main.name + "/" + b + "/10/").then(function(a) {
  1458.                 return a.data.results
  1459.             })
  1460.         }, b.repost_progress_val = "", b.repost_progress = 0, b.uploadFromURL = function() {
  1461.             if ("" != b.repost_url) {
  1462.                 angular.element(document.querySelector("#loader")).removeClass("hidden");
  1463.                 var c = {
  1464.                         ig_user: a.main.name,
  1465.                         repost_url: b.repost_url
  1466.                     },
  1467.                     f = h(function() {
  1468.                         i.repost_progress.get({}, function(a) {
  1469.                             b.repost_progress_val = a.line, b.repost_progress = parseFloat(a.perc)
  1470.                         }, function() {})
  1471.                     }, 300);
  1472.                 i.repost.save({
  1473.                     youtubedl_version: "2017.05.01",
  1474.                     ig_user: a.main.name,
  1475.                     repost_url: b.repost_url
  1476.                 }, function(a) {
  1477.                     b.repost_progress = 0, h.cancel(f), a.is_video ? d.transitionTo("upload.step2.video", {
  1478.                         videoFile: a.original_filename
  1479.                     }) : d.transitionTo("upload.step2")
  1480.                 }, function(a) {
  1481.                     b.repost_progress = 0, h.cancel(f), angular.element(document.querySelector("#loader")).addClass("hidden"), e.alert(a.data, "upload_repost", c)
  1482.                 })
  1483.             }
  1484.         }, b.$watch("file", function() {
  1485.             null != b.file && b.upload([b.file]), b.upload = function(b) {
  1486.                 b = b[0];
  1487.                 var f = g(function() {
  1488.                     e.alert(null)
  1489.                 }, 15e3);
  1490.                 if (b) {
  1491.                     angular.element(document.querySelector("#loader")).removeClass("hidden");
  1492.                     var h = {
  1493.                         ig_user: a.main.name
  1494.                     };
  1495.                     b.type.match(/video/) ? c.upload({
  1496.                         url: "/video",
  1497.                         fields: h,
  1498.                         file: b,
  1499.                         sendFieldsAs: "form",
  1500.                         fileFormDataName: "video"
  1501.                     }).success(function(a, b, c, e) {
  1502.                         g.cancel(f), d.transitionTo("upload.step2.video", {
  1503.                             videoFile: a.original_filename
  1504.                         })
  1505.                     }).error(function(a, b, c, d) {
  1506.                         g.cancel(f), angular.element(document.querySelector("#loader")).addClass("hidden"), e.alert(a, "upload_video", h)
  1507.                     }) : c.upload({
  1508.                         url: "/photo",
  1509.                         fields: h,
  1510.                         file: b,
  1511.                         sendFieldsAs: "form",
  1512.                         fileFormDataName: "photo"
  1513.                     }).success(function(a, b, c, e) {
  1514.                         g.cancel(f), d.transitionTo("upload.step2")
  1515.                     }).error(function(a, b, c, d) {
  1516.                         g.cancel(f), angular.element(document.querySelector("#loader")).addClass("hidden"), e.alert(a, "send_photo", h)
  1517.                     })
  1518.                 }
  1519.             }
  1520.         })
  1521.     }]).controller("Step2Ctrl", ["$rootScope", "$scope", "$state", "remote", "errors", "$element", function(a, b, c, d, e, f) {
  1522.         a.uploader.step = 2, a.is_video = !1, b.loading = !1, b.photo = {}, b.photo.coords = [], b.photo.thumbnail = !1, b.photo.src = "/images/uploader/" + a.main.name + "/raw.jpg?cnt=" + a.unique_id++, b.validRatio = function() {
  1523.             var a = new Image;
  1524.             a = f.find(".ng-jcrop-image");
  1525.             var c = a.width(),
  1526.                 d = a.height();
  1527.             return b.photo.coords[4] || b.photo.coords[5] || !(.8 > c / d || c / d > 1.91) ? !0 : !1
  1528.         }, b.aspect_ratio = {
  1529.             min: .801,
  1530.             max: 1.899
  1531.         }, b.changeAspect = function(c, d) {
  1532.             d.stopPropagation(), null == c ? (b.aspect_ratio.min = .801, b.aspect_ratio.max = 1.899) : (b.aspect_ratio.min = parseFloat(c), b.aspect_ratio.max = parseFloat(c)), a.$broadcast("changeAspectRatio", !0)
  1533.         }, b.sendCropped = function() {
  1534.             if (b.validRatio()) {
  1535.                 b.loading = !0;
  1536.                 var f = {
  1537.                     width: b.photo.coords[4],
  1538.                     height: b.photo.coords[5],
  1539.                     x: b.photo.coords[0],
  1540.                     y: b.photo.coords[1],
  1541.                     ig_user: a.main.name
  1542.                 };
  1543.                 d.crop.save(f, function(d) {
  1544.                     a.uploader.effects_url = d.effects_url + "?cnt=" + a.unique_id, c.transitionTo("upload.step3"), b.loading = !1
  1545.                 }, function(a) {
  1546.                     e.alert(a.data, "crop.save", f), b.loading = !1
  1547.                 })
  1548.             }
  1549.         }
  1550.     }]).controller("Step2VideoCtrl", ["$rootScope", "$scope", "$state", "$stateParams", "remote", "errors", "$log", "$translate", "$element", function(a, b, c, d, e, f, g, h, i) {
  1551.         a.is_video = !0, a.video_file = d.videoFile, a.unique_id++, a.uploader.step = 2;
  1552.         var j = 60;
  1553.         b.loading = !0, b.framenum = 0, e.video_gen_frames.get({
  1554.             ig_user: a.main.name,
  1555.             video_file: d.videoFile
  1556.         }), b.video = {};
  1557.         var k, l;
  1558.         b.validRatio = function() {
  1559.             if (b.video.coords[4] && b.video.coords[5]) {
  1560.                 var a = b.video.coords[4],
  1561.                     c = b.video.coords[5];
  1562.                 return .8 > a / c || a / c > 1.91 || b.video.frames[1] - b.video.frames[0] > j ? !1 : !0
  1563.             }
  1564.         }, b.aspect_ratio = {
  1565.             min: .801,
  1566.             max: 1.899
  1567.         }, b.changeAspect = function(c, d) {
  1568.             d.stopPropagation(), null == c ? (b.aspect_ratio.min = .801, b.aspect_ratio.max = 1.899) : (b.aspect_ratio.min = parseFloat(c), b.aspect_ratio.max = parseFloat(c)), a.$broadcast("changeAspectRatio", !0)
  1569.         }, b.preview_frame_num = 0, b.choose_cover_text = "", h("COVER_PHOTO").then(function(a) {
  1570.             b.choose_cover_text = a
  1571.         }), b.chooseCover = function(a) {
  1572.             var c = angular.element(a.target);
  1573.             c.hasClass("active") || c.addClass("active"), b.preview_frame_num = angular.copy(b.video.frames[0]), b.choose_cover_text = b.preview_frame_num
  1574.         }, b.sliding = function() {
  1575.             if (b.video.coords = [], k != b.video.frames[0]) {
  1576.                 b.video.frames[1] - b.video.frames[0] > j && (b.video.frames[1] = b.video.frames[0] + j);
  1577.                 var c = new Image;
  1578.                 c.src = "/images/uploader/" + a.main.name + "/frame" + (b.video.frames[0] + 1) + ".jpg?cnt=" + a.unique_id, c.onload = function() {
  1579.                     b.video.src = "/images/uploader/" + a.main.name + "/frame" + (b.video.frames[0] + 1) + ".jpg?cnt=" + a.unique_id
  1580.                 }, k = b.video.frames[0]
  1581.             } else if (l != b.video.frames[1]) {
  1582.                 b.video.frames[1] - b.video.frames[0] > j && (b.video.frames[0] = Math.max(0, b.video.frames[1] - j));
  1583.                 var c = new Image;
  1584.                 c.src = "/images/uploader/" + a.main.name + "/frame" + (b.video.frames[1] + 1) + ".jpg?cnt=" + a.unique_id, c.onload = function() {
  1585.                     b.video.src = "/images/uploader/" + a.main.name + "/frame" + (b.video.frames[1] + 1) + ".jpg?cnt=" + a.unique_id
  1586.                 }, l = b.video.frames[1]
  1587.             }
  1588.         }, b.video.coords = [], b.video.thumbnail = !1, b.video.duration = {}, b.video.duration.seconds = j, e.video_duration.get({
  1589.             ig_user: a.main.name,
  1590.             video_file: d.videoFile
  1591.         }, function(c) {
  1592.             b.video.duration.seconds = c.seconds;
  1593.             var d = new Image;
  1594.             d.src = "/images/uploader/" + a.main.name + "/frame1.jpg?cnt=" + a.unique_id, d.onload = function() {
  1595.                 b.video.src = "/images/uploader/" + a.main.name + "/frame1.jpg?cnt=" + a.unique_id, b.loading = !1
  1596.             };
  1597.             for (var e = 2; e <= c.seconds; e++) {
  1598.                 var f = new Image;
  1599.                 f.src = "/images/uploader/" + a.main.name + "/frame" + e + ".jpg?cnt=" + a.unique_id
  1600.             }
  1601.         }), b.sendCropped = function() {
  1602.             if (b.validRatio()) {
  1603.                 b.loading = !0;
  1604.                 var g = {
  1605.                     video_file: d.videoFile,
  1606.                     width: b.video.coords[4],
  1607.                     height: b.video.coords[5],
  1608.                     x: b.video.coords[0],
  1609.                     y: b.video.coords[1],
  1610.                     frames: b.video.frames,
  1611.                     ig_user: a.main.name,
  1612.                     preview_frame_num: b.preview_frame_num
  1613.                 };
  1614.                 e.crop_video.save(g, function(a) {
  1615.                     c.transitionTo("upload.step3.video"), b.loading = !1
  1616.                 }, function(a) {
  1617.                     c.transitionTo("upload.step3.video"), f.alert(a.data, "crop_video.save", g), b.loading = !1
  1618.                 })
  1619.             }
  1620.         }
  1621.     }]).controller("Step3Ctrl", ["$rootScope", "$scope", "$state", "remote", "errors", "$interval", "$timeout", function(a, b, c, d, e, f, g) {
  1622.         if (a.uploader.step = 3, a.is_video = !1, b.loading = !1, b.is_edit_email = !1, b.photo_emailed = !1, b.email_address = "", b.has_motion = !1, b.motion_loading = !1, a.unique_id++, !angular.isDefined(a.uploader.effects_url)) {
  1623.             var h = {
  1624.                 ig_user: a.main.name
  1625.             };
  1626.             d.effects_url.get(h, function(b) {
  1627.                 a.uploader.effects_url = b.effects_url + "?cnt=" + a.unique_id
  1628.             }, function(a) {
  1629.                 e.alert(a.data, "effects_url.get", h)
  1630.             })
  1631.         }
  1632.         b.motion_url = "", b.progress_value = 0;
  1633.         var i, j;
  1634.         b.enableMotion = function() {
  1635.             if (b.has_motion = !0, document.getElementById("image1").src == i) return void(b.motion_url = j);
  1636.             b.motion_loading = !0;
  1637.             var c = f(function() {
  1638.                     if (b.progress_value > 85) b.progress_value += 1;
  1639.                     else if (b.progress_value < 70) b.progress_value += 7;
  1640.                     else if (b.progress_value >= 70) b.progress_value += 5;
  1641.                     else if (99 == b.progress_value) return
  1642.                 }, 1500),
  1643.                 h = {
  1644.                     ig_user: a.main.name,
  1645.                     photo_url: document.getElementById("image1").src
  1646.                 };
  1647.             d.effects.save(h, function(h) {
  1648.                 var k = {
  1649.                     ig_user: a.main.name
  1650.                 };
  1651.                 d.generate_motion_effects.get(k, function(d) {
  1652.                     a.unique_id++, b.progress_value = 100, f.cancel(c), g(function() {
  1653.                         b.motion_url = d.motion_url + "?cnt=" + a.unique_id, i = document.getElementById("image1").src, j = b.motion_url, b.motion_loading = !1;
  1654.                         var c = document.getElementsByTagName("video")[0];
  1655.                         c.src = b.motion_url, c.load(), c.play(), b.progress_value = 0
  1656.                     }, 1e3)
  1657.                 }, function(a) {
  1658.                     b.motion_loading = !1, e.alert(a.data, "generate_motion_effects.get", k)
  1659.                 })
  1660.             }, function(a) {
  1661.                 e.alert(a.data, "effects", h), b.motion_loading = !1
  1662.             })
  1663.         }, b.disableMotion = function() {
  1664.             b.motion_url = "", b.has_motion = !1
  1665.         }, b.editEmail = function() {
  1666.             b.is_edit_email = !0
  1667.         }, b.editPhoto = function() {
  1668.             window.featherEditor.launch({
  1669.                 image: "image1",
  1670.                 url: a.uploader.effects_url
  1671.             })
  1672.         }, b.closeAlert = function() {
  1673.             b.photo_emailed = !1
  1674.         }, b.sendEmail = function(a) {
  1675.             b.loading = !0;
  1676.             var c = {
  1677.                 email: a,
  1678.                 link: document.getElementById("image1").src
  1679.             };
  1680.             d.upload_mobile.save(c, function(a) {
  1681.                 b.email_address = a.email, b.is_edit_email = !1, b.photo_emailed = !0, b.loading = !1
  1682.             }, function(a) {
  1683.                 b.is_edit_email = !1, b.loading = !1, e.alert(a.data, "sendEmail", c)
  1684.             })
  1685.         }, b.sendPhoto = function() {
  1686.             if (b.loading = !0, "" != b.motion_url) c.transitionTo("upload.step4", {
  1687.                 motionUrl: b.motion_url
  1688.             });
  1689.             else {
  1690.                 var f = {
  1691.                     ig_user: a.main.name,
  1692.                     photo_url: document.getElementById("image1").src
  1693.                 };
  1694.                 d.effects.save(f, function(a) {
  1695.                     c.transitionTo("upload.step4", {
  1696.                         motionUrl: ""
  1697.                     }), b.loading = !1
  1698.                 }, function(a) {
  1699.                     e.alert(a.data, "sendPhoto", f), b.loading = !1
  1700.                 })
  1701.             }
  1702.         }
  1703.     }]).controller("Step3VideoCtrl", ["$rootScope", "$scope", "$state", "remote", "errors", "colonToCodeFilter", function(a, b, c, d, e, f) {
  1704.         a.uploader.step = 3, a.is_video = !0, a.unique_id++, b.video_url = "/" + a.main.name + "/final.mp4?cnt=" + a.unique_id, b.upload_on = "today", b.loading = !1, b.emojiMessage = {
  1705.             messagetext: ""
  1706.         }, b.too_many_hashtags = function() {
  1707.             return b.emojiMessage.messagetext.match(/#/g) > 30
  1708.         }, b.too_long = function() {
  1709.             return b.emojiMessage.messagetext.length > 2202
  1710.         }, a.versionGte("2.4.7") ? b.sendVideo = function() {
  1711.             b.loading = !0;
  1712.             var g = b.dt,
  1713.                 h = b.mytime,
  1714.                 i = new Date(g.getFullYear(), g.getMonth(), g.getDate(), h.getHours(), h.getMinutes(), h.getSeconds()),
  1715.                 j = (new Date(g.getUTCFullYear(), g.getUTCMonth(), g.getUTCDate(), h.getUTCHours(), h.getUTCMinutes(), h.getUTCSeconds()), {
  1716.                     ig_user: a.main.name,
  1717.                     caption: f(b.emojiMessage.messagetext),
  1718.                     scheduled_date: i / 1e3,
  1719.                     upload_on: b.upload_on
  1720.                 });
  1721.             d.caption_video.save(j, function(a) {
  1722.                 "today" == b.upload_on ? c.transitionTo("upload.finished.video", {
  1723.                     mediaId: a.media_id,
  1724.                     freeLikes: a.free_likes,
  1725.                     videoUrl: a.video_url,
  1726.                     caption: b.caption
  1727.                 }) : c.transitionTo("upload.scheduled", {
  1728.                     scheduledFor: moment(i).format("LLLL")
  1729.                 }), b.loading = !1
  1730.             }, function(a) {
  1731.                 return a.data.match(/challenge_required/) || a.data.match(/checkpoint_required/) ? (e.alert("Instagram requires that you verify your account through a mobile phone. Please try again once this is completed"), void(b.loading = !1)) : a.data.match("<!DOCTYPE") || a.data.match("<html><head") ? (b.loading = !1, void e.alert("Instagram is down?")) : a.data.match(/validate your password/) || a.data.match(/Could not login to Instagram/) ? (e.alert(a.data), void(b.loading = !1)) : (e.alert(a.data, "caption_video", j), void(b.loading = !1))
  1732.             })
  1733.         } : b.sendVideo = function() {
  1734.             b.loading = !0;
  1735.             var g = b.dt,
  1736.                 h = b.mytime,
  1737.                 i = new Date(g.getUTCFullYear(), g.getUTCMonth(), g.getUTCDate(), h.getUTCHours(), h.getUTCMinutes(), h.getUTCSeconds()),
  1738.                 j = {
  1739.                     ig_user: a.main.name,
  1740.                     caption: f(b.emojiMessage.messagetext),
  1741.                     scheduled_date: i / 1e3,
  1742.                     upload_on: b.upload_on
  1743.                 };
  1744.             d.caption_video.save(j, function(a) {
  1745.                 c.transitionTo("upload.finished.video", {
  1746.                     mediaId: a.media_id
  1747.                 }), b.loading = !1
  1748.             }, function(a) {
  1749.                 e.alert(a.data, "caption_video_scheduled", j), b.loading = !1
  1750.             })
  1751.         }, b.disabled = function(a, b) {
  1752.             return !1
  1753.         }, b.minDate = new Date, b.dateOptions = {
  1754.             "year-format": "'yy'",
  1755.             "starting-day": 1
  1756.         }, b.toggleMin = function() {
  1757.             var a;
  1758.             b.minDate = null != (a = b.minDate) ? a : {
  1759.                 "null": new Date
  1760.             }
  1761.         }, b.toggleMin(), b.open = function(a) {
  1762.             a.preventDefault(), a.stopPropagation(), b.opened = !0
  1763.         }, b.status = {
  1764.             opened: !1
  1765.         }, b.today = function() {
  1766.             return b.dt = new Date
  1767.         }, b.today(), b.showWeeks = !0, b.toggleWeeks = function() {
  1768.             b.showWeeks = !b.showWeeks
  1769.         }, b.clear = function() {
  1770.             b.dt = null
  1771.         }, b.mytime = new Date, b.hstep = 1, b.mstep = 15, b.changed = function() {}
  1772.     }]).controller("Step4Ctrl", ["$rootScope", "$scope", "$state", "remote", "errors", "$log", "$stateParams", "$http", "colonToCodeFilter", function(a, b, c, d, e, f, g, h, i) {
  1773.         if (a.uploader.step = 4, a.is_video = !1, b.motion_url = decodeURIComponent(g.motionUrl), "" != b.motion_url) {
  1774.             var j = document.getElementsByTagName("video")[0];
  1775.             j.src = b.motion_url, j.load(), j.play()
  1776.         }
  1777.         b.tags = [], b.searchUsers = function(b) {
  1778.             return h.get("/search_users/" + a.main.name + "/" + b + "/5/").then(function(a) {
  1779.                 return a.data.users
  1780.             })
  1781.         }, b.upload_on = "today", b.final_photo = "/images/uploader/" + a.main.name + "/final.jpg?cnt=" + a.unique_id++, b.loading = !1, b.emojiMessage = {
  1782.             messagetext: ""
  1783.         }, b.too_many_hashtags = function() {
  1784.             return b.emojiMessage.messagetext.match(/#/g) > 30
  1785.         }, b.too_long = function() {
  1786.             return b.emojiMessage.messagetext.length > 2202
  1787.         };
  1788.         var k = [];
  1789.         b.onPhotoResize = function() {
  1790.             angular.forEach(k, function(a) {
  1791.                 var b = angular.element("#image1container")[0];
  1792.                 a.element.style.left = Math.floor(a.position[0] * b.clientWidth) + "px", a.element.style.top = Math.floor(a.position[1] * b.clientHeight) + "px"
  1793.             })
  1794.         }, b.removeTag = function(a) {
  1795.             var b;
  1796.             angular.forEach(k, function(c, d) {
  1797.                 c.tag.username == a.username && (b = d, c.element.remove())
  1798.             }), k.splice(b, 1)
  1799.         }, b.$on("$destroy", function() {
  1800.             angular.forEach(k, function(a, b) {
  1801.                 a.element.remove()
  1802.             })
  1803.         }), b.tag_image = function(a) {
  1804.             if (b.tags && !(b.tags.length <= k.length)) {
  1805.                 var c = k.length,
  1806.                     d = document.createElement("div");
  1807.                 d.className = "marker", d.style.zIndex = 1, d.style.position = "absolute";
  1808.                 var e = angular.element("#image1container")[0],
  1809.                     f = angular.element("#image1")[0],
  1810.                     g = [a.offsetX / f.clientWidth, a.offsetY / f.clientHeight];
  1811.                 d.style.left = Math.floor(g[0] * f.clientWidth) + "px", d.style.top = Math.floor(g[1] * f.clientHeight) + "px", d.innerHTML = b.tags[c].username;
  1812.                 var h = {
  1813.                     i: c,
  1814.                     position: g,
  1815.                     tag: b.tags[c],
  1816.                     element: d
  1817.                 };
  1818.                 k.push(h), e.appendChild(d)
  1819.             }
  1820.         }, b.sendPhoto = function() {
  1821.             b.loading = !0;
  1822.             var f = b.dt,
  1823.                 g = b.mytime,
  1824.                 h = new Date(f.getFullYear(), f.getMonth(), f.getDate(), g.getHours(), g.getMinutes(), g.getSeconds()),
  1825.                 j = (new Date(f.getUTCFullYear(), f.getUTCMonth(), f.getUTCDate(), g.getUTCHours(), g.getUTCMinutes(), g.getUTCSeconds()), []);
  1826.             angular.forEach(k, function(a) {
  1827.                 j.push({
  1828.                     user: a.tag,
  1829.                     position: a.position
  1830.                 })
  1831.             });
  1832.             var l = {
  1833.                 ig_user: a.main.name,
  1834.                 caption: i(b.emojiMessage.messagetext),
  1835.                 scheduled_date: h / 1e3,
  1836.                 upload_on: b.upload_on,
  1837.                 is_motion: "" != b.motion_url,
  1838.                 tags: j
  1839.             };
  1840.             d.caption.save(l, function(a) {
  1841.                 "today" == b.upload_on ? c.transitionTo("upload.finished", {
  1842.                     mediaId: a.media_id,
  1843.                     freeLikes: a.free_likes,
  1844.                     photoUrl: a.photo_url,
  1845.                     caption: b.caption
  1846.                 }) : c.transitionTo("upload.scheduled", {
  1847.                     scheduledFor: moment(h).format("LLLL")
  1848.                 }), b.loading = !1
  1849.             }, function(a) {
  1850.                 return a.data.match(/challenge_required/) || a.data.match(/checkpoint_required/) ? (e.alert("Instagram requires that you verify your account through a mobile phone. Please try again once this is completed"), void(b.loading = !1)) : a.data.match(/validate your password/) || a.data.match(/Could not login to Instagram/) ? (e.alert("You must re-enter your password. Please sign out of gramblr and back in or use the 'switch account' button to revalidate your password in Gramblr."), void(b.loading = !1)) : a.data.match("<!DOCTYPE") || a.data.match("<html><head") ? (b.loading = !1, void e.alert("Instagram is down?")) : (e.alert(a.data, "caption.save", l), void(b.loading = !1))
  1851.             })
  1852.         }, b.disabled = function(a, b) {
  1853.             return !1
  1854.         }, b.minDate = new Date, b.dateOptions = {
  1855.             "year-format": "'yy'",
  1856.             "starting-day": 1
  1857.         }, b.toggleMin = function() {
  1858.             var a;
  1859.             b.minDate = null != (a = b.minDate) ? a : {
  1860.                 "null": new Date
  1861.             }
  1862.         }, b.toggleMin(), b.open = function(a) {
  1863.             a.preventDefault(), a.stopPropagation(), b.status.opened = !0
  1864.         }, b.status = {
  1865.             opened: !1
  1866.         }, b.today = function() {
  1867.             return b.dt = new Date
  1868.         }, b.today(), b.showWeeks = !0, b.toggleWeeks = function() {
  1869.             b.showWeeks = !b.showWeeks
  1870.         }, b.clear = function() {
  1871.             b.dt = null
  1872.         }, b.mytime = new Date, b.hstep = 1, b.mstep = 15, b.changed = function() {}
  1873.     }]).controller("UploadDoneCtrl", ["$rootScope", "$scope", "$stateParams", "$log", "$state", "remote", "$window", function(a, b, c, d, e, f, g) {
  1874.         a.history = null, b.media_id = c.mediaId, b.free_likes = c.freeLikes, b.rate_limit_reached = Math.floor((new Date - a.last_upload) / 1e3 / 60) < 15, setTimeout(function() {
  1875.             a.last_upload = new Date
  1876.         }, 1e3), b.photo_url = c.photoUrl, b.caption = c.caption, b.fb_share_url = "", "" != b.photo_url && (b.fb_share_url = "https://www.facebook.com/dialog/feed?app_id=124024574287414&link=https://www.instagram.com/p/" + b.media_id + "/&picture=" + b.photo_url + "&name=Instagram&caption=" + encodeURIComponent(b.caption) + "&description=My%20%20Instagram%20picture&redirect_uri=https://www.facebook.com/", b.twitter_share_url = "https://twitter.com/intent/tweet?source=tweetbutton&url=https://www.instagram.com/p/" + b.media_id + "/&via=Gramblr"), b.loading = !1, b.free_likes_accepted = null;
  1877.         var h = g.navigator.language || g.navigator.userLanguage;
  1878.         b.is_english = "en-US" == h, b.acceptFreeLikes = function() {
  1879.             f.accept_free_likes.get({}, function(a) {
  1880.                 b.free_likes = 0, b.free_likes_accepted = !0, b.loading = !1
  1881.             }, function(a) {
  1882.                 errors.alert(a.data), b.loading = !1
  1883.             })
  1884.         }, b.refuseFreeLikes = function() {
  1885.             f.refuse_free_likes.get({}, function(a) {
  1886.                 b.free_likes = 0, b.free_likes_accepted = !1, b.loading = !1
  1887.             }, function(a) {
  1888.                 errors.alert(a.data), b.loading = !1
  1889.             })
  1890.         }, b.submitForRatings = function() {
  1891.             e.transitionTo("addlikes", {
  1892.                 mediaCode: b.media_id
  1893.             })
  1894.         }
  1895.     }]).controller("UploadScheduledCtrl", ["$rootScope", "$scope", "$stateParams", "$log", "$state", "remote", function(a, b, c, d, e, f) {
  1896.         a.scheduled = null, f.next_upload.get({}, function(b) {
  1897.             a.main.next_upload = 0 == b.next_upload ? -30 : b.next_upload
  1898.         }), a.main.name = a.main.name, b.scheduled_for = c.scheduledFor
  1899.     }])
  1900. }(),
  1901. function() {
  1902.     "use strict";
  1903.     angular.module("app.pages", ["ngResource", "ui.bootstrap", "app.api", "app.errors", "angular-confirm", "ngCookies", "ngTagsInput", "emojiApp"]).directive("bnLazySrc", ["$window", "$document", function(a, b) {
  1904.         function c(a) {
  1905.             function b(b, c) {
  1906.                 null === h && (h = a.height());
  1907.                 var d = a.offset().top,
  1908.                     e = d + h;
  1909.                 return c >= d && d >= b || c >= e && e >= b || b >= d && e >= c
  1910.             }
  1911.  
  1912.             function c() {
  1913.                 g = !0, e()
  1914.             }
  1915.  
  1916.             function d(a) {
  1917.                 f = a, g && e()
  1918.             }
  1919.  
  1920.             function e() {
  1921.                 a[0].src = f
  1922.             }
  1923.             var f = null,
  1924.                 g = !1,
  1925.                 h = null;
  1926.             return {
  1927.                 isVisible: b,
  1928.                 render: c,
  1929.                 setSource: d
  1930.             }
  1931.         }
  1932.  
  1933.         function d(a, b, d) {
  1934.             var f = new c(b);
  1935.             e.addImage(f), d.$observe("bnLazySrc", function(a) {
  1936.                 f.setSource(a)
  1937.             }), a.$on("$destroy", function() {
  1938.                 e.removeImage(f)
  1939.             })
  1940.         }
  1941.         var e = function() {
  1942.             function c(a) {
  1943.                 l.push(a), m || h(), t || i()
  1944.             }
  1945.  
  1946.             function d(a) {
  1947.                 for (var b = 0; b < l.length; b++)
  1948.                     if (l[b] === a) {
  1949.                         l.splice(b, 1);
  1950.                         break
  1951.                     }
  1952.                 l.length || (g(), j())
  1953.             }
  1954.  
  1955.             function e() {
  1956.                 if (!m) {
  1957.                     var a = p.height();
  1958.                     a !== q && (q = a, h())
  1959.                 }
  1960.             }
  1961.  
  1962.             function f() {
  1963.                 for (var a = [], b = [], c = o.height(), d = o.scrollTop(), e = d, f = e + c, h = 0; h < l.length; h++) {
  1964.                     var i = l[h];
  1965.                     i.isVisible(e, f) ? a.push(i) : b.push(i)
  1966.                 }
  1967.                 for (var h = 0; h < a.length; h++) a[h].render();
  1968.                 l = b, g(), l.length || j()
  1969.             }
  1970.  
  1971.             function g() {
  1972.                 clearTimeout(m), m = null
  1973.             }
  1974.  
  1975.             function h() {
  1976.                 m = setTimeout(f, n)
  1977.             }
  1978.  
  1979.             function i() {
  1980.                 t = !0, o.on("resize.bnLazySrc", k), o.on("scroll.bnLazySrc", k), r = setInterval(e, s)
  1981.             }
  1982.  
  1983.             function j() {
  1984.                 t = !1, o.off("resize.bnLazySrc"), o.off("scroll.bnLazySrc"), clearInterval(r)
  1985.             }
  1986.  
  1987.             function k() {
  1988.                 m || h()
  1989.             }
  1990.             var l = [],
  1991.                 m = null,
  1992.                 n = 100,
  1993.                 o = $(a),
  1994.                 p = b,
  1995.                 q = p.height(),
  1996.                 r = null,
  1997.                 s = 2e3,
  1998.                 t = !1;
  1999.             return {
  2000.                 addImage: c,
  2001.                 removeImage: d
  2002.             }
  2003.         }();
  2004.         return {
  2005.             link: d,
  2006.             restrict: "A"
  2007.         }
  2008.     }]).directive("profilePicture", function() {
  2009.         var a = {
  2010.             link: function(a, b, c) {
  2011.                 b.bind("error", function() {
  2012.                     angular.element(this).attr("src", "http://cdn.gramblr.com/images/anonymous-user.png")
  2013.                 })
  2014.             }
  2015.         };
  2016.         return a
  2017.     }).directive("ratingsPhoto", function() {
  2018.         var a = {
  2019.             link: function(a, b, c) {
  2020.                 b.bind("error", function() {})
  2021.             }
  2022.         };
  2023.         return a
  2024.     }).directive("keypressEvents", ["$document", "$rootScope", "$log", "$timeout", function(a, b, c, d) {
  2025.         return {
  2026.             restrict: "A",
  2027.             link: function(c) {
  2028.                 function e() {
  2029.                     var e, f = !1;
  2030.                     a.bind("keypress", function(a) {
  2031.                         f || (f = !0, b.$broadcast("keypress", a, String.fromCharCode(a.which)), e = d(function() {
  2032.                             f = !1
  2033.                         }, 500))
  2034.                     }), c.$on("$destroy", function() {
  2035.                         a.unbind("keypress")
  2036.                     })
  2037.                 }
  2038.                 e()
  2039.             }
  2040.         }
  2041.     }]).controller("ProfileCtrl", ["$rootScope", "$scope", "remote", "$log", function(a, b, c, d) {
  2042.         b.thumbnail = a.main.thumbnail
  2043.     }]).controller("DeleteInstagramPostCtrl", ["$rootScope", "$scope", "remote", "$modalInstance", function(a, b, c, d) {
  2044.         function e() {
  2045.             if ("" == b.order.media_url) return b.media_code = "", b.serverError = "", !1;
  2046.             b.serverError = "";
  2047.             var a = /\/p\/([^\/]+)/i,
  2048.                 c = "";
  2049.             try {
  2050.                 c = b.order.media_url.match(a)[1], "undefined" == c ? b.media_code = "" : b.media_code = c
  2051.             } catch (d) {
  2052.                 return b.serverError = "Invalid URL", !1
  2053.             }
  2054.             return "" != b.media_code
  2055.         }
  2056.         b.doClose = function() {
  2057.             d.close()
  2058.         }, b.serverError = "", b.media_code = "", b.order = {}, b.order.media_url = "", b.loading = !1, b.deleteMedia = function() {
  2059.             e() && (b.loading = !0, c.delete_instagram_post.get({
  2060.                 ig_user: a.main.name,
  2061.                 media_code: b.media_code
  2062.             }, function(a) {
  2063.                 b.loading = !1, b.order.media_url = "", d.close()
  2064.             }, function(a) {
  2065.                 b.loading = !1, b.serverError = a.data.msg, d.close()
  2066.             }))
  2067.         }
  2068.     }]).controller("HistoryCtrl", ["$rootScope", "$scope", "remote", "$log", "errors", "$confirm", "$modal", function(a, b, c, d, e, f, g) {
  2069.         function h() {
  2070.             a.history = c.upload_history.query({}, function() {}, function(a) {
  2071.                 e.alert(a.data)
  2072.             }), b.uploads = a.history
  2073.         }
  2074.         a.history || h(), b.$watch("main.name", function() {
  2075.             h()
  2076.         }), b.delete_modal = function() {
  2077.             g.open({
  2078.                 templateUrl: "http://cdn.gramblr.com/views/modals/delete_post.html",
  2079.                 controller: "DeleteInstagramPostCtrl",
  2080.                 size: "sm"
  2081.             })
  2082.         }, b.deleteMedia = function(d) {
  2083.             c.delete_media.save({
  2084.                 ig_user: a.main.name,
  2085.                 media_pk: b.uploads[d].media_pk,
  2086.                 user_pk: b.uploads[d].user_pk,
  2087.                 is_video: b.uploads[d].is_video,
  2088.                 media_id: b.uploads[d].media_id
  2089.             }, function() {}, function(a) {
  2090.                 e.alert(a.data)
  2091.             }), b.uploads.splice(d, 1)
  2092.         }, b.getMomentFor = function(a) {
  2093.             var b = new Date(0);
  2094.             return b.setUTCSeconds(a), moment(b).format("llll")
  2095.         }
  2096.     }]).controller("WinnersCtrl", ["$rootScope", "$scope", "remote", "$window", function(a, b, c, d) {
  2097.         b.divnHeight = d.innerHeight - 150, window.onresize = function(a) {
  2098.             b.divnHeight = d.innerHeight - 150
  2099.         }, a.photos = c.daily_winners.query(), b.getMomentFor = function(a) {
  2100.             var b = new Date(0);
  2101.             return b.setUTCSeconds(a), moment(b).format("llll")
  2102.         }
  2103.     }]).controller("TransactionsCtrl", ["$rootScope", "$scope", "remote", "$log", "errors", function(a, b, c, d, e) {
  2104.         function f() {
  2105.             a.transactions = c.transactions.query({
  2106.                 start: 0
  2107.             }, function() {}, function(a) {
  2108.                 e.alert(a.data)
  2109.             })
  2110.         }
  2111.         a.transactions || f(), b.$watch("main.name", function() {
  2112.             f()
  2113.         }), b.getAction = function(a) {
  2114.             switch (a) {
  2115.                 case 1:
  2116.                     return "Add Likes";
  2117.                 case 2:
  2118.                     return "Sent Likes";
  2119.                 case 3:
  2120.                     return "Refund";
  2121.                 case 5:
  2122.                     return "Buy Coins";
  2123.                 default:
  2124.                     return "Unknown"
  2125.             }
  2126.         }, b.doLoadMore = function() {
  2127.             c.transactions.query({
  2128.                 start: a.transactions.length
  2129.             }, function(b) {
  2130.                 b.forEach(function(b) {
  2131.                     a.transactions.push(b)
  2132.                 })
  2133.             }, function(a) {
  2134.                 e.alert(a.data)
  2135.             })
  2136.         }, b.getApproxTimeRemaining = function(a) {
  2137.             var b = new Date(0);
  2138.             b.setUTCSeconds(a + 300);
  2139.             var c = new Date;
  2140.             return c > b ? "" : moment(b).fromNow()
  2141.         }, b.getMomentFor = function(a) {
  2142.             var b = new Date(0);
  2143.             return b.setUTCSeconds(a), moment(b).format("llll")
  2144.         }
  2145.     }]).controller("ScheduleCtrl", ["$rootScope", "$scope", "remote", "$log", "errors", "$cookies", "colonToCodeFilter", "$timeout", function(a, b, c, d, e, f, g, h) {
  2146.         function i() {
  2147.             a.scheduled = c.uploads_scheduled.query({}, function() {}, function(a) {
  2148.                 e.alert(a.data)
  2149.             }), b.uploads = a.scheduled
  2150.         }
  2151.         b.emojiMessage = {
  2152.             messagetext: "",
  2153.             replyToUser: function() {}
  2154.         }, a.scheduled || i(), b.hide_schedule_info = "1" == f.get("hsched"), b.hideScheduleInfo = function() {
  2155.             f.put("hsched", "1"), b.hide_schedule_info = !0
  2156.         }, b.is_editing_date = [];
  2157.         var j = !1,
  2158.             k = !1,
  2159.             l = 0;
  2160.         b.edit_date = function(c) {
  2161.             if (!k) {
  2162.                 l = c, k = !0;
  2163.                 var d = new Date(0),
  2164.                     e = new Date(0),
  2165.                     f = a.scheduled[c].scheduled_for;
  2166.                 d.setUTCSeconds(f), e.setUTCSeconds(f), b.dt[c] = d, b.mytime[c] = e, b.is_editing_date[c] = !0
  2167.             }
  2168.         }, b.save_date = function(f) {
  2169.             var g = b.dt[f],
  2170.                 h = b.mytime[f],
  2171.                 i = new Date(g.getFullYear(), g.getMonth(), g.getDate(), h.getHours(), h.getMinutes(), h.getSeconds());
  2172.             d.info(i / 1e3), a.scheduled[f].scheduled_for = i / 1e3;
  2173.             var j = a.scheduled[f];
  2174.             c.reschedule.save({
  2175.                 id: j.id,
  2176.                 job_id: j.job_id,
  2177.                 scheduled_for: j.scheduled_for
  2178.             }, function(b) {
  2179.                 1 == b.restart && c.next_upload.get({}, function(b) {
  2180.                     a.main.next_upload = 0 == b.next_upload ? -30 : b.next_upload, c.reboot.get()
  2181.                 })
  2182.             }, function(a) {
  2183.                 e.alert(a.data.message)
  2184.             }), b.is_editing_date[f] = !1, k = !1
  2185.         }, b.cancel_date = function(a) {
  2186.             b.is_editing_date[a] = !1, k = !1
  2187.         }, b.is_editing_caption = [];
  2188.         var m = [];
  2189.         b.edit_caption = function(c) {
  2190.             j || (j = !0, m[c] = a.scheduled[c].caption, b.emojiMessage.messagetext = m[c], b.emojiMessage.rawhtml = m[c], b.is_editing_caption[c] = !0)
  2191.         }, b.save_caption = function(d) {
  2192.             a.scheduled[d].caption = g(b.emojiMessage.messagetext);
  2193.             var f = a.scheduled[d];
  2194.             c.update_caption.save({
  2195.                 id: f.id,
  2196.                 job_id: f.job_id,
  2197.                 caption: f.caption
  2198.             }, function() {}, function(a) {
  2199.                 e.alert(a.data.message)
  2200.             }), b.is_editing_caption[d] = !1, j = !1
  2201.         }, b.cancel_caption = function(c) {
  2202.             a.scheduled[c].caption = m[c], b.is_editing_caption[c] = !1, j = !1
  2203.         }, b.$watch("main.name", function() {
  2204.             i()
  2205.         }), b.cancelUpload = function(d) {
  2206.             for (var f = b.uploads, g = 0; g < f.length; g++) {
  2207.                 var h = f[g];
  2208.                 if (h.id == d) {
  2209.                     c.cancel_scheduled_upload.save({
  2210.                         id: h.id,
  2211.                         job_id: h.job_id,
  2212.                         original_uuid: h.original_uuid
  2213.                     }, function() {
  2214.                         a.scheduled.splice(g, 1), b.uploads = a.scheduled, c.next_upload.get({}, function(b) {
  2215.                             a.main.next_upload = 0 == b.next_upload ? -30 : b.next_upload
  2216.                         })
  2217.                     }, function(a) {
  2218.                         e.alert(a.data)
  2219.                     });
  2220.                     break
  2221.                 }
  2222.             }
  2223.         }, b.getApproxTime = function(a) {
  2224.             var b = new Date(0);
  2225.             return b.setUTCSeconds(a), moment(b).fromNow()
  2226.         }, b.getMomentFor = function(a) {
  2227.             var b = new Date(0);
  2228.             return b.setUTCSeconds(a), moment(b).format("llll")
  2229.         }, b.disabled = function(a, b) {
  2230.             return !1
  2231.         }, b.minDate = new Date, b.dateOptions = {
  2232.             "year-format": "'yy'",
  2233.             "starting-day": 1
  2234.         }, b.toggleMin = function() {
  2235.             var a;
  2236.             b.minDate = null != (a = b.minDate) ? a : {
  2237.                 "null": new Date
  2238.             }
  2239.         }, b.toggleMin(), b.open = function(a, c) {
  2240.             a.preventDefault(), a.stopPropagation(), b.status.opened[c] = !0
  2241.         }, b.status = {
  2242.             opened: []
  2243.         }, b.mytime = [], b.dt = [], b.today = function() {
  2244.             return b.dt[l] = new Date
  2245.         }, b.today(), b.showWeeks = !0, b.toggleWeeks = function() {
  2246.             b.showWeeks = !b.showWeeks
  2247.         }, b.clear = function() {
  2248.             b.dt[l] = null
  2249.         }, b.hstep = 1, b.mstep = 15, b.changed = function(a) {}
  2250.     }]).directive("upcomingLayout", ["$window", function(a) {
  2251.         return {
  2252.             restrict: "EA",
  2253.             link: function(b, c, d) {
  2254.                 b.onResizeFunction = function() {
  2255.                     var d = $("#app").hasClass("nav-collapsed-min"),
  2256.                         e = Math.max(180, a.innerWidth - (d ? 630 : 780)),
  2257.                         f = Math.max(a.innerHeight - 140, 550);
  2258.                     c.width(e), c.height(f);
  2259.                     var g = parseInt(e / 175),
  2260.                         h = parseInt(f / 175);
  2261.                     b.pictureLimit = g * h
  2262.                 }, b.onResizeFunction(), b.$on("nav:resize", function() {
  2263.                     b.onResizeFunction(), b.$apply()
  2264.                 }), angular.element(a).bind("resize", function() {
  2265.                     b.onResizeFunction(), b.$apply()
  2266.                 })
  2267.             }
  2268.         }
  2269.     }]).controller("RatingsCtrl", ["$rootScope", "$scope", "remote", "$log", "errors", "$timeout", "$state", "$document", function(a, b, c, d, e, f, g, h) {
  2270.         function i() {
  2271.             b.loading = !0, c.gen_list_likes.get({
  2272.                 ig_user: a.main.name
  2273.             }, function(c) {
  2274.                 b.loading = !1, b.pictures = c.list, c.coins_diff > 0 && a.playCoinsDiff(c.coins_diff, !1), b.pictures.length > 0 && (b.active_picture = b.pictures[0], b.pictures.shift())
  2275.             }, function(a) {
  2276.                 a.data.match(/paused/) ? b.likes_paused = !0 : e.alert(a.data), b.loading = !1
  2277.             })
  2278.         }
  2279.         b.magnified = !1, b.pictures = [], b.active_picture = null, b.likes_paused = !1, b.gotoAddLikes = function() {
  2280.             g.transitionTo("addlikes")
  2281.         };
  2282.         var j, k = [],
  2283.             l = [],
  2284.             m = !1,
  2285.             n = function() {
  2286.                 function d() {
  2287.                     c.send_likes.save({
  2288.                         liked: e,
  2289.                         skipped: h,
  2290.                         ignored: g,
  2291.                         ig_user: a.main.name
  2292.                     }, function() {}, function(a) {
  2293.                         f(function() {
  2294.                             d()
  2295.                         }, 1e3)
  2296.                     })
  2297.                 }
  2298.                 if (0 != k.length || 0 != l.length || m) {
  2299.                     var e = k,
  2300.                         g = [];
  2301.                     m && angular.forEach(b.pictures, function(a) {
  2302.                         g.push({
  2303.                             id: a.id
  2304.                         })
  2305.                     });
  2306.                     var h = l;
  2307.                     k = [], l = [], d()
  2308.                 }
  2309.             };
  2310.         b.$on("$destroy", function() {
  2311.             j && f.cancel(j), m = !0, n()
  2312.         });
  2313.         var o = function() {
  2314.             j && f.cancel(j), k.length + l.length >= 10 ? n() : j = f(function() {
  2315.                 n()
  2316.             }, 3e3), b.pictures.length > 0 ? b.active_picture = b.pictures[0] : b.active_picture = null, b.pictures.shift()
  2317.         };
  2318.         b.loading = !0, b.$watch("main.name", function() {
  2319.             i()
  2320.         }), b.$on("keypress", function(c, d, e) {
  2321.             a.hasModalOpen || ("l" == e && b.sendLike(), "s" == e && b.skipLike(), ("l" == e || "s" == e) && (c.defaultPrevented || (c.defaultPrevented = !0), d.stopPropagation(), b.$apply()))
  2322.         }), b.magnify = function() {
  2323.             b.magnified ? b.magnified = !1 : b.magnified = !0
  2324.         };
  2325.         var p = 0,
  2326.             q = 0;
  2327.         b.sendLike = function() {
  2328.             k.push({
  2329.                 id: b.active_picture.id,
  2330.                 ask_id: b.active_picture.details.ig_likes_ask_id,
  2331.                 username: b.active_picture.details.username,
  2332.                 user_pk: b.active_picture.details.user_pk,
  2333.                 media_pk: b.active_picture.details.media_pk
  2334.             }), o();
  2335.             var c = function(b) {
  2336.                 f(function() {
  2337.                     0 != b && (a.main.coins++, c(b - 1))
  2338.                 }, 100)
  2339.             };
  2340.             f(function() {
  2341.                 c(5)
  2342.             }, 1e3), $("#coins").append('<span class="added-coins color-success" style="position:absolute;" id="added_coins_' + p + '">+5</span>'), f(function() {
  2343.                 $("#added_coins_" + q).remove(), q++
  2344.             }, 1500), p++
  2345.         }, b.unpause_loading = !1, b.unpauseLikes = function() {
  2346.             b.unpause_loading = !0, c.unpause_likes.save({
  2347.                 ig_user: a.main.name
  2348.             }, function() {
  2349.                 b.unpause_loading = !1, b.likes_paused = !1
  2350.             }, function(a) {
  2351.                 b.unpause_loading = !1, e.alert(a.data)
  2352.             }), i()
  2353.         }, b.skipLike = function() {
  2354.             l.push({
  2355.                 id: b.active_picture.id
  2356.             }), o()
  2357.         }
  2358.     }]).controller("EngagementCtrl", ["$rootScope", "$scope", "remote", "$log", "errors", "$timeout", "$state", "$document", "$http", "$interval", function(a, b, c, d, e, f, g, h, i, j) {
  2359.         function k() {
  2360.             b.loading || (b.loading = !0, m = !0, void 0 !== b.enable_engagement ? i.post("/api/engagement_settings_2/", {
  2361.                 ig_user: a.main.name,
  2362.                 flag: b.enable_engagement,
  2363.                 tags: b.tags
  2364.             }).then(function(c) {
  2365.                 i.post("/api/engagement_settings/" + a.main.name + "/", {
  2366.                     ig_user: a.main.name,
  2367.                     flag: b.enable_engagement,
  2368.                     tags: b.tags
  2369.                 }).then(function() {
  2370.                     m = !1, b.loading = !1
  2371.                 }, function() {
  2372.                     m = !1, b.loading = !1
  2373.                 })
  2374.             }, function(a) {
  2375.                 b.enable_engagement = !1, f(function() {
  2376.                     m = !1
  2377.                 }, 1e3), e.alert(a.data), b.loading = !1
  2378.             }) : b.loading = !1)
  2379.         }
  2380.  
  2381.         function l() {
  2382.             b.loading || (b.loading = !0, c.engagement_settings.get({
  2383.                 ig_user: a.main.name
  2384.             }, function(a) {
  2385.                 b.enable_engagement = a.enable_engagement, b.tags = [], a.hashtags.forEach(function(a) {
  2386.                     b.tags.push({
  2387.                         name: a
  2388.                     })
  2389.                 }), b.loading = !1
  2390.             }, function(a) {
  2391.                 a.data.match(/paused/) ? b.likes_paused = !0 : e.alert(a.data), b.loading = !1
  2392.             }), c.engagement_likes_recent.query({
  2393.                 offset: 0,
  2394.                 max: 50,
  2395.                 ig_user: a.main.name
  2396.             }, function(a) {
  2397.                 b.pictures = a
  2398.             }, function(a) {
  2399.                 error.data.match(/paused/) ? b.likes_paused = !0 : e.alert(error.data)
  2400.             }))
  2401.         }
  2402.         b.magnified = !1, b.pictures = [], b.active_picture = null, b.getLink = function(a) {
  2403.             return 'javascript:this.location.replace("https://www.instagram.com/p/' + a + '/embed");'
  2404.         }, b.tags = [], b.likes_paused = !1, b.gotoAddLikes = function() {
  2405.             g.transitionTo("addlikes")
  2406.         }, b.getMomentFor = function(a) {
  2407.             var b = new Date(0);
  2408.             return b.setUTCSeconds(a), moment(b).fromNow()
  2409.         }, b.searchTags = function(b) {
  2410.             return i.get("/search_tags/" + a.main.name + "/" + b.replace("#", "") + "/10/").then(function(a) {
  2411.                 return a.data.results
  2412.             })
  2413.         };
  2414.         var m = !1;
  2415.         b.unlike = function(b) {
  2416.             c.send_unlike.save({
  2417.                 ig_user: a.main.name,
  2418.                 username: b.details.user.username,
  2419.                 user_pk: b.details.user.pk,
  2420.                 media_pk: b.details.pk
  2421.             }, function(a) {
  2422.                 b.created = 0
  2423.             }, function(a) {
  2424.                 e.alert(a.data)
  2425.             })
  2426.         }, b.$watchCollection("tags", function() {
  2427.             k()
  2428.         }), b.$watch("enable_engagement", function() {
  2429.             k()
  2430.         });
  2431.         var n = j(function() {
  2432.             void 0 !== b.enable_engagement && 1 == b.enable_engagement && l()
  2433.         }, 3e4);
  2434.         b.$on("$destroy", function() {
  2435.             j.cancel(n)
  2436.         }), b.$watch("main.name", function() {
  2437.             l()
  2438.         });
  2439.         b.unpause_loading = !1, b.unpauseLikes = function() {
  2440.             b.unpause_loading = !0, c.unpause_likes.save({
  2441.                 ig_user: a.main.name
  2442.             }, function() {
  2443.                 b.unpause_loading = !1, b.likes_paused = !1
  2444.             }, function(a) {
  2445.                 b.unpause_loading = !1, e.alert(a.data)
  2446.             }), l()
  2447.         }
  2448.     }]).controller("AddFundsCtrl", ["$rootScope", "$scope", "remote", "$location", function(a, b, c, d) {
  2449.         b.returnURL = d.absUrl().replace("buy_coins", "add_likes"), b.coins = 1e4, b.amount = 5.95, b.item_name_1 = "", a.main.user_id > 0 || c.get_user_id.get({}, function(b) {
  2450.             a.main.user_id = b.user_id
  2451.         }, function() {}), b.$watch("coins", function(a) {
  2452.             b.amount = Math.max(1, 5.95 * parseInt(a) / 1e4).toFixed(2)
  2453.         }), b.beforeSubmit = function() {
  2454.             b.item_name_1 = b.coins + " Gramblr Coins"
  2455.         }
  2456.     }]).controller("AddLikesCtrl", ["$rootScope", "$scope", "remote", "$state", "$stateParams", "errors", "principal", "$timeout", function(a, b, c, d, e, f, g, h) {
  2457.         function i() {
  2458.             if ("" == b.order.media_url) return b.img_url = null, b.media_pk = null, b.user_pk = null, b.media_code = "", void(b.serverError = "");
  2459.             b.serverError = "";
  2460.             var a = /\/p\/([^\/]+)/i,
  2461.                 c = "";
  2462.             try {
  2463.                 c = b.order.media_url.match(a)[1], "undefined" == c ? b.media_code = "" : b.media_code = c
  2464.             } catch (d) {
  2465.                 return void(b.serverError = "Invalid URL")
  2466.             }
  2467.         }
  2468.         b.order = {}, b.order.total_likes = 100, b.order.local_likes = !1, b.order.media_url = "", b.recalculate = function() {
  2469.             b.coins_cost = 10 * b.order.total_likes
  2470.         }, e.mediaCode && (b.order.media_url = "https://www.instagram.com/p/" + e.mediaCode + "/"), b.recalculate(), b.img_url = "", b.media_pk = "", b.user_pk = "", b.added_likes = [], b.updateResponsiveImage = function() {
  2471.             i(), "" != b.media_code && (b.loading = !0, c.get_image_url.get({
  2472.                 media_code: b.media_code
  2473.             }, function(a) {
  2474.                 500 == a.status ? b.serverError = a.message : (b.img_url = a.image_url, b.media_pk = a.media_pk, b.user_pk = a.user_pk, b.loading = !1)
  2475.             }, function(a) {
  2476.                 b.loading = !1, b.serverError = a.data.message
  2477.             }))
  2478.         }, "" != b.order.media_url && b.updateResponsiveImage();
  2479.         var j = 0,
  2480.             k = 0;
  2481.         b.addLikes = function() {
  2482.             return b.serverError = "", i(), b.media_code ? b.coins_cost > b.main.coins ? void(b.serverError = "Not enough coins available") : (b.loading = !0, void c.add_likes.save({
  2483.                 ig_user: a.main.name,
  2484.                 likes_qty: b.order.total_likes,
  2485.                 local_likes: b.order.local_likes,
  2486.                 media_pk: b.media_pk,
  2487.                 user_pk: b.user_pk
  2488.             }, function(c) {
  2489.                 b.loading = !1, b.added_likes.push({
  2490.                     media_url: b.order.media_url,
  2491.                     media_code: b.media_code,
  2492.                     likes: b.order.total_likes
  2493.                 });
  2494.                 var d = function(b) {
  2495.                     h(function() {
  2496.                         0 != b && (a.main.coins--, d(b - 1))
  2497.                     }, Math.min(250, 500 / b))
  2498.                 };
  2499.                 d(b.coins_cost), $("#coins").append('<span class="removed-coins color-danger" style="position:absolute;" id="removed_coins_' + j + '">-' + b.coins_cost + "</span>"), h(function() {
  2500.                     $("#removed_coins_" + k).remove(), k++
  2501.                 }, 1500), j++
  2502.             }, function(a) {
  2503.                 b.loading = !1, b.serverError = a.data.message
  2504.             })) : void(b.serverError = "Invalid media code")
  2505.         }
  2506.     }])
  2507. }(), ! function(a, b) {
  2508.     "object" == typeof exports && "undefined" != typeof module ? b(require("../moment")) : "function" == typeof define && define.amd ? define(["moment"], b) : b(a.moment)
  2509. }(this, function(a) {
  2510.     "use strict";
  2511.  
  2512.     function b(a, b) {
  2513.         var c = a.split("_");
  2514.         return b % 10 === 1 && b % 100 !== 11 ? c[0] : b % 10 >= 2 && 4 >= b % 10 && (10 > b % 100 || b % 100 >= 20) ? c[1] : c[2]
  2515.     }
  2516.  
  2517.     function c(a, c, d) {
  2518.         var e = {
  2519.             mm: c ? "хвіліна_хвіліны_хвілін" : "хвіліну_хвіліны_хвілін",
  2520.             hh: c ? "гадзіна_гадзіны_гадзін" : "гадзіну_гадзіны_гадзін",
  2521.             dd: "дзень_дні_дзён",
  2522.             MM: "месяц_месяцы_месяцаў",
  2523.             yy: "год_гады_гадоў"
  2524.         };
  2525.         return "m" === d ? c ? "хвіліна" : "хвіліну" : "h" === d ? c ? "гадзіна" : "гадзіну" : a + " " + b(e[d], +a)
  2526.     }
  2527.  
  2528.     function d(a, b) {
  2529.         var c = {
  2530.                 nominative: "студзень_люты_сакавік_красавік_травень_чэрвень_ліпень_жнівень_верасень_кастрычнік_лістапад_снежань".split("_"),
  2531.                 accusative: "студзеня_лютага_сакавіка_красавіка_траўня_чэрвеня_ліпеня_жніўня_верасня_кастрычніка_лістапада_снежня".split("_")
  2532.             },
  2533.             d = /D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b) ? "accusative" : "nominative";
  2534.         return c[d][a.month()]
  2535.     }
  2536.  
  2537.     function e(a, b) {
  2538.         var c = {
  2539.                 nominative: "нядзеля_панядзелак_аўторак_серада_чацвер_пятніца_субота".split("_"),
  2540.                 accusative: "нядзелю_панядзелак_аўторак_сераду_чацвер_пятніцу_суботу".split("_")
  2541.             },
  2542.             d = /\[ ?[Вв] ?(?:мінулую|наступную)? ?\] ?dddd/.test(b) ? "accusative" : "nominative";
  2543.         return c[d][a.day()]
  2544.     }
  2545.  
  2546.     function f(a, b, c) {
  2547.         var d = {
  2548.             mm: "munutenn",
  2549.             MM: "miz",
  2550.             dd: "devezh"
  2551.         };
  2552.         return a + " " + i(d[c], a)
  2553.     }
  2554.  
  2555.     function g(a) {
  2556.         switch (h(a)) {
  2557.             case 1:
  2558.             case 3:
  2559.             case 4:
  2560.             case 5:
  2561.             case 9:
  2562.                 return a + " bloaz";
  2563.             default:
  2564.                 return a + " vloaz"
  2565.         }
  2566.     }
  2567.  
  2568.     function h(a) {
  2569.         return a > 9 ? h(a % 10) : a
  2570.     }
  2571.  
  2572.     function i(a, b) {
  2573.         return 2 === b ? j(a) : a
  2574.     }
  2575.  
  2576.     function j(a) {
  2577.         var b = {
  2578.             m: "v",
  2579.             b: "v",
  2580.             d: "z"
  2581.         };
  2582.         return void 0 === b[a.charAt(0)] ? a : b[a.charAt(0)] + a.substring(1)
  2583.     }
  2584.  
  2585.     function k(a, b, c) {
  2586.         var d = a + " ";
  2587.         switch (c) {
  2588.             case "m":
  2589.                 return b ? "jedna minuta" : "jedne minute";
  2590.             case "mm":
  2591.                 return d += 1 === a ? "minuta" : 2 === a || 3 === a || 4 === a ? "minute" : "minuta";
  2592.             case "h":
  2593.                 return b ? "jedan sat" : "jednog sata";
  2594.             case "hh":
  2595.                 return d += 1 === a ? "sat" : 2 === a || 3 === a || 4 === a ? "sata" : "sati";
  2596.             case "dd":
  2597.                 return d += 1 === a ? "dan" : "dana";
  2598.             case "MM":
  2599.                 return d += 1 === a ? "mjesec" : 2 === a || 3 === a || 4 === a ? "mjeseca" : "mjeseci";
  2600.             case "yy":
  2601.                 return d += 1 === a ? "godina" : 2 === a || 3 === a || 4 === a ? "godine" : "godina"
  2602.         }
  2603.     }
  2604.  
  2605.     function l(a) {
  2606.         return a > 1 && 5 > a && 1 !== ~~(a / 10)
  2607.     }
  2608.  
  2609.     function m(a, b, c, d) {
  2610.         var e = a + " ";
  2611.         switch (c) {
  2612.             case "s":
  2613.                 return b || d ? "pár sekund" : "pár sekundami";
  2614.             case "m":
  2615.                 return b ? "minuta" : d ? "minutu" : "minutou";
  2616.             case "mm":
  2617.                 return b || d ? e + (l(a) ? "minuty" : "minut") : e + "minutami";
  2618.             case "h":
  2619.                 return b ? "hodina" : d ? "hodinu" : "hodinou";
  2620.             case "hh":
  2621.                 return b || d ? e + (l(a) ? "hodiny" : "hodin") : e + "hodinami";
  2622.             case "d":
  2623.                 return b || d ? "den" : "dnem";
  2624.             case "dd":
  2625.                 return b || d ? e + (l(a) ? "dny" : "dní") : e + "dny";
  2626.             case "M":
  2627.                 return b || d ? "mÄ›síc" : "mÄ›sícem";
  2628.             case "MM":
  2629.                 return b || d ? e + (l(a) ? "mÄ›síce" : "mÄ›síců") : e + "mÄ›síci";
  2630.             case "y":
  2631.                 return b || d ? "rok" : "rokem";
  2632.             case "yy":
  2633.                 return b || d ? e + (l(a) ? "roky" : "let") : e + "lety"
  2634.         }
  2635.     }
  2636.  
  2637.     function n(a, b, c, d) {
  2638.         var e = {
  2639.             m: ["eine Minute", "einer Minute"],
  2640.             h: ["eine Stunde", "einer Stunde"],
  2641.             d: ["ein Tag", "einem Tag"],
  2642.             dd: [a + " Tage", a + " Tagen"],
  2643.             M: ["ein Monat", "einem Monat"],
  2644.             MM: [a + " Monate", a + " Monaten"],
  2645.             y: ["ein Jahr", "einem Jahr"],
  2646.             yy: [a + " Jahre", a + " Jahren"]
  2647.         };
  2648.         return b ? e[c][0] : e[c][1]
  2649.     }
  2650.  
  2651.     function o(a, b, c, d) {
  2652.         var e = {
  2653.             m: ["eine Minute", "einer Minute"],
  2654.             h: ["eine Stunde", "einer Stunde"],
  2655.             d: ["ein Tag", "einem Tag"],
  2656.             dd: [a + " Tage", a + " Tagen"],
  2657.             M: ["ein Monat", "einem Monat"],
  2658.             MM: [a + " Monate", a + " Monaten"],
  2659.             y: ["ein Jahr", "einem Jahr"],
  2660.             yy: [a + " Jahre", a + " Jahren"]
  2661.         };
  2662.         return b ? e[c][0] : e[c][1]
  2663.     }
  2664.  
  2665.     function p(a, b, c, d) {
  2666.         var e = {
  2667.             s: ["mõne sekundi", "mõni sekund", "paar sekundit"],
  2668.             m: ["ühe minuti", "üks minut"],
  2669.             mm: [a + " minuti", a + " minutit"],
  2670.             h: ["ühe tunni", "tund aega", "üks tund"],
  2671.             hh: [a + " tunni", a + " tundi"],
  2672.             d: ["ühe päeva", "üks päev"],
  2673.             M: ["kuu aja", "kuu aega", "üks kuu"],
  2674.             MM: [a + " kuu", a + " kuud"],
  2675.             y: ["ühe aasta", "aasta", "üks aasta"],
  2676.             yy: [a + " aasta", a + " aastat"]
  2677.         };
  2678.         return b ? e[c][2] ? e[c][2] : e[c][1] : d ? e[c][0] : e[c][1]
  2679.     }
  2680.  
  2681.     function q(a, b, c, d) {
  2682.         var e = "";
  2683.         switch (c) {
  2684.             case "s":
  2685.                 return d ? "muutaman sekunnin" : "muutama sekunti";
  2686.             case "m":
  2687.                 return d ? "minuutin" : "minuutti";
  2688.             case "mm":
  2689.                 e = d ? "minuutin" : "minuuttia";
  2690.                 break;
  2691.             case "h":
  2692.                 return d ? "tunnin" : "tunti";
  2693.             case "hh":
  2694.                 e = d ? "tunnin" : "tuntia";
  2695.                 break;
  2696.             case "d":
  2697.                 return d ? "päivän" : "päivä";
  2698.             case "dd":
  2699.                 e = d ? "päivän" : "päivää";
  2700.                 break;
  2701.             case "M":
  2702.                 return d ? "kuukauden" : "kuukausi";
  2703.             case "MM":
  2704.                 e = d ? "kuukauden" : "kuukautta";
  2705.                 break;
  2706.             case "y":
  2707.                 return d ? "vuoden" : "vuosi";
  2708.             case "yy":
  2709.                 e = d ? "vuoden" : "vuotta"
  2710.         }
  2711.         return e = r(a, d) + " " + e
  2712.     }
  2713.  
  2714.     function r(a, b) {
  2715.         return 10 > a ? b ? Aa[a] : za[a] : a
  2716.     }
  2717.  
  2718.     function s(a, b, c) {
  2719.         var d = a + " ";
  2720.         switch (c) {
  2721.             case "m":
  2722.                 return b ? "jedna minuta" : "jedne minute";
  2723.             case "mm":
  2724.                 return d += 1 === a ? "minuta" : 2 === a || 3 === a || 4 === a ? "minute" : "minuta";
  2725.             case "h":
  2726.                 return b ? "jedan sat" : "jednog sata";
  2727.             case "hh":
  2728.                 return d += 1 === a ? "sat" : 2 === a || 3 === a || 4 === a ? "sata" : "sati";
  2729.             case "dd":
  2730.                 return d += 1 === a ? "dan" : "dana";
  2731.             case "MM":
  2732.                 return d += 1 === a ? "mjesec" : 2 === a || 3 === a || 4 === a ? "mjeseca" : "mjeseci";
  2733.             case "yy":
  2734.                 return d += 1 === a ? "godina" : 2 === a || 3 === a || 4 === a ? "godine" : "godina"
  2735.         }
  2736.     }
  2737.  
  2738.     function t(a, b, c, d) {
  2739.         var e = a;
  2740.         switch (c) {
  2741.             case "s":
  2742.                 return d || b ? "néhány másodperc" : "néhány másodperce";
  2743.             case "m":
  2744.                 return "egy" + (d || b ? " perc" : " perce");
  2745.             case "mm":
  2746.                 return e + (d || b ? " perc" : " perce");
  2747.             case "h":
  2748.                 return "egy" + (d || b ? " óra" : " órája");
  2749.             case "hh":
  2750.                 return e + (d || b ? " óra" : " órája");
  2751.             case "d":
  2752.                 return "egy" + (d || b ? " nap" : " napja");
  2753.             case "dd":
  2754.                 return e + (d || b ? " nap" : " napja");
  2755.             case "M":
  2756.                 return "egy" + (d || b ? " hónap" : " hónapja");
  2757.             case "MM":
  2758.                 return e + (d || b ? " hónap" : " hónapja");
  2759.             case "y":
  2760.                 return "egy" + (d || b ? " év" : " éve");
  2761.             case "yy":
  2762.                 return e + (d || b ? " év" : " éve")
  2763.         }
  2764.         return ""
  2765.     }
  2766.  
  2767.     function u(a) {
  2768.         return (a ? "" : "[múlt] ") + "[" + Fa[this.day()] + "] LT[-kor]"
  2769.     }
  2770.  
  2771.     function v(a, b) {
  2772.         var c = {
  2773.                 nominative: "Õ°Õ¸Ö‚Õ¶Õ¾Õ¡Ö€_ÖƒÕ¥Õ¿Ö€Õ¾Õ¡Ö€_Õ´Õ¡Ö€Õ¿_Õ¡ÕºÖ€Õ«Õ¬_Õ´Õ¡ÕµÕ«Õ½_Õ°Õ¸Ö‚Õ¶Õ«Õ½_Õ°Õ¸Ö‚Õ¬Õ«Õ½_Ö…Õ£Õ¸Õ½Õ¿Õ¸Õ½_Õ½Õ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥Ö€_Õ°Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€_Õ¶Õ¸ÕµÕ¥Õ´Õ¢Õ¥Ö€_Õ¤Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€".split("_"),
  2774.                 accusative: "Õ°Õ¸Ö‚Õ¶Õ¾Õ¡Ö€Õ«_ÖƒÕ¥Õ¿Ö€Õ¾Õ¡Ö€Õ«_Õ´Õ¡Ö€Õ¿Õ«_Õ¡ÕºÖ€Õ«Õ¬Õ«_Õ´Õ¡ÕµÕ«Õ½Õ«_Õ°Õ¸Ö‚Õ¶Õ«Õ½Õ«_Õ°Õ¸Ö‚Õ¬Õ«Õ½Õ«_Ö…Õ£Õ¸Õ½Õ¿Õ¸Õ½Õ«_Õ½Õ¥ÕºÕ¿Õ¥Õ´Õ¢Õ¥Ö€Õ«_Õ°Õ¸Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€Õ«_Õ¶Õ¸ÕµÕ¥Õ´Õ¢Õ¥Ö€Õ«_Õ¤Õ¥Õ¯Õ¿Õ¥Õ´Õ¢Õ¥Ö€Õ«".split("_")
  2775.             },
  2776.             d = /D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b) ? "accusative" : "nominative";
  2777.         return c[d][a.month()]
  2778.     }
  2779.  
  2780.     function w(a, b) {
  2781.         var c = "Õ°Õ¶Õ¾_ÖƒÕ¿Ö€_Õ´Ö€Õ¿_Õ¡ÕºÖ€_Õ´ÕµÕ½_Õ°Õ¶Õ½_Õ°Õ¬Õ½_Ö…Õ£Õ½_Õ½ÕºÕ¿_Õ°Õ¯Õ¿_Õ¶Õ´Õ¢_Õ¤Õ¯Õ¿".split("_");
  2782.         return c[a.month()]
  2783.     }
  2784.  
  2785.     function x(a, b) {
  2786.         var c = "Õ¯Õ«Ö€Õ¡Õ¯Õ«_Õ¥Ö€Õ¯Õ¸Ö‚Õ·Õ¡Õ¢Õ©Õ«_Õ¥Ö€Õ¥Ö„Õ·Õ¡Õ¢Õ©Õ«_Õ¹Õ¸Ö€Õ¥Ö„Õ·Õ¡Õ¢Õ©Õ«_Õ°Õ«Õ¶Õ£Õ·Õ¡Õ¢Õ©Õ«_Õ¸Ö‚Ö€Õ¢Õ¡Õ©_Õ·Õ¡Õ¢Õ¡Õ©".split("_");
  2787.         return c[a.day()]
  2788.     }
  2789.  
  2790.     function y(a) {
  2791.         return a % 100 === 11 ? !0 : a % 10 === 1 ? !1 : !0
  2792.     }
  2793.  
  2794.     function z(a, b, c, d) {
  2795.         var e = a + " ";
  2796.         switch (c) {
  2797.             case "s":
  2798.                 return b || d ? "nokkrar sekúndur" : "nokkrum sekúndum";
  2799.             case "m":
  2800.                 return b ? "mínúta" : "mínútu";
  2801.             case "mm":
  2802.                 return y(a) ? e + (b || d ? "mínútur" : "mínútum") : b ? e + "mínúta" : e + "mínútu";
  2803.             case "hh":
  2804.                 return y(a) ? e + (b || d ? "klukkustundir" : "klukkustundum") : e + "klukkustund";
  2805.             case "d":
  2806.                 return b ? "dagur" : d ? "dag" : "degi";
  2807.             case "dd":
  2808.                 return y(a) ? b ? e + "dagar" : e + (d ? "daga" : "dögum") : b ? e + "dagur" : e + (d ? "dag" : "degi");
  2809.             case "M":
  2810.                 return b ? "mánuður" : d ? "mánuð" : "mánuði";
  2811.             case "MM":
  2812.                 return y(a) ? b ? e + "mánuðir" : e + (d ? "mánuði" : "mánuðum") : b ? e + "mánuður" : e + (d ? "mánuð" : "mánuði");
  2813.             case "y":
  2814.                 return b || d ? "ár" : "ári";
  2815.             case "yy":
  2816.                 return y(a) ? e + (b || d ? "ár" : "árum") : e + (b || d ? "ár" : "ári")
  2817.         }
  2818.     }
  2819.  
  2820.     function A(a, b) {
  2821.         var c = {
  2822.                 nominative: "იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი".split("_"),
  2823.                 accusative: "იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს".split("_")
  2824.             },
  2825.             d = /D[oD] *MMMM?/.test(b) ? "accusative" : "nominative";
  2826.         return c[d][a.month()]
  2827.     }
  2828.  
  2829.     function B(a, b) {
  2830.         var c = {
  2831.                 nominative: "კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი".split("_"),
  2832.                 accusative: "კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს".split("_")
  2833.             },
  2834.             d = /(წინა|შემდეგ)/.test(b) ? "accusative" : "nominative";
  2835.         return c[d][a.day()]
  2836.     }
  2837.  
  2838.     function C(a, b, c, d) {
  2839.         var e = {
  2840.             m: ["eng Minutt", "enger Minutt"],
  2841.             h: ["eng Stonn", "enger Stonn"],
  2842.             d: ["een Dag", "engem Dag"],
  2843.             M: ["ee Mount", "engem Mount"],
  2844.             y: ["ee Joer", "engem Joer"]
  2845.         };
  2846.         return b ? e[c][0] : e[c][1]
  2847.     }
  2848.  
  2849.     function D(a) {
  2850.         var b = a.substr(0, a.indexOf(" "));
  2851.         return F(b) ? "a " + a : "an " + a
  2852.     }
  2853.  
  2854.     function E(a) {
  2855.         var b = a.substr(0, a.indexOf(" "));
  2856.         return F(b) ? "viru " + a : "virun " + a
  2857.     }
  2858.  
  2859.     function F(a) {
  2860.         if (a = parseInt(a, 10), isNaN(a)) return !1;
  2861.         if (0 > a) return !0;
  2862.         if (10 > a) return a >= 4 && 7 >= a ? !0 : !1;
  2863.         if (100 > a) {
  2864.             var b = a % 10,
  2865.                 c = a / 10;
  2866.             return F(0 === b ? c : b)
  2867.         }
  2868.         if (1e4 > a) {
  2869.             for (; a >= 10;) a /= 10;
  2870.             return F(a)
  2871.         }
  2872.         return a /= 1e3, F(a)
  2873.     }
  2874.  
  2875.     function G(a, b, c, d) {
  2876.         return b ? "kelios sekundÄ—s" : d ? "kelių sekundžių" : "kelias sekundes"
  2877.     }
  2878.  
  2879.     function H(a, b) {
  2880.         var c = {
  2881.                 nominative: "sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjÅ«tis_rugsÄ—jis_spalis_lapkritis_gruodis".split("_"),
  2882.                 accusative: "sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsÄ—jo_spalio_lapkričio_gruodžio".split("_")
  2883.             },
  2884.             d = /D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b) ? "accusative" : "nominative";
  2885.         return c[d][a.month()]
  2886.     }
  2887.  
  2888.     function I(a, b, c, d) {
  2889.         return b ? K(c)[0] : d ? K(c)[1] : K(c)[2]
  2890.     }
  2891.  
  2892.     function J(a) {
  2893.         return a % 10 === 0 || a > 10 && 20 > a
  2894.     }
  2895.  
  2896.     function K(a) {
  2897.         return Ga[a].split("_")
  2898.     }
  2899.  
  2900.     function L(a, b, c, d) {
  2901.         var e = a + " ";
  2902.         return 1 === a ? e + I(a, b, c[0], d) : b ? e + (J(a) ? K(c)[1] : K(c)[0]) : d ? e + K(c)[1] : e + (J(a) ? K(c)[1] : K(c)[2])
  2903.     }
  2904.  
  2905.     function M(a, b) {
  2906.         var c = -1 === b.indexOf("dddd HH:mm"),
  2907.             d = Ha[a.day()];
  2908.         return c ? d : d.substring(0, d.length - 2) + "į"
  2909.     }
  2910.  
  2911.     function N(a, b, c) {
  2912.         return c ? b % 10 === 1 && 11 !== b ? a[2] : a[3] : b % 10 === 1 && 11 !== b ? a[0] : a[1]
  2913.     }
  2914.  
  2915.     function O(a, b, c) {
  2916.         return a + " " + N(Ia[c], a, b)
  2917.     }
  2918.  
  2919.     function P(a, b, c) {
  2920.         return N(Ia[c], a, b)
  2921.     }
  2922.  
  2923.     function Q(a, b) {
  2924.         return b ? "dažas sekundes" : "dažām sekundÄ“m"
  2925.     }
  2926.  
  2927.     function R(a) {
  2928.         return 5 > a % 10 && a % 10 > 1 && ~~(a / 10) % 10 !== 1
  2929.     }
  2930.  
  2931.     function S(a, b, c) {
  2932.         var d = a + " ";
  2933.         switch (c) {
  2934.             case "m":
  2935.                 return b ? "minuta" : "minutÄ™";
  2936.             case "mm":
  2937.                 return d + (R(a) ? "minuty" : "minut");
  2938.             case "h":
  2939.                 return b ? "godzina" : "godzinÄ™";
  2940.             case "hh":
  2941.                 return d + (R(a) ? "godziny" : "godzin");
  2942.             case "MM":
  2943.                 return d + (R(a) ? "miesiÄ…ce" : "miesiÄ™cy");
  2944.             case "yy":
  2945.                 return d + (R(a) ? "lata" : "lat")
  2946.         }
  2947.     }
  2948.  
  2949.     function T(a, b, c) {
  2950.         var d = {
  2951.                 mm: "minute",
  2952.                 hh: "ore",
  2953.                 dd: "zile",
  2954.                 MM: "luni",
  2955.                 yy: "ani"
  2956.             },
  2957.             e = " ";
  2958.         return (a % 100 >= 20 || a >= 100 && a % 100 === 0) && (e = " de "), a + e + d[c]
  2959.     }
  2960.  
  2961.     function U(a, b) {
  2962.         var c = a.split("_");
  2963.         return b % 10 === 1 && b % 100 !== 11 ? c[0] : b % 10 >= 2 && 4 >= b % 10 && (10 > b % 100 || b % 100 >= 20) ? c[1] : c[2]
  2964.     }
  2965.  
  2966.     function V(a, b, c) {
  2967.         var d = {
  2968.             mm: b ? "минута_минуты_минут" : "минуту_минуты_минут",
  2969.             hh: "час_часа_часов",
  2970.             dd: "день_дня_дней",
  2971.             MM: "месяц_месяца_месяцев",
  2972.             yy: "год_года_лет"
  2973.         };
  2974.         return "m" === c ? b ? "минута" : "минуту" : a + " " + U(d[c], +a)
  2975.     }
  2976.  
  2977.     function W(a, b) {
  2978.         var c = {
  2979.                 nominative: "январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),
  2980.                 accusative: "января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря".split("_")
  2981.             },
  2982.             d = /D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b) ? "accusative" : "nominative";
  2983.         return c[d][a.month()]
  2984.     }
  2985.  
  2986.     function X(a, b) {
  2987.         var c = {
  2988.                 nominative: "янв_фев_март_апр_май_июнь_июль_авг_сен_окт_ноя_дек".split("_"),
  2989.                 accusative: "янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек".split("_")
  2990.             },
  2991.             d = /D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/.test(b) ? "accusative" : "nominative";
  2992.         return c[d][a.month()]
  2993.     }
  2994.  
  2995.     function Y(a, b) {
  2996.         var c = {
  2997.                 nominative: "воскресенье_понедельник_вторник_среда_четверг_пятница_суббота".split("_"),
  2998.                 accusative: "воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу".split("_")
  2999.             },
  3000.             d = /\[ ?[Вв] ?(?:прошлую|следующую|эту)? ?\] ?dddd/.test(b) ? "accusative" : "nominative";
  3001.         return c[d][a.day()]
  3002.     }
  3003.  
  3004.     function Z(a) {
  3005.         return a > 1 && 5 > a
  3006.     }
  3007.  
  3008.     function $(a, b, c, d) {
  3009.         var e = a + " ";
  3010.         switch (c) {
  3011.             case "s":
  3012.                 return b || d ? "pár sekúnd" : "pár sekundami";
  3013.             case "m":
  3014.                 return b ? "minúta" : d ? "minútu" : "minútou";
  3015.             case "mm":
  3016.                 return b || d ? e + (Z(a) ? "minúty" : "minút") : e + "minútami";
  3017.             case "h":
  3018.                 return b ? "hodina" : d ? "hodinu" : "hodinou";
  3019.             case "hh":
  3020.                 return b || d ? e + (Z(a) ? "hodiny" : "hodín") : e + "hodinami";
  3021.             case "d":
  3022.                 return b || d ? "deň" : "dňom";
  3023.             case "dd":
  3024.                 return b || d ? e + (Z(a) ? "dni" : "dní") : e + "dňami";
  3025.             case "M":
  3026.                 return b || d ? "mesiac" : "mesiacom";
  3027.             case "MM":
  3028.                 return b || d ? e + (Z(a) ? "mesiace" : "mesiacov") : e + "mesiacmi";
  3029.             case "y":
  3030.                 return b || d ? "rok" : "rokom";
  3031.             case "yy":
  3032.                 return b || d ? e + (Z(a) ? "roky" : "rokov") : e + "rokmi"
  3033.         }
  3034.     }
  3035.  
  3036.     function _(a, b, c, d) {
  3037.         var e = a + " ";
  3038.         switch (c) {
  3039.             case "s":
  3040.                 return b || d ? "nekaj sekund" : "nekaj sekundami";
  3041.             case "m":
  3042.                 return b ? "ena minuta" : "eno minuto";
  3043.             case "mm":
  3044.                 return e += 1 === a ? b ? "minuta" : "minuto" : 2 === a ? b || d ? "minuti" : "minutama" : 5 > a ? b || d ? "minute" : "minutami" : b || d ? "minut" : "minutami";
  3045.             case "h":
  3046.                 return b ? "ena ura" : "eno uro";
  3047.             case "hh":
  3048.                 return e += 1 === a ? b ? "ura" : "uro" : 2 === a ? b || d ? "uri" : "urama" : 5 > a ? b || d ? "ure" : "urami" : b || d ? "ur" : "urami";
  3049.             case "d":
  3050.                 return b || d ? "en dan" : "enim dnem";
  3051.             case "dd":
  3052.                 return e += 1 === a ? b || d ? "dan" : "dnem" : 2 === a ? b || d ? "dni" : "dnevoma" : b || d ? "dni" : "dnevi";
  3053.             case "M":
  3054.                 return b || d ? "en mesec" : "enim mesecem";
  3055.             case "MM":
  3056.                 return e += 1 === a ? b || d ? "mesec" : "mesecem" : 2 === a ? b || d ? "meseca" : "mesecema" : 5 > a ? b || d ? "mesece" : "meseci" : b || d ? "mesecev" : "meseci";
  3057.             case "y":
  3058.                 return b || d ? "eno leto" : "enim letom";
  3059.             case "yy":
  3060.                 return e += 1 === a ? b || d ? "leto" : "letom" : 2 === a ? b || d ? "leti" : "letoma" : 5 > a ? b || d ? "leta" : "leti" : b || d ? "let" : "leti"
  3061.         }
  3062.     }
  3063.  
  3064.     function aa(a, b, c, d) {
  3065.         var e = {
  3066.             s: ["viensas secunds", "'iensas secunds"],
  3067.             m: ["'n míut", "'iens míut"],
  3068.             mm: [a + " míuts", " " + a + " míuts"],
  3069.             h: ["'n þora", "'iensa þora"],
  3070.             hh: [a + " þoras", " " + a + " þoras"],
  3071.             d: ["'n ziua", "'iensa ziua"],
  3072.             dd: [a + " ziuas", " " + a + " ziuas"],
  3073.             M: ["'n mes", "'iens mes"],
  3074.             MM: [a + " mesen", " " + a + " mesen"],
  3075.             y: ["'n ar", "'iens ar"],
  3076.             yy: [a + " ars", " " + a + " ars"]
  3077.         };
  3078.         return d ? e[c][0] : b ? e[c][0] : e[c][1].trim()
  3079.     }
  3080.  
  3081.     function ba(a, b) {
  3082.         var c = a.split("_");
  3083.         return b % 10 === 1 && b % 100 !== 11 ? c[0] : b % 10 >= 2 && 4 >= b % 10 && (10 > b % 100 || b % 100 >= 20) ? c[1] : c[2]
  3084.     }
  3085.  
  3086.     function ca(a, b, c) {
  3087.         var d = {
  3088.             mm: "хвилина_хвилини_хвилин",
  3089.             hh: "година_години_годин",
  3090.             dd: "день_дні_днів",
  3091.             MM: "місяць_місяці_місяців",
  3092.             yy: "рік_роки_років"
  3093.         };
  3094.         return "m" === c ? b ? "хвилина" : "хвилину" : "h" === c ? b ? "година" : "годину" : a + " " + ba(d[c], +a)
  3095.     }
  3096.  
  3097.     function da(a, b) {
  3098.         var c = {
  3099.                 nominative: "січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень".split("_"),
  3100.                 accusative: "січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня".split("_")
  3101.             },
  3102.             d = /D[oD]? *MMMM?/.test(b) ? "accusative" : "nominative";
  3103.         return c[d][a.month()]
  3104.     }
  3105.  
  3106.     function ea(a, b) {
  3107.         var c = {
  3108.                 nominative: "неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота".split("_"),
  3109.                 accusative: "неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу".split("_"),
  3110.                 genitive: "неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи".split("_")
  3111.             },
  3112.             d = /(\[[ВвУу]\]) ?dddd/.test(b) ? "accusative" : /\[?(?:минулої|наступної)? ?\] ?dddd/.test(b) ? "genitive" : "nominative";
  3113.         return c[d][a.day()]
  3114.     }
  3115.  
  3116.     function fa(a) {
  3117.         return function() {
  3118.             return a + "о" + (11 === this.hours() ? "б" : "") + "] LT"
  3119.         }
  3120.     }
  3121.     var ga = (a.defineLocale("af", {
  3122.             months: "Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember".split("_"),
  3123.             monthsShort: "Jan_Feb_Mar_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des".split("_"),
  3124.             weekdays: "Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag".split("_"),
  3125.             weekdaysShort: "Son_Maa_Din_Woe_Don_Vry_Sat".split("_"),
  3126.             weekdaysMin: "So_Ma_Di_Wo_Do_Vr_Sa".split("_"),
  3127.             meridiemParse: /vm|nm/i,
  3128.             isPM: function(a) {
  3129.                 return /^nm$/i.test(a)
  3130.             },
  3131.             meridiem: function(a, b, c) {
  3132.                 return 12 > a ? c ? "vm" : "VM" : c ? "nm" : "NM"
  3133.             },
  3134.             longDateFormat: {
  3135.                 LT: "HH:mm",
  3136.                 LTS: "HH:mm:ss",
  3137.                 L: "DD/MM/YYYY",
  3138.                 LL: "D MMMM YYYY",
  3139.                 LLL: "D MMMM YYYY HH:mm",
  3140.                 LLLL: "dddd, D MMMM YYYY HH:mm"
  3141.             },
  3142.             calendar: {
  3143.                 sameDay: "[Vandag om] LT",
  3144.                 nextDay: "[Môre om] LT",
  3145.                 nextWeek: "dddd [om] LT",
  3146.                 lastDay: "[Gister om] LT",
  3147.                 lastWeek: "[Laas] dddd [om] LT",
  3148.                 sameElse: "L"
  3149.             },
  3150.             relativeTime: {
  3151.                 future: "oor %s",
  3152.                 past: "%s gelede",
  3153.                 s: "'n paar sekondes",
  3154.                 m: "'n minuut",
  3155.                 mm: "%d minute",
  3156.                 h: "'n uur",
  3157.                 hh: "%d ure",
  3158.                 d: "'n dag",
  3159.                 dd: "%d dae",
  3160.                 M: "'n maand",
  3161.                 MM: "%d maande",
  3162.                 y: "'n jaar",
  3163.                 yy: "%d jaar"
  3164.             },
  3165.             ordinalParse: /\d{1,2}(ste|de)/,
  3166.             ordinal: function(a) {
  3167.                 return a + (1 === a || 8 === a || a >= 20 ? "ste" : "de")
  3168.             },
  3169.             week: {
  3170.                 dow: 1,
  3171.                 doy: 4
  3172.             }
  3173.         }), a.defineLocale("ar-ma", {
  3174.             months: "يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),
  3175.             monthsShort: "يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),
  3176.             weekdays: "الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),
  3177.             weekdaysShort: "احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),
  3178.             weekdaysMin: "Ø­_Ù†_Ø«_ر_Ø®_ج_س".split("_"),
  3179.             longDateFormat: {
  3180.                 LT: "HH:mm",
  3181.                 LTS: "HH:mm:ss",
  3182.                 L: "DD/MM/YYYY",
  3183.                 LL: "D MMMM YYYY",
  3184.                 LLL: "D MMMM YYYY HH:mm",
  3185.                 LLLL: "dddd D MMMM YYYY HH:mm"
  3186.             },
  3187.             calendar: {
  3188.                 sameDay: "[اليوم على الساعة] LT",
  3189.                 nextDay: "[غدا على الساعة] LT",
  3190.                 nextWeek: "dddd [على الساعة] LT",
  3191.                 lastDay: "[أمس على الساعة] LT",
  3192.                 lastWeek: "dddd [على الساعة] LT",
  3193.                 sameElse: "L"
  3194.             },
  3195.             relativeTime: {
  3196.                 future: "في %s",
  3197.                 past: "منذ %s",
  3198.                 s: "ثوان",
  3199.                 m: "دقيقة",
  3200.                 mm: "%d دقائق",
  3201.                 h: "ساعة",
  3202.                 hh: "%d ساعات",
  3203.                 d: "يوم",
  3204.                 dd: "%d أيام",
  3205.                 M: "شهر",
  3206.                 MM: "%d أشهر",
  3207.                 y: "سنة",
  3208.                 yy: "%d سنوات"
  3209.             },
  3210.             week: {
  3211.                 dow: 6,
  3212.                 doy: 12
  3213.             }
  3214.         }), {
  3215.             1: "Ù¡",
  3216.             2: "Ù¢",
  3217.             3: "Ù£",
  3218.             4: "Ù¤",
  3219.             5: "Ù¥",
  3220.             6: "Ù¦",
  3221.             7: "Ù§",
  3222.             8: "Ù¨",
  3223.             9: "Ù©",
  3224.             0: "Ù "
  3225.         }),
  3226.         ha = {
  3227.             "Ù¡": "1",
  3228.             "Ù¢": "2",
  3229.             "Ù£": "3",
  3230.             "Ù¤": "4",
  3231.             "Ù¥": "5",
  3232.             "Ù¦": "6",
  3233.             "Ù§": "7",
  3234.             "Ù¨": "8",
  3235.             "Ù©": "9",
  3236.             "Ù ": "0"
  3237.         },
  3238.         ia = (a.defineLocale("ar-sa", {
  3239.             months: "يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),
  3240.             monthsShort: "يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),
  3241.             weekdays: "الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),
  3242.             weekdaysShort: "أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),
  3243.             weekdaysMin: "Ø­_Ù†_Ø«_ر_Ø®_ج_س".split("_"),
  3244.             longDateFormat: {
  3245.                 LT: "HH:mm",
  3246.                 LTS: "HH:mm:ss",
  3247.                 L: "DD/MM/YYYY",
  3248.                 LL: "D MMMM YYYY",
  3249.                 LLL: "D MMMM YYYY HH:mm",
  3250.                 LLLL: "dddd D MMMM YYYY HH:mm"
  3251.             },
  3252.             meridiemParse: /ص|Ù…/,
  3253.             isPM: function(a) {
  3254.                 return "Ù…" === a
  3255.             },
  3256.             meridiem: function(a, b, c) {
  3257.                 return 12 > a ? "ص" : "Ù…"
  3258.             },
  3259.             calendar: {
  3260.                 sameDay: "[اليوم على الساعة] LT",
  3261.                 nextDay: "[غدا على الساعة] LT",
  3262.                 nextWeek: "dddd [على الساعة] LT",
  3263.                 lastDay: "[أمس على الساعة] LT",
  3264.                 lastWeek: "dddd [على الساعة] LT",
  3265.                 sameElse: "L"
  3266.             },
  3267.             relativeTime: {
  3268.                 future: "في %s",
  3269.                 past: "منذ %s",
  3270.                 s: "ثوان",
  3271.                 m: "دقيقة",
  3272.                 mm: "%d دقائق",
  3273.                 h: "ساعة",
  3274.                 hh: "%d ساعات",
  3275.                 d: "يوم",
  3276.                 dd: "%d أيام",
  3277.                 M: "شهر",
  3278.                 MM: "%d أشهر",
  3279.                 y: "سنة",
  3280.                 yy: "%d سنوات"
  3281.             },
  3282.             preparse: function(a) {
  3283.                 return a.replace(/[١٢٣٤٥٦٧٨٩٠]/g, function(a) {
  3284.                     return ha[a]
  3285.                 }).replace(/ØŒ/g, ",")
  3286.             },
  3287.             postformat: function(a) {
  3288.                 return a.replace(/\d/g, function(a) {
  3289.                     return ga[a]
  3290.                 }).replace(/,/g, "ØŒ")
  3291.             },
  3292.             week: {
  3293.                 dow: 6,
  3294.                 doy: 12
  3295.             }
  3296.         }), a.defineLocale("ar-tn", {
  3297.             months: "جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),
  3298.             monthsShort: "جانفي_فيفري_مارس_أفريل_ماي_جوان_جويلية_أوت_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),
  3299.             weekdays: "الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),
  3300.             weekdaysShort: "أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),
  3301.             weekdaysMin: "Ø­_Ù†_Ø«_ر_Ø®_ج_س".split("_"),
  3302.             longDateFormat: {
  3303.                 LT: "HH:mm",
  3304.                 LTS: "HH:mm:ss",
  3305.                 L: "DD/MM/YYYY",
  3306.                 LL: "D MMMM YYYY",
  3307.                 LLL: "D MMMM YYYY HH:mm",
  3308.                 LLLL: "dddd D MMMM YYYY HH:mm"
  3309.             },
  3310.             calendar: {
  3311.                 sameDay: "[اليوم على الساعة] LT",
  3312.                 nextDay: "[غدا على الساعة] LT",
  3313.                 nextWeek: "dddd [على الساعة] LT",
  3314.                 lastDay: "[أمس على الساعة] LT",
  3315.                 lastWeek: "dddd [على الساعة] LT",
  3316.                 sameElse: "L"
  3317.             },
  3318.             relativeTime: {
  3319.                 future: "في %s",
  3320.                 past: "منذ %s",
  3321.                 s: "ثوان",
  3322.                 m: "دقيقة",
  3323.                 mm: "%d دقائق",
  3324.                 h: "ساعة",
  3325.                 hh: "%d ساعات",
  3326.                 d: "يوم",
  3327.                 dd: "%d أيام",
  3328.                 M: "شهر",
  3329.                 MM: "%d أشهر",
  3330.                 y: "سنة",
  3331.                 yy: "%d سنوات"
  3332.             },
  3333.             week: {
  3334.                 dow: 1,
  3335.                 doy: 4
  3336.             }
  3337.         }), {
  3338.             1: "Ù¡",
  3339.             2: "Ù¢",
  3340.             3: "Ù£",
  3341.             4: "Ù¤",
  3342.             5: "Ù¥",
  3343.             6: "Ù¦",
  3344.             7: "Ù§",
  3345.             8: "Ù¨",
  3346.             9: "Ù©",
  3347.             0: "Ù "
  3348.         }),
  3349.         ja = {
  3350.             "Ù¡": "1",
  3351.             "Ù¢": "2",
  3352.             "Ù£": "3",
  3353.             "Ù¤": "4",
  3354.             "Ù¥": "5",
  3355.             "Ù¦": "6",
  3356.             "Ù§": "7",
  3357.             "Ù¨": "8",
  3358.             "Ù©": "9",
  3359.             "Ù ": "0"
  3360.         },
  3361.         ka = function(a) {
  3362.             return 0 === a ? 0 : 1 === a ? 1 : 2 === a ? 2 : a % 100 >= 3 && 10 >= a % 100 ? 3 : a % 100 >= 11 ? 4 : 5
  3363.         },
  3364.         la = {
  3365.             s: ["أقل من ثانية", "ثانية واحدة", ["ثانيتان", "ثانيتين"], "%d ثوان", "%d ثانية", "%d ثانية"],
  3366.             m: ["أقل من دقيقة", "دقيقة واحدة", ["دقيقتان", "دقيقتين"], "%d دقائق", "%d دقيقة", "%d دقيقة"],
  3367.             h: ["أقل من ساعة", "ساعة واحدة", ["ساعتان", "ساعتين"], "%d ساعات", "%d ساعة", "%d ساعة"],
  3368.             d: ["أقل من يوم", "يوم واحد", ["يومان", "يومين"], "%d أيام", "%d يومًا", "%d يوم"],
  3369.             M: ["أقل من شهر", "شهر واحد", ["شهران", "شهرين"], "%d أشهر", "%d شهرا", "%d شهر"],
  3370.             y: ["أقل من عام", "عام واحد", ["عامان", "عامين"], "%d أعوام", "%d عامًا", "%d عام"]
  3371.         },
  3372.         ma = function(a) {
  3373.             return function(b, c, d, e) {
  3374.                 var f = ka(b),
  3375.                     g = la[a][ka(b)];
  3376.                 return 2 === f && (g = g[c ? 0 : 1]), g.replace(/%d/i, b)
  3377.             }
  3378.         },
  3379.         na = ["كانون الثاني يناير", "شباط فبراير", "آذار مارس", "نيسان أبريل", "أيار مايو", "حزيران يونيو", "تموز يوليو", "آب أغسطس", "أيلول سبتمبر", "تشرين الأول أكتوبر", "تشرين الثاني نوفمبر", "كانون الأول ديسمبر"],
  3380.         oa = (a.defineLocale("ar", {
  3381.             months: na,
  3382.             monthsShort: na,
  3383.             weekdays: "الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),
  3384.             weekdaysShort: "أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),
  3385.             weekdaysMin: "Ø­_Ù†_Ø«_ر_Ø®_ج_س".split("_"),
  3386.             longDateFormat: {
  3387.                 LT: "HH:mm",
  3388.                 LTS: "HH:mm:ss",
  3389.                 L: "D/‏M/‏YYYY",
  3390.                 LL: "D MMMM YYYY",
  3391.                 LLL: "D MMMM YYYY HH:mm",
  3392.                 LLLL: "dddd D MMMM YYYY HH:mm"
  3393.             },
  3394.             meridiemParse: /ص|Ù…/,
  3395.             isPM: function(a) {
  3396.                 return "Ù…" === a
  3397.             },
  3398.             meridiem: function(a, b, c) {
  3399.                 return 12 > a ? "ص" : "Ù…"
  3400.             },
  3401.             calendar: {
  3402.                 sameDay: "[اليوم عند الساعة] LT",
  3403.                 nextDay: "[غدًا عند الساعة] LT",
  3404.                 nextWeek: "dddd [عند الساعة] LT",
  3405.                 lastDay: "[أمس عند الساعة] LT",
  3406.                 lastWeek: "dddd [عند الساعة] LT",
  3407.                 sameElse: "L"
  3408.             },
  3409.             relativeTime: {
  3410.                 future: "بعد %s",
  3411.                 past: "منذ %s",
  3412.                 s: ma("s"),
  3413.                 m: ma("m"),
  3414.                 mm: ma("m"),
  3415.                 h: ma("h"),
  3416.                 hh: ma("h"),
  3417.                 d: ma("d"),
  3418.                 dd: ma("d"),
  3419.                 M: ma("M"),
  3420.                 MM: ma("M"),
  3421.                 y: ma("y"),
  3422.                 yy: ma("y")
  3423.             },
  3424.             preparse: function(a) {
  3425.                 return a.replace(/\u200f/g, "").replace(/[١٢٣٤٥٦٧٨٩٠]/g, function(a) {
  3426.                     return ja[a]
  3427.                 }).replace(/ØŒ/g, ",")
  3428.             },
  3429.             postformat: function(a) {
  3430.                 return a.replace(/\d/g, function(a) {
  3431.                     return ia[a]
  3432.                 }).replace(/,/g, "ØŒ")
  3433.             },
  3434.             week: {
  3435.                 dow: 6,
  3436.                 doy: 12
  3437.             }
  3438.         }), {
  3439.             1: "-inci",
  3440.             5: "-inci",
  3441.             8: "-inci",
  3442.             70: "-inci",
  3443.             80: "-inci",
  3444.             2: "-nci",
  3445.             7: "-nci",
  3446.             20: "-nci",
  3447.             50: "-nci",
  3448.             3: "-üncü",
  3449.             4: "-üncü",
  3450.             100: "-üncü",
  3451.             6: "-ncı",
  3452.             9: "-uncu",
  3453.             10: "-uncu",
  3454.             30: "-uncu",
  3455.             60: "-ıncı",
  3456.             90: "-ıncı"
  3457.         }),
  3458.         pa = (a.defineLocale("az", {
  3459.             months: "yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),
  3460.             monthsShort: "yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),
  3461.             weekdays: "Bazar_Bazar ertÉ™si_ÇərÅŸÉ™nbÉ™ axÅŸamı_ÇərÅŸÉ™nbÉ™_CümÉ™ axÅŸamı_CümÉ™_ŞənbÉ™".split("_"),
  3462.             weekdaysShort: "Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),
  3463.             weekdaysMin: "Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),
  3464.             longDateFormat: {
  3465.                 LT: "HH:mm",
  3466.                 LTS: "HH:mm:ss",
  3467.                 L: "DD.MM.YYYY",
  3468.                 LL: "D MMMM YYYY",
  3469.                 LLL: "D MMMM YYYY HH:mm",
  3470.                 LLLL: "dddd, D MMMM YYYY HH:mm"
  3471.             },
  3472.             calendar: {
  3473.                 sameDay: "[bugün saat] LT",
  3474.                 nextDay: "[sabah saat] LT",
  3475.                 nextWeek: "[gÉ™lÉ™n hÉ™ftÉ™] dddd [saat] LT",
  3476.                 lastDay: "[dünÉ™n] LT",
  3477.                 lastWeek: "[keçən hÉ™ftÉ™] dddd [saat] LT",
  3478.                 sameElse: "L"
  3479.             },
  3480.             relativeTime: {
  3481.                 future: "%s sonra",
  3482.                 past: "%s É™vvÉ™l",
  3483.                 s: "birneçə saniyyÉ™",
  3484.                 m: "bir dÉ™qiqÉ™",
  3485.                 mm: "%d dÉ™qiqÉ™",
  3486.                 h: "bir saat",
  3487.                 hh: "%d saat",
  3488.                 d: "bir gün",
  3489.                 dd: "%d gün",
  3490.                 M: "bir ay",
  3491.                 MM: "%d ay",
  3492.                 y: "bir il",
  3493.                 yy: "%d il"
  3494.             },
  3495.             meridiemParse: /gecÉ™|sÉ™hÉ™r|gündüz|axÅŸam/,
  3496.             isPM: function(a) {
  3497.                 return /^(gündüz|axÅŸam)$/.test(a)
  3498.             },
  3499.             meridiem: function(a, b, c) {
  3500.                 return 4 > a ? "gecÉ™" : 12 > a ? "sÉ™hÉ™r" : 17 > a ? "gündüz" : "axÅŸam"
  3501.             },
  3502.             ordinalParse: /\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,
  3503.             ordinal: function(a) {
  3504.                 if (0 === a) return a + "-ıncı";
  3505.                 var b = a % 10,
  3506.                     c = a % 100 - b,
  3507.                     d = a >= 100 ? 100 : null;
  3508.                 return a + (oa[b] || oa[c] || oa[d])
  3509.             },
  3510.             week: {
  3511.                 dow: 1,
  3512.                 doy: 7
  3513.             }
  3514.         }), a.defineLocale("be", {
  3515.             months: d,
  3516.             monthsShort: "студ_лют_сак_крас_трав_чэрв_ліп_жнів_вер_каст_ліст_снеж".split("_"),
  3517.             weekdays: e,
  3518.             weekdaysShort: "нд_пн_ат_ср_чц_пт_сб".split("_"),
  3519.             weekdaysMin: "нд_пн_ат_ср_чц_пт_сб".split("_"),
  3520.             longDateFormat: {
  3521.                 LT: "HH:mm",
  3522.                 LTS: "HH:mm:ss",
  3523.                 L: "DD.MM.YYYY",
  3524.                 LL: "D MMMM YYYY г.",
  3525.                 LLL: "D MMMM YYYY г., HH:mm",
  3526.                 LLLL: "dddd, D MMMM YYYY г., HH:mm"
  3527.             },
  3528.             calendar: {
  3529.                 sameDay: "[Сёння Ñž] LT",
  3530.                 nextDay: "[Заўтра Ñž] LT",
  3531.                 lastDay: "[Учора Ñž] LT",
  3532.                 nextWeek: function() {
  3533.                     return "[У] dddd [Ñž] LT"
  3534.                 },
  3535.                 lastWeek: function() {
  3536.                     switch (this.day()) {
  3537.                         case 0:
  3538.                         case 3:
  3539.                         case 5:
  3540.                         case 6:
  3541.                             return "[У мінулую] dddd [Ñž] LT";
  3542.                         case 1:
  3543.                         case 2:
  3544.                         case 4:
  3545.                             return "[У мінулы] dddd [Ñž] LT"
  3546.                     }
  3547.                 },
  3548.                 sameElse: "L"
  3549.             },
  3550.             relativeTime: {
  3551.                 future: "праз %s",
  3552.                 past: "%s таму",
  3553.                 s: "некалькі секунд",
  3554.                 m: c,
  3555.                 mm: c,
  3556.                 h: c,
  3557.                 hh: c,
  3558.                 d: "дзень",
  3559.                 dd: c,
  3560.                 M: "месяц",
  3561.                 MM: c,
  3562.                 y: "год",
  3563.                 yy: c
  3564.             },
  3565.             meridiemParse: /ночы|раніцы|дня|вечара/,
  3566.             isPM: function(a) {
  3567.                 return /^(дня|вечара)$/.test(a)
  3568.             },
  3569.             meridiem: function(a, b, c) {
  3570.                 return 4 > a ? "ночы" : 12 > a ? "раніцы" : 17 > a ? "дня" : "вечара";
  3571.             },
  3572.             ordinalParse: /\d{1,2}-(Ñ–|Ñ‹|га)/,
  3573.             ordinal: function(a, b) {
  3574.                 switch (b) {
  3575.                     case "M":
  3576.                     case "d":
  3577.                     case "DDD":
  3578.                     case "w":
  3579.                     case "W":
  3580.                         return a % 10 !== 2 && a % 10 !== 3 || a % 100 === 12 || a % 100 === 13 ? a + "-Ñ‹" : a + "-Ñ–";
  3581.                     case "D":
  3582.                         return a + "-га";
  3583.                     default:
  3584.                         return a
  3585.                 }
  3586.             },
  3587.             week: {
  3588.                 dow: 1,
  3589.                 doy: 7
  3590.             }
  3591.         }), a.defineLocale("bg", {
  3592.             months: "януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),
  3593.             monthsShort: "янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),
  3594.             weekdays: "неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),
  3595.             weekdaysShort: "нед_пон_вто_сря_чет_пет_съб".split("_"),
  3596.             weekdaysMin: "нд_пн_вт_ср_чт_пт_сб".split("_"),
  3597.             longDateFormat: {
  3598.                 LT: "H:mm",
  3599.                 LTS: "H:mm:ss",
  3600.                 L: "D.MM.YYYY",
  3601.                 LL: "D MMMM YYYY",
  3602.                 LLL: "D MMMM YYYY H:mm",
  3603.                 LLLL: "dddd, D MMMM YYYY H:mm"
  3604.             },
  3605.             calendar: {
  3606.                 sameDay: "[Днес в] LT",
  3607.                 nextDay: "[Утре в] LT",
  3608.                 nextWeek: "dddd [в] LT",
  3609.                 lastDay: "[Вчера в] LT",
  3610.                 lastWeek: function() {
  3611.                     switch (this.day()) {
  3612.                         case 0:
  3613.                         case 3:
  3614.                         case 6:
  3615.                             return "[Ð’ изминалата] dddd [в] LT";
  3616.                         case 1:
  3617.                         case 2:
  3618.                         case 4:
  3619.                         case 5:
  3620.                             return "[Ð’ изминалия] dddd [в] LT"
  3621.                     }
  3622.                 },
  3623.                 sameElse: "L"
  3624.             },
  3625.             relativeTime: {
  3626.                 future: "след %s",
  3627.                 past: "преди %s",
  3628.                 s: "няколко секунди",
  3629.                 m: "минута",
  3630.                 mm: "%d минути",
  3631.                 h: "час",
  3632.                 hh: "%d часа",
  3633.                 d: "ден",
  3634.                 dd: "%d дни",
  3635.                 M: "месец",
  3636.                 MM: "%d месеца",
  3637.                 y: "година",
  3638.                 yy: "%d години"
  3639.             },
  3640.             ordinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
  3641.             ordinal: function(a) {
  3642.                 var b = a % 10,
  3643.                     c = a % 100;
  3644.                 return 0 === a ? a + "-ев" : 0 === c ? a + "-ен" : c > 10 && 20 > c ? a + "-ти" : 1 === b ? a + "-ви" : 2 === b ? a + "-ри" : 7 === b || 8 === b ? a + "-ми" : a + "-ти"
  3645.             },
  3646.             week: {
  3647.                 dow: 1,
  3648.                 doy: 7
  3649.             }
  3650.         }), {
  3651.             1: "১",
  3652.             2: "২",
  3653.             3: "৩",
  3654.             4: "৪",
  3655.             5: "৫",
  3656.             6: "৬",
  3657.             7: "৭",
  3658.             8: "৮",
  3659.             9: "৯",
  3660.             0: "০"
  3661.         }),
  3662.         qa = {
  3663.             "১": "1",
  3664.             "২": "2",
  3665.             "৩": "3",
  3666.             "৪": "4",
  3667.             "৫": "5",
  3668.             "৬": "6",
  3669.             "৭": "7",
  3670.             "৮": "8",
  3671.             "৯": "9",
  3672.             "০": "0"
  3673.         },
  3674.         ra = (a.defineLocale("bn", {
  3675.             months: "জানুয়ারী_ফেবুয়ারী_মার্চ_এপ্রিল_মে_জুন_জুলাই_অগাস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর".split("_"),
  3676.             monthsShort: "জানু_ফেব_মার্চ_এপর_মে_জুন_জুল_অগ_সেপ্ট_অক্টো_নভ_ডিসেম্".split("_"),
  3677.             weekdays: "রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পত্তিবার_শুক্রুবার_শনিবার".split("_"),
  3678.             weekdaysShort: "রবি_সোম_মঙ্গল_বুধ_বৃহস্পত্তি_শুক্রু_শনি".split("_"),
  3679.             weekdaysMin: "রব_সম_মঙ্গ_বু_ব্রিহ_শু_শনি".split("_"),
  3680.             longDateFormat: {
  3681.                 LT: "A h:mm সময়",
  3682.                 LTS: "A h:mm:ss সময়",
  3683.                 L: "DD/MM/YYYY",
  3684.                 LL: "D MMMM YYYY",
  3685.                 LLL: "D MMMM YYYY, A h:mm সময়",
  3686.                 LLLL: "dddd, D MMMM YYYY, A h:mm সময়"
  3687.             },
  3688.             calendar: {
  3689.                 sameDay: "[আজ] LT",
  3690.                 nextDay: "[আগামীকাল] LT",
  3691.                 nextWeek: "dddd, LT",
  3692.                 lastDay: "[গতকাল] LT",
  3693.                 lastWeek: "[গত] dddd, LT",
  3694.                 sameElse: "L"
  3695.             },
  3696.             relativeTime: {
  3697.                 future: "%s পরে",
  3698.                 past: "%s আগে",
  3699.                 s: "কএক সেকেন্ড",
  3700.                 m: "এক মিনিট",
  3701.                 mm: "%d মিনিট",
  3702.                 h: "এক ঘন্টা",
  3703.                 hh: "%d ঘন্টা",
  3704.                 d: "এক দিন",
  3705.                 dd: "%d দিন",
  3706.                 M: "এক মাস",
  3707.                 MM: "%d মাস",
  3708.                 y: "এক বছর",
  3709.                 yy: "%d বছর"
  3710.             },
  3711.             preparse: function(a) {
  3712.                 return a.replace(/[১২৩৪৫৬৭৮৯০]/g, function(a) {
  3713.                     return qa[a]
  3714.                 })
  3715.             },
  3716.             postformat: function(a) {
  3717.                 return a.replace(/\d/g, function(a) {
  3718.                     return pa[a]
  3719.                 })
  3720.             },
  3721.             meridiemParse: /রাত|সকাল|দুপুর|বিকেল|রাত/,
  3722.             isPM: function(a) {
  3723.                 return /^(দুপুর|বিকেল|রাত)$/.test(a)
  3724.             },
  3725.             meridiem: function(a, b, c) {
  3726.                 return 4 > a ? "রাত" : 10 > a ? "সকাল" : 17 > a ? "দুপুর" : 20 > a ? "বিকেল" : "রাত"
  3727.             },
  3728.             week: {
  3729.                 dow: 0,
  3730.                 doy: 6
  3731.             }
  3732.         }), {
  3733.             1: "༡",
  3734.             2: "༢",
  3735.             3: "༣",
  3736.             4: "༤",
  3737.             5: "༥",
  3738.             6: "༦",
  3739.             7: "༧",
  3740.             8: "༨",
  3741.             9: "༩",
  3742.             0: "༠"
  3743.         }),
  3744.         sa = {
  3745.             "༡": "1",
  3746.             "༢": "2",
  3747.             "༣": "3",
  3748.             "༤": "4",
  3749.             "༥": "5",
  3750.             "༦": "6",
  3751.             "༧": "7",
  3752.             "༨": "8",
  3753.             "༩": "9",
  3754.             "༠": "0"
  3755.         },
  3756.         ta = (a.defineLocale("bo", {
  3757.             months: "ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),
  3758.             monthsShort: "ཟླ་བ་དང་པོ_ཟླ་བ་གཉིས་པ_ཟླ་བ་གསུམ་པ_ཟླ་བ་བཞི་པ_ཟླ་བ་ལྔ་པ_ཟླ་བ་དྲུག་པ_ཟླ་བ་བདུན་པ_ཟླ་བ་བརྒྱད་པ_ཟླ་བ་དགུ་པ_ཟླ་བ་བཅུ་པ_ཟླ་བ་བཅུ་གཅིག་པ_ཟླ་བ་བཅུ་གཉིས་པ".split("_"),
  3759.             weekdays: "གཟའ་ཉི་མ་_གཟའ་ཟླ་བ་_གཟའ་མིག་དམར་_གཟའ་ལྷག་པ་_གཟའ་ཕུར་བུ_གཟའ་པ་སངས་_གཟའ་སྤེན་པ་".split("_"),
  3760.             weekdaysShort: "ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),
  3761.             weekdaysMin: "ཉི་མ་_ཟླ་བ་_མིག་དམར་_ལྷག་པ་_ཕུར་བུ_པ་སངས་_སྤེན་པ་".split("_"),
  3762.             longDateFormat: {
  3763.                 LT: "A h:mm",
  3764.                 LTS: "A h:mm:ss",
  3765.                 L: "DD/MM/YYYY",
  3766.                 LL: "D MMMM YYYY",
  3767.                 LLL: "D MMMM YYYY, A h:mm",
  3768.                 LLLL: "dddd, D MMMM YYYY, A h:mm"
  3769.             },
  3770.             calendar: {
  3771.                 sameDay: "[དི་རིང] LT",
  3772.                 nextDay: "[སང་ཉིན] LT",
  3773.                 nextWeek: "[བདུན་ཕྲག་རྗེས་མ], LT",
  3774.                 lastDay: "[ཁ་སང] LT",
  3775.                 lastWeek: "[བདུན་ཕྲག་མཐའ་མ] dddd, LT",
  3776.                 sameElse: "L"
  3777.             },
  3778.             relativeTime: {
  3779.                 future: "%s ལ་",
  3780.                 past: "%s སྔན་ལ",
  3781.                 s: "ལམ་སང",
  3782.                 m: "སྐར་མ་གཅིག",
  3783.                 mm: "%d སྐར་མ",
  3784.                 h: "ཆུ་ཚོད་གཅིག",
  3785.                 hh: "%d ཆུ་ཚོད",
  3786.                 d: "ཉིན་གཅིག",
  3787.                 dd: "%d ཉིན་",
  3788.                 M: "ཟླ་བ་གཅིག",
  3789.                 MM: "%d ཟླ་བ",
  3790.                 y: "ལོ་གཅིག",
  3791.                 yy: "%d ལོ"
  3792.             },
  3793.             preparse: function(a) {
  3794.                 return a.replace(/[༡༢༣༤༥༦༧༨༩༠]/g, function(a) {
  3795.                     return sa[a]
  3796.                 })
  3797.             },
  3798.             postformat: function(a) {
  3799.                 return a.replace(/\d/g, function(a) {
  3800.                     return ra[a]
  3801.                 })
  3802.             },
  3803.             meridiemParse: /མཚན་མོ|ཞོགས་ཀས|ཉིན་གུང|དགོང་དག|མཚན་མོ/,
  3804.             isPM: function(a) {
  3805.                 return /^(ཉིན་གུང|དགོང་དག|མཚན་མོ)$/.test(a)
  3806.             },
  3807.             meridiem: function(a, b, c) {
  3808.                 return 4 > a ? "མཚན་མོ" : 10 > a ? "ཞོགས་ཀས" : 17 > a ? "ཉིན་གུང" : 20 > a ? "དགོང་དག" : "མཚན་མོ"
  3809.             },
  3810.             week: {
  3811.                 dow: 0,
  3812.                 doy: 6
  3813.             }
  3814.         }), a.defineLocale("br", {
  3815.             months: "Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),
  3816.             monthsShort: "Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),
  3817.             weekdays: "Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),
  3818.             weekdaysShort: "Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),
  3819.             weekdaysMin: "Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),
  3820.             longDateFormat: {
  3821.                 LT: "h[e]mm A",
  3822.                 LTS: "h[e]mm:ss A",
  3823.                 L: "DD/MM/YYYY",
  3824.                 LL: "D [a viz] MMMM YYYY",
  3825.                 LLL: "D [a viz] MMMM YYYY h[e]mm A",
  3826.                 LLLL: "dddd, D [a viz] MMMM YYYY h[e]mm A"
  3827.             },
  3828.             calendar: {
  3829.                 sameDay: "[Hiziv da] LT",
  3830.                 nextDay: "[Warc'hoazh da] LT",
  3831.                 nextWeek: "dddd [da] LT",
  3832.                 lastDay: "[Dec'h da] LT",
  3833.                 lastWeek: "dddd [paset da] LT",
  3834.                 sameElse: "L"
  3835.             },
  3836.             relativeTime: {
  3837.                 future: "a-benn %s",
  3838.                 past: "%s 'zo",
  3839.                 s: "un nebeud segondennoù",
  3840.                 m: "ur vunutenn",
  3841.                 mm: f,
  3842.                 h: "un eur",
  3843.                 hh: "%d eur",
  3844.                 d: "un devezh",
  3845.                 dd: f,
  3846.                 M: "ur miz",
  3847.                 MM: f,
  3848.                 y: "ur bloaz",
  3849.                 yy: g
  3850.             },
  3851.             ordinalParse: /\d{1,2}(añ|vet)/,
  3852.             ordinal: function(a) {
  3853.                 var b = 1 === a ? "añ" : "vet";
  3854.                 return a + b
  3855.             },
  3856.             week: {
  3857.                 dow: 1,
  3858.                 doy: 4
  3859.             }
  3860.         }), a.defineLocale("bs", {
  3861.             months: "januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar".split("_"),
  3862.             monthsShort: "jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.".split("_"),
  3863.             weekdays: "nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),
  3864.             weekdaysShort: "ned._pon._uto._sri._čet._pet._sub.".split("_"),
  3865.             weekdaysMin: "ne_po_ut_sr_če_pe_su".split("_"),
  3866.             longDateFormat: {
  3867.                 LT: "H:mm",
  3868.                 LTS: "H:mm:ss",
  3869.                 L: "DD. MM. YYYY",
  3870.                 LL: "D. MMMM YYYY",
  3871.                 LLL: "D. MMMM YYYY H:mm",
  3872.                 LLLL: "dddd, D. MMMM YYYY H:mm"
  3873.             },
  3874.             calendar: {
  3875.                 sameDay: "[danas u] LT",
  3876.                 nextDay: "[sutra u] LT",
  3877.                 nextWeek: function() {
  3878.                     switch (this.day()) {
  3879.                         case 0:
  3880.                             return "[u] [nedjelju] [u] LT";
  3881.                         case 3:
  3882.                             return "[u] [srijedu] [u] LT";
  3883.                         case 6:
  3884.                             return "[u] [subotu] [u] LT";
  3885.                         case 1:
  3886.                         case 2:
  3887.                         case 4:
  3888.                         case 5:
  3889.                             return "[u] dddd [u] LT"
  3890.                     }
  3891.                 },
  3892.                 lastDay: "[jučer u] LT",
  3893.                 lastWeek: function() {
  3894.                     switch (this.day()) {
  3895.                         case 0:
  3896.                         case 3:
  3897.                             return "[proÅ¡lu] dddd [u] LT";
  3898.                         case 6:
  3899.                             return "[proÅ¡le] [subote] [u] LT";
  3900.                         case 1:
  3901.                         case 2:
  3902.                         case 4:
  3903.                         case 5:
  3904.                             return "[proÅ¡li] dddd [u] LT"
  3905.                     }
  3906.                 },
  3907.                 sameElse: "L"
  3908.             },
  3909.             relativeTime: {
  3910.                 future: "za %s",
  3911.                 past: "prije %s",
  3912.                 s: "par sekundi",
  3913.                 m: k,
  3914.                 mm: k,
  3915.                 h: k,
  3916.                 hh: k,
  3917.                 d: "dan",
  3918.                 dd: k,
  3919.                 M: "mjesec",
  3920.                 MM: k,
  3921.                 y: "godinu",
  3922.                 yy: k
  3923.             },
  3924.             ordinalParse: /\d{1,2}\./,
  3925.             ordinal: "%d.",
  3926.             week: {
  3927.                 dow: 1,
  3928.                 doy: 7
  3929.             }
  3930.         }), a.defineLocale("ca", {
  3931.             months: "gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),
  3932.             monthsShort: "gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.".split("_"),
  3933.             weekdays: "diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),
  3934.             weekdaysShort: "dg._dl._dt._dc._dj._dv._ds.".split("_"),
  3935.             weekdaysMin: "Dg_Dl_Dt_Dc_Dj_Dv_Ds".split("_"),
  3936.             longDateFormat: {
  3937.                 LT: "H:mm",
  3938.                 LTS: "LT:ss",
  3939.                 L: "DD/MM/YYYY",
  3940.                 LL: "D MMMM YYYY",
  3941.                 LLL: "D MMMM YYYY H:mm",
  3942.                 LLLL: "dddd D MMMM YYYY H:mm"
  3943.             },
  3944.             calendar: {
  3945.                 sameDay: function() {
  3946.                     return "[avui a " + (1 !== this.hours() ? "les" : "la") + "] LT"
  3947.                 },
  3948.                 nextDay: function() {
  3949.                     return "[demà  a " + (1 !== this.hours() ? "les" : "la") + "] LT"
  3950.                 },
  3951.                 nextWeek: function() {
  3952.                     return "dddd [a " + (1 !== this.hours() ? "les" : "la") + "] LT"
  3953.                 },
  3954.                 lastDay: function() {
  3955.                     return "[ahir a " + (1 !== this.hours() ? "les" : "la") + "] LT"
  3956.                 },
  3957.                 lastWeek: function() {
  3958.                     return "[el] dddd [passat a " + (1 !== this.hours() ? "les" : "la") + "] LT"
  3959.                 },
  3960.                 sameElse: "L"
  3961.             },
  3962.             relativeTime: {
  3963.                 future: "en %s",
  3964.                 past: "fa %s",
  3965.                 s: "uns segons",
  3966.                 m: "un minut",
  3967.                 mm: "%d minuts",
  3968.                 h: "una hora",
  3969.                 hh: "%d hores",
  3970.                 d: "un dia",
  3971.                 dd: "%d dies",
  3972.                 M: "un mes",
  3973.                 MM: "%d mesos",
  3974.                 y: "un any",
  3975.                 yy: "%d anys"
  3976.             },
  3977.             ordinalParse: /\d{1,2}(r|n|t|è|a)/,
  3978.             ordinal: function(a, b) {
  3979.                 var c = 1 === a ? "r" : 2 === a ? "n" : 3 === a ? "r" : 4 === a ? "t" : "è";
  3980.                 return ("w" === b || "W" === b) && (c = "a"), a + c
  3981.             },
  3982.             week: {
  3983.                 dow: 1,
  3984.                 doy: 4
  3985.             }
  3986.         }), "leden_únor_bÅ™ezen_duben_kvÄ›ten_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_")),
  3987.         ua = "led_úno_bÅ™e_dub_kvÄ›_čvn_čvc_srp_zář_říj_lis_pro".split("_"),
  3988.         va = (a.defineLocale("cs", {
  3989.             months: ta,
  3990.             monthsShort: ua,
  3991.             monthsParse: function(a, b) {
  3992.                 var c, d = [];
  3993.                 for (c = 0; 12 > c; c++) d[c] = new RegExp("^" + a[c] + "$|^" + b[c] + "$", "i");
  3994.                 return d
  3995.             }(ta, ua),
  3996.             weekdays: "nedÄ›le_pondÄ›lí_úterý_stÅ™eda_čtvrtek_pátek_sobota".split("_"),
  3997.             weekdaysShort: "ne_po_út_st_čt_pá_so".split("_"),
  3998.             weekdaysMin: "ne_po_út_st_čt_pá_so".split("_"),
  3999.             longDateFormat: {
  4000.                 LT: "H:mm",
  4001.                 LTS: "H:mm:ss",
  4002.                 L: "DD.MM.YYYY",
  4003.                 LL: "D. MMMM YYYY",
  4004.                 LLL: "D. MMMM YYYY H:mm",
  4005.                 LLLL: "dddd D. MMMM YYYY H:mm"
  4006.             },
  4007.             calendar: {
  4008.                 sameDay: "[dnes v] LT",
  4009.                 nextDay: "[zítra v] LT",
  4010.                 nextWeek: function() {
  4011.                     switch (this.day()) {
  4012.                         case 0:
  4013.                             return "[v nedÄ›li v] LT";
  4014.                         case 1:
  4015.                         case 2:
  4016.                             return "[v] dddd [v] LT";
  4017.                         case 3:
  4018.                             return "[ve stÅ™edu v] LT";
  4019.                         case 4:
  4020.                             return "[ve čtvrtek v] LT";
  4021.                         case 5:
  4022.                             return "[v pátek v] LT";
  4023.                         case 6:
  4024.                             return "[v sobotu v] LT"
  4025.                     }
  4026.                 },
  4027.                 lastDay: "[včera v] LT",
  4028.                 lastWeek: function() {
  4029.                     switch (this.day()) {
  4030.                         case 0:
  4031.                             return "[minulou nedÄ›li v] LT";
  4032.                         case 1:
  4033.                         case 2:
  4034.                             return "[minulé] dddd [v] LT";
  4035.                         case 3:
  4036.                             return "[minulou stÅ™edu v] LT";
  4037.                         case 4:
  4038.                         case 5:
  4039.                             return "[minulý] dddd [v] LT";
  4040.                         case 6:
  4041.                             return "[minulou sobotu v] LT"
  4042.                     }
  4043.                 },
  4044.                 sameElse: "L"
  4045.             },
  4046.             relativeTime: {
  4047.                 future: "za %s",
  4048.                 past: "pÅ™ed %s",
  4049.                 s: m,
  4050.                 m: m,
  4051.                 mm: m,
  4052.                 h: m,
  4053.                 hh: m,
  4054.                 d: m,
  4055.                 dd: m,
  4056.                 M: m,
  4057.                 MM: m,
  4058.                 y: m,
  4059.                 yy: m
  4060.             },
  4061.             ordinalParse: /\d{1,2}\./,
  4062.             ordinal: "%d.",
  4063.             week: {
  4064.                 dow: 1,
  4065.                 doy: 4
  4066.             }
  4067.         }), a.defineLocale("cv", {
  4068.             months: "кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_ҫурла_авӑн_юпа_чӳк_раштав".split("_"),
  4069.             monthsShort: "кӑр_нар_пуш_ака_май_Ò«Ó—Ñ€_утӑ_ҫур_авн_юпа_чӳк_раш".split("_"),
  4070.             weekdays: "вырсарникун_тунтикун_ытларикун_юнкун_кӗҫнерникун_эрнекун_шӑматкун".split("_"),
  4071.             weekdaysShort: "выр_тун_ытл_юн_кӗҫ_эрн_шӑм".split("_"),
  4072.             weekdaysMin: "вр_тн_Ñ‹Ñ‚_юн_кҫ_эр_шм".split("_"),
  4073.             longDateFormat: {
  4074.                 LT: "HH:mm",
  4075.                 LTS: "HH:mm:ss",
  4076.                 L: "DD-MM-YYYY",
  4077.                 LL: "YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ]",
  4078.                 LLL: "YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm",
  4079.                 LLLL: "dddd, YYYY [ҫулхи] MMMM [уйӑхӗн] D[-мӗшӗ], HH:mm"
  4080.             },
  4081.             calendar: {
  4082.                 sameDay: "[Паян] LT [сехетре]",
  4083.                 nextDay: "[Ыран] LT [сехетре]",
  4084.                 lastDay: "[Ӗнер] LT [сехетре]",
  4085.                 nextWeek: "[Ҫитес] dddd LT [сехетре]",
  4086.                 lastWeek: "[Иртнӗ] dddd LT [сехетре]",
  4087.                 sameElse: "L"
  4088.             },
  4089.             relativeTime: {
  4090.                 future: function(a) {
  4091.                     var b = /сехет$/i.exec(a) ? "рен" : /ҫул$/i.exec(a) ? "тан" : "ран";
  4092.                     return a + b
  4093.                 },
  4094.                 past: "%s каялла",
  4095.                 s: "пӗр-ик ҫеккунт",
  4096.                 m: "пӗр минут",
  4097.                 mm: "%d минут",
  4098.                 h: "пӗр сехет",
  4099.                 hh: "%d сехет",
  4100.                 d: "пӗр кун",
  4101.                 dd: "%d кун",
  4102.                 M: "пӗр уйӑх",
  4103.                 MM: "%d уйӑх",
  4104.                 y: "пӗр ҫул",
  4105.                 yy: "%d ҫул"
  4106.             },
  4107.             ordinalParse: /\d{1,2}-мӗш/,
  4108.             ordinal: "%d-мӗш",
  4109.             week: {
  4110.                 dow: 1,
  4111.                 doy: 7
  4112.             }
  4113.         }), a.defineLocale("cy", {
  4114.             months: "Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),
  4115.             monthsShort: "Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),
  4116.             weekdays: "Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),
  4117.             weekdaysShort: "Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),
  4118.             weekdaysMin: "Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),
  4119.             longDateFormat: {
  4120.                 LT: "HH:mm",
  4121.                 LTS: "HH:mm:ss",
  4122.                 L: "DD/MM/YYYY",
  4123.                 LL: "D MMMM YYYY",
  4124.                 LLL: "D MMMM YYYY HH:mm",
  4125.                 LLLL: "dddd, D MMMM YYYY HH:mm"
  4126.             },
  4127.             calendar: {
  4128.                 sameDay: "[Heddiw am] LT",
  4129.                 nextDay: "[Yfory am] LT",
  4130.                 nextWeek: "dddd [am] LT",
  4131.                 lastDay: "[Ddoe am] LT",
  4132.                 lastWeek: "dddd [diwethaf am] LT",
  4133.                 sameElse: "L"
  4134.             },
  4135.             relativeTime: {
  4136.                 future: "mewn %s",
  4137.                 past: "%s yn ôl",
  4138.                 s: "ychydig eiliadau",
  4139.                 m: "munud",
  4140.                 mm: "%d munud",
  4141.                 h: "awr",
  4142.                 hh: "%d awr",
  4143.                 d: "diwrnod",
  4144.                 dd: "%d diwrnod",
  4145.                 M: "mis",
  4146.                 MM: "%d mis",
  4147.                 y: "blwyddyn",
  4148.                 yy: "%d flynedd"
  4149.             },
  4150.             ordinalParse: /\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,
  4151.             ordinal: function(a) {
  4152.                 var b = a,
  4153.                     c = "",
  4154.                     d = ["", "af", "il", "ydd", "ydd", "ed", "ed", "ed", "fed", "fed", "fed", "eg", "fed", "eg", "eg", "fed", "eg", "eg", "fed", "eg", "fed"];
  4155.                 return b > 20 ? c = 40 === b || 50 === b || 60 === b || 80 === b || 100 === b ? "fed" : "ain" : b > 0 && (c = d[b]), a + c
  4156.             },
  4157.             week: {
  4158.                 dow: 1,
  4159.                 doy: 4
  4160.             }
  4161.         }), a.defineLocale("da", {
  4162.             months: "januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),
  4163.             monthsShort: "jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),
  4164.             weekdays: "søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),
  4165.             weekdaysShort: "søn_man_tir_ons_tor_fre_lør".split("_"),
  4166.             weekdaysMin: "sø_ma_ti_on_to_fr_lø".split("_"),
  4167.             longDateFormat: {
  4168.                 LT: "HH:mm",
  4169.                 LTS: "HH:mm:ss",
  4170.                 L: "DD/MM/YYYY",
  4171.                 LL: "D. MMMM YYYY",
  4172.                 LLL: "D. MMMM YYYY HH:mm",
  4173.                 LLLL: "dddd [d.] D. MMMM YYYY HH:mm"
  4174.             },
  4175.             calendar: {
  4176.                 sameDay: "[I dag kl.] LT",
  4177.                 nextDay: "[I morgen kl.] LT",
  4178.                 nextWeek: "dddd [kl.] LT",
  4179.                 lastDay: "[I gÃ¥r kl.] LT",
  4180.                 lastWeek: "[sidste] dddd [kl] LT",
  4181.                 sameElse: "L"
  4182.             },
  4183.             relativeTime: {
  4184.                 future: "om %s",
  4185.                 past: "%s siden",
  4186.                 s: "fÃ¥ sekunder",
  4187.                 m: "et minut",
  4188.                 mm: "%d minutter",
  4189.                 h: "en time",
  4190.                 hh: "%d timer",
  4191.                 d: "en dag",
  4192.                 dd: "%d dage",
  4193.                 M: "en mÃ¥ned",
  4194.                 MM: "%d mÃ¥neder",
  4195.                 y: "et Ã¥r",
  4196.                 yy: "%d Ã¥r"
  4197.             },
  4198.             ordinalParse: /\d{1,2}\./,
  4199.             ordinal: "%d.",
  4200.             week: {
  4201.                 dow: 1,
  4202.                 doy: 4
  4203.             }
  4204.         }), a.defineLocale("de-at", {
  4205.             months: "Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),
  4206.             monthsShort: "Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),
  4207.             weekdays: "Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),
  4208.             weekdaysShort: "So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),
  4209.             weekdaysMin: "So_Mo_Di_Mi_Do_Fr_Sa".split("_"),
  4210.             longDateFormat: {
  4211.                 LT: "HH:mm",
  4212.                 LTS: "HH:mm:ss",
  4213.                 L: "DD.MM.YYYY",
  4214.                 LL: "D. MMMM YYYY",
  4215.                 LLL: "D. MMMM YYYY HH:mm",
  4216.                 LLLL: "dddd, D. MMMM YYYY HH:mm"
  4217.             },
  4218.             calendar: {
  4219.                 sameDay: "[Heute um] LT [Uhr]",
  4220.                 sameElse: "L",
  4221.                 nextDay: "[Morgen um] LT [Uhr]",
  4222.                 nextWeek: "dddd [um] LT [Uhr]",
  4223.                 lastDay: "[Gestern um] LT [Uhr]",
  4224.                 lastWeek: "[letzten] dddd [um] LT [Uhr]"
  4225.             },
  4226.             relativeTime: {
  4227.                 future: "in %s",
  4228.                 past: "vor %s",
  4229.                 s: "ein paar Sekunden",
  4230.                 m: n,
  4231.                 mm: "%d Minuten",
  4232.                 h: n,
  4233.                 hh: "%d Stunden",
  4234.                 d: n,
  4235.                 dd: n,
  4236.                 M: n,
  4237.                 MM: n,
  4238.                 y: n,
  4239.                 yy: n
  4240.             },
  4241.             ordinalParse: /\d{1,2}\./,
  4242.             ordinal: "%d.",
  4243.             week: {
  4244.                 dow: 1,
  4245.                 doy: 4
  4246.             }
  4247.         }), a.defineLocale("de", {
  4248.             months: "Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),
  4249.             monthsShort: "Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),
  4250.             weekdays: "Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),
  4251.             weekdaysShort: "So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),
  4252.             weekdaysMin: "So_Mo_Di_Mi_Do_Fr_Sa".split("_"),
  4253.             longDateFormat: {
  4254.                 LT: "HH:mm",
  4255.                 LTS: "HH:mm:ss",
  4256.                 L: "DD.MM.YYYY",
  4257.                 LL: "D. MMMM YYYY",
  4258.                 LLL: "D. MMMM YYYY HH:mm",
  4259.                 LLLL: "dddd, D. MMMM YYYY HH:mm"
  4260.             },
  4261.             calendar: {
  4262.                 sameDay: "[Heute um] LT [Uhr]",
  4263.                 sameElse: "L",
  4264.                 nextDay: "[Morgen um] LT [Uhr]",
  4265.                 nextWeek: "dddd [um] LT [Uhr]",
  4266.                 lastDay: "[Gestern um] LT [Uhr]",
  4267.                 lastWeek: "[letzten] dddd [um] LT [Uhr]"
  4268.             },
  4269.             relativeTime: {
  4270.                 future: "in %s",
  4271.                 past: "vor %s",
  4272.                 s: "ein paar Sekunden",
  4273.                 m: o,
  4274.                 mm: "%d Minuten",
  4275.                 h: o,
  4276.                 hh: "%d Stunden",
  4277.                 d: o,
  4278.                 dd: o,
  4279.                 M: o,
  4280.                 MM: o,
  4281.                 y: o,
  4282.                 yy: o
  4283.             },
  4284.             ordinalParse: /\d{1,2}\./,
  4285.             ordinal: "%d.",
  4286.             week: {
  4287.                 dow: 1,
  4288.                 doy: 4
  4289.             }
  4290.         }), a.defineLocale("el", {
  4291.             monthsNominativeEl: "Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),
  4292.             monthsGenitiveEl: "Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),
  4293.             months: function(a, b) {
  4294.                 return /D/.test(b.substring(0, b.indexOf("MMMM"))) ? this._monthsGenitiveEl[a.month()] : this._monthsNominativeEl[a.month()]
  4295.             },
  4296.             monthsShort: "Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),
  4297.             weekdays: "Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),
  4298.             weekdaysShort: "Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),
  4299.             weekdaysMin: "Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),
  4300.             meridiem: function(a, b, c) {
  4301.                 return a > 11 ? c ? "μμ" : "ΜΜ" : c ? "πμ" : "Î Îœ"
  4302.             },
  4303.             isPM: function(a) {
  4304.                 return "μ" === (a + "").toLowerCase()[0]
  4305.             },
  4306.             meridiemParse: /[Î Îœ]\.?Îœ?\.?/i,
  4307.             longDateFormat: {
  4308.                 LT: "h:mm A",
  4309.                 LTS: "h:mm:ss A",
  4310.                 L: "DD/MM/YYYY",
  4311.                 LL: "D MMMM YYYY",
  4312.                 LLL: "D MMMM YYYY h:mm A",
  4313.                 LLLL: "dddd, D MMMM YYYY h:mm A"
  4314.             },
  4315.             calendarEl: {
  4316.                 sameDay: "[Σήμερα {}] LT",
  4317.                 nextDay: "[Αύριο {}] LT",
  4318.                 nextWeek: "dddd [{}] LT",
  4319.                 lastDay: "[Χθες {}] LT",
  4320.                 lastWeek: function() {
  4321.                     switch (this.day()) {
  4322.                         case 6:
  4323.                             return "[το προηγούμενο] dddd [{}] LT";
  4324.                         default:
  4325.                             return "[την προηγούμενη] dddd [{}] LT"
  4326.                     }
  4327.                 },
  4328.                 sameElse: "L"
  4329.             },
  4330.             calendar: function(a, b) {
  4331.                 var c = this._calendarEl[a],
  4332.                     d = b && b.hours();
  4333.                 return "function" == typeof c && (c = c.apply(b)), c.replace("{}", d % 12 === 1 ? "στη" : "στις")
  4334.             },
  4335.             relativeTime: {
  4336.                 future: "σε %s",
  4337.                 past: "%s πριν",
  4338.                 s: "λίγα δευτερόλεπτα",
  4339.                 m: "ένα λεπτό",
  4340.                 mm: "%d λεπτά",
  4341.                 h: "μία ώρα",
  4342.                 hh: "%d ώρες",
  4343.                 d: "μία μέρα",
  4344.                 dd: "%d μέρες",
  4345.                 M: "ένας μήνας",
  4346.                 MM: "%d μήνες",
  4347.                 y: "ένας χρόνος",
  4348.                 yy: "%d χρόνια"
  4349.             },
  4350.             ordinalParse: /\d{1,2}η/,
  4351.             ordinal: "%dη",
  4352.             week: {
  4353.                 dow: 1,
  4354.                 doy: 4
  4355.             }
  4356.         }), a.defineLocale("en-au", {
  4357.             months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
  4358.             monthsShort: "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),
  4359.             weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
  4360.             weekdaysShort: "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),
  4361.             weekdaysMin: "Su_Mo_Tu_We_Th_Fr_Sa".split("_"),
  4362.             longDateFormat: {
  4363.                 LT: "h:mm A",
  4364.                 LTS: "h:mm:ss A",
  4365.                 L: "DD/MM/YYYY",
  4366.                 LL: "D MMMM YYYY",
  4367.                 LLL: "D MMMM YYYY h:mm A",
  4368.                 LLLL: "dddd, D MMMM YYYY h:mm A"
  4369.             },
  4370.             calendar: {
  4371.                 sameDay: "[Today at] LT",
  4372.                 nextDay: "[Tomorrow at] LT",
  4373.                 nextWeek: "dddd [at] LT",
  4374.                 lastDay: "[Yesterday at] LT",
  4375.                 lastWeek: "[Last] dddd [at] LT",
  4376.                 sameElse: "L"
  4377.             },
  4378.             relativeTime: {
  4379.                 future: "in %s",
  4380.                 past: "%s ago",
  4381.                 s: "a few seconds",
  4382.                 m: "a minute",
  4383.                 mm: "%d minutes",
  4384.                 h: "an hour",
  4385.                 hh: "%d hours",
  4386.                 d: "a day",
  4387.                 dd: "%d days",
  4388.                 M: "a month",
  4389.                 MM: "%d months",
  4390.                 y: "a year",
  4391.                 yy: "%d years"
  4392.             },
  4393.             ordinalParse: /\d{1,2}(st|nd|rd|th)/,
  4394.             ordinal: function(a) {
  4395.                 var b = a % 10,
  4396.                     c = 1 === ~~(a % 100 / 10) ? "th" : 1 === b ? "st" : 2 === b ? "nd" : 3 === b ? "rd" : "th";
  4397.                 return a + c
  4398.             },
  4399.             week: {
  4400.                 dow: 1,
  4401.                 doy: 4
  4402.             }
  4403.         }), a.defineLocale("en-ca", {
  4404.             months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
  4405.             monthsShort: "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),
  4406.             weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
  4407.             weekdaysShort: "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),
  4408.             weekdaysMin: "Su_Mo_Tu_We_Th_Fr_Sa".split("_"),
  4409.             longDateFormat: {
  4410.                 LT: "h:mm A",
  4411.                 LTS: "h:mm:ss A",
  4412.                 L: "YYYY-MM-DD",
  4413.                 LL: "D MMMM, YYYY",
  4414.                 LLL: "D MMMM, YYYY h:mm A",
  4415.                 LLLL: "dddd, D MMMM, YYYY h:mm A"
  4416.             },
  4417.             calendar: {
  4418.                 sameDay: "[Today at] LT",
  4419.                 nextDay: "[Tomorrow at] LT",
  4420.                 nextWeek: "dddd [at] LT",
  4421.                 lastDay: "[Yesterday at] LT",
  4422.                 lastWeek: "[Last] dddd [at] LT",
  4423.                 sameElse: "L"
  4424.             },
  4425.             relativeTime: {
  4426.                 future: "in %s",
  4427.                 past: "%s ago",
  4428.                 s: "a few seconds",
  4429.                 m: "a minute",
  4430.                 mm: "%d minutes",
  4431.                 h: "an hour",
  4432.                 hh: "%d hours",
  4433.                 d: "a day",
  4434.                 dd: "%d days",
  4435.                 M: "a month",
  4436.                 MM: "%d months",
  4437.                 y: "a year",
  4438.                 yy: "%d years"
  4439.             },
  4440.             ordinalParse: /\d{1,2}(st|nd|rd|th)/,
  4441.             ordinal: function(a) {
  4442.                 var b = a % 10,
  4443.                     c = 1 === ~~(a % 100 / 10) ? "th" : 1 === b ? "st" : 2 === b ? "nd" : 3 === b ? "rd" : "th";
  4444.                 return a + c
  4445.             }
  4446.         }), a.defineLocale("en-gb", {
  4447.             months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
  4448.             monthsShort: "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),
  4449.             weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
  4450.             weekdaysShort: "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),
  4451.             weekdaysMin: "Su_Mo_Tu_We_Th_Fr_Sa".split("_"),
  4452.             longDateFormat: {
  4453.                 LT: "HH:mm",
  4454.                 LTS: "HH:mm:ss",
  4455.                 L: "DD/MM/YYYY",
  4456.                 LL: "D MMMM YYYY",
  4457.                 LLL: "D MMMM YYYY HH:mm",
  4458.                 LLLL: "dddd, D MMMM YYYY HH:mm"
  4459.             },
  4460.             calendar: {
  4461.                 sameDay: "[Today at] LT",
  4462.                 nextDay: "[Tomorrow at] LT",
  4463.                 nextWeek: "dddd [at] LT",
  4464.                 lastDay: "[Yesterday at] LT",
  4465.                 lastWeek: "[Last] dddd [at] LT",
  4466.                 sameElse: "L"
  4467.             },
  4468.             relativeTime: {
  4469.                 future: "in %s",
  4470.                 past: "%s ago",
  4471.                 s: "a few seconds",
  4472.                 m: "a minute",
  4473.                 mm: "%d minutes",
  4474.                 h: "an hour",
  4475.                 hh: "%d hours",
  4476.                 d: "a day",
  4477.                 dd: "%d days",
  4478.                 M: "a month",
  4479.                 MM: "%d months",
  4480.                 y: "a year",
  4481.                 yy: "%d years"
  4482.             },
  4483.             ordinalParse: /\d{1,2}(st|nd|rd|th)/,
  4484.             ordinal: function(a) {
  4485.                 var b = a % 10,
  4486.                     c = 1 === ~~(a % 100 / 10) ? "th" : 1 === b ? "st" : 2 === b ? "nd" : 3 === b ? "rd" : "th";
  4487.                 return a + c
  4488.             },
  4489.             week: {
  4490.                 dow: 1,
  4491.                 doy: 4
  4492.             }
  4493.         }), a.defineLocale("eo", {
  4494.             months: "januaro_februaro_marto_aprilo_majo_junio_julio_aÅ­gusto_septembro_oktobro_novembro_decembro".split("_"),
  4495.             monthsShort: "jan_feb_mar_apr_maj_jun_jul_aÅ­g_sep_okt_nov_dec".split("_"),
  4496.             weekdays: "Dimanĉo_Lundo_Mardo_Merkredo_Ä´aÅ­do_Vendredo_Sabato".split("_"),
  4497.             weekdaysShort: "Dim_Lun_Mard_Merk_Ä´aÅ­_Ven_Sab".split("_"),
  4498.             weekdaysMin: "Di_Lu_Ma_Me_Ä´a_Ve_Sa".split("_"),
  4499.             longDateFormat: {
  4500.                 LT: "HH:mm",
  4501.                 LTS: "HH:mm:ss",
  4502.                 L: "YYYY-MM-DD",
  4503.                 LL: "D[-an de] MMMM, YYYY",
  4504.                 LLL: "D[-an de] MMMM, YYYY HH:mm",
  4505.                 LLLL: "dddd, [la] D[-an de] MMMM, YYYY HH:mm"
  4506.             },
  4507.             meridiemParse: /[ap]\.t\.m/i,
  4508.             isPM: function(a) {
  4509.                 return "p" === a.charAt(0).toLowerCase()
  4510.             },
  4511.             meridiem: function(a, b, c) {
  4512.                 return a > 11 ? c ? "p.t.m." : "P.T.M." : c ? "a.t.m." : "A.T.M."
  4513.             },
  4514.             calendar: {
  4515.                 sameDay: "[HodiaÅ­ je] LT",
  4516.                 nextDay: "[MorgaÅ­ je] LT",
  4517.                 nextWeek: "dddd [je] LT",
  4518.                 lastDay: "[HieraÅ­ je] LT",
  4519.                 lastWeek: "[pasinta] dddd [je] LT",
  4520.                 sameElse: "L"
  4521.             },
  4522.             relativeTime: {
  4523.                 future: "je %s",
  4524.                 past: "antaÅ­ %s",
  4525.                 s: "sekundoj",
  4526.                 m: "minuto",
  4527.                 mm: "%d minutoj",
  4528.                 h: "horo",
  4529.                 hh: "%d horoj",
  4530.                 d: "tago",
  4531.                 dd: "%d tagoj",
  4532.                 M: "monato",
  4533.                 MM: "%d monatoj",
  4534.                 y: "jaro",
  4535.                 yy: "%d jaroj"
  4536.             },
  4537.             ordinalParse: /\d{1,2}a/,
  4538.             ordinal: "%da",
  4539.             week: {
  4540.                 dow: 1,
  4541.                 doy: 7
  4542.             }
  4543.         }), "Ene._Feb._Mar._Abr._May._Jun._Jul._Ago._Sep._Oct._Nov._Dic.".split("_")),
  4544.         wa = "Ene_Feb_Mar_Abr_May_Jun_Jul_Ago_Sep_Oct_Nov_Dic".split("_"),
  4545.         xa = (a.defineLocale("es", {
  4546.             months: "Enero_Febrero_Marzo_Abril_Mayo_Junio_Julio_Agosto_Septiembre_Octubre_Noviembre_Diciembre".split("_"),
  4547.             monthsShort: function(a, b) {
  4548.                 return /-MMM-/.test(b) ? wa[a.month()] : va[a.month()]
  4549.             },
  4550.             weekdays: "Domingo_Lunes_Martes_Miércoles_Jueves_Viernes_Sábado".split("_"),
  4551.             weekdaysShort: "Dom._Lun._Mar._Mié._Jue._Vie._Sáb.".split("_"),
  4552.             weekdaysMin: "Do_Lu_Ma_Mi_Ju_Vi_Sá".split("_"),
  4553.             longDateFormat: {
  4554.                 LT: "H:mm",
  4555.                 LTS: "H:mm:ss",
  4556.                 L: "DD/MM/YYYY",
  4557.                 LL: "D [de] MMMM [de] YYYY",
  4558.                 LLL: "D [de] MMMM [de] YYYY H:mm",
  4559.                 LLLL: "dddd, D [de] MMMM [de] YYYY H:mm"
  4560.             },
  4561.             calendar: {
  4562.                 sameDay: function() {
  4563.                     return "[hoy a la" + (1 !== this.hours() ? "s" : "") + "] LT"
  4564.                 },
  4565.                 nextDay: function() {
  4566.                     return "[mañana a la" + (1 !== this.hours() ? "s" : "") + "] LT"
  4567.                 },
  4568.                 nextWeek: function() {
  4569.                     return "dddd [a la" + (1 !== this.hours() ? "s" : "") + "] LT"
  4570.                 },
  4571.                 lastDay: function() {
  4572.                     return "[ayer a la" + (1 !== this.hours() ? "s" : "") + "] LT"
  4573.                 },
  4574.                 lastWeek: function() {
  4575.                     return "[el] dddd [pasado a la" + (1 !== this.hours() ? "s" : "") + "] LT"
  4576.                 },
  4577.                 sameElse: "L"
  4578.             },
  4579.             relativeTime: {
  4580.                 future: "en %s",
  4581.                 past: "hace %s",
  4582.                 s: "unos segundos",
  4583.                 m: "un minuto",
  4584.                 mm: "%d minutos",
  4585.                 h: "una hora",
  4586.                 hh: "%d horas",
  4587.                 d: "un día",
  4588.                 dd: "%d días",
  4589.                 M: "un mes",
  4590.                 MM: "%d meses",
  4591.                 y: "un año",
  4592.                 yy: "%d años"
  4593.             },
  4594.             ordinalParse: /\d{1,2}º/,
  4595.             ordinal: "%dº",
  4596.             week: {
  4597.                 dow: 1,
  4598.                 doy: 4
  4599.             }
  4600.         }), a.defineLocale("et", {
  4601.             months: "jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),
  4602.             monthsShort: "jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),
  4603.             weekdays: "pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),
  4604.             weekdaysShort: "P_E_T_K_N_R_L".split("_"),
  4605.             weekdaysMin: "P_E_T_K_N_R_L".split("_"),
  4606.             longDateFormat: {
  4607.                 LT: "H:mm",
  4608.                 LTS: "H:mm:ss",
  4609.                 L: "DD.MM.YYYY",
  4610.                 LL: "D. MMMM YYYY",
  4611.                 LLL: "D. MMMM YYYY H:mm",
  4612.                 LLLL: "dddd, D. MMMM YYYY H:mm"
  4613.             },
  4614.             calendar: {
  4615.                 sameDay: "[Täna,] LT",
  4616.                 nextDay: "[Homme,] LT",
  4617.                 nextWeek: "[Järgmine] dddd LT",
  4618.                 lastDay: "[Eile,] LT",
  4619.                 lastWeek: "[Eelmine] dddd LT",
  4620.                 sameElse: "L"
  4621.             },
  4622.             relativeTime: {
  4623.                 future: "%s pärast",
  4624.                 past: "%s tagasi",
  4625.                 s: p,
  4626.                 m: p,
  4627.                 mm: p,
  4628.                 h: p,
  4629.                 hh: p,
  4630.                 d: p,
  4631.                 dd: "%d päeva",
  4632.                 M: p,
  4633.                 MM: p,
  4634.                 y: p,
  4635.                 yy: p
  4636.             },
  4637.             ordinalParse: /\d{1,2}\./,
  4638.             ordinal: "%d.",
  4639.             week: {
  4640.                 dow: 1,
  4641.                 doy: 4
  4642.             }
  4643.         }), a.defineLocale("eu", {
  4644.             months: "urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),
  4645.             monthsShort: "urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),
  4646.             weekdays: "igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),
  4647.             weekdaysShort: "ig._al._ar._az._og._ol._lr.".split("_"),
  4648.             weekdaysMin: "ig_al_ar_az_og_ol_lr".split("_"),
  4649.             longDateFormat: {
  4650.                 LT: "HH:mm",
  4651.                 LTS: "HH:mm:ss",
  4652.                 L: "YYYY-MM-DD",
  4653.                 LL: "YYYY[ko] MMMM[ren] D[a]",
  4654.                 LLL: "YYYY[ko] MMMM[ren] D[a] HH:mm",
  4655.                 LLLL: "dddd, YYYY[ko] MMMM[ren] D[a] HH:mm",
  4656.                 l: "YYYY-M-D",
  4657.                 ll: "YYYY[ko] MMM D[a]",
  4658.                 lll: "YYYY[ko] MMM D[a] HH:mm",
  4659.                 llll: "ddd, YYYY[ko] MMM D[a] HH:mm"
  4660.             },
  4661.             calendar: {
  4662.                 sameDay: "[gaur] LT[etan]",
  4663.                 nextDay: "[bihar] LT[etan]",
  4664.                 nextWeek: "dddd LT[etan]",
  4665.                 lastDay: "[atzo] LT[etan]",
  4666.                 lastWeek: "[aurreko] dddd LT[etan]",
  4667.                 sameElse: "L"
  4668.             },
  4669.             relativeTime: {
  4670.                 future: "%s barru",
  4671.                 past: "duela %s",
  4672.                 s: "segundo batzuk",
  4673.                 m: "minutu bat",
  4674.                 mm: "%d minutu",
  4675.                 h: "ordu bat",
  4676.                 hh: "%d ordu",
  4677.                 d: "egun bat",
  4678.                 dd: "%d egun",
  4679.                 M: "hilabete bat",
  4680.                 MM: "%d hilabete",
  4681.                 y: "urte bat",
  4682.                 yy: "%d urte"
  4683.             },
  4684.             ordinalParse: /\d{1,2}\./,
  4685.             ordinal: "%d.",
  4686.             week: {
  4687.                 dow: 1,
  4688.                 doy: 7
  4689.             }
  4690.         }), {
  4691.             1: "Û±",
  4692.             2: "Û²",
  4693.             3: "Û³",
  4694.             4: "Û´",
  4695.             5: "Ûµ",
  4696.             6: "Û¶",
  4697.             7: "Û·",
  4698.             8: "Û¸",
  4699.             9: "Û¹",
  4700.             0: "Û°"
  4701.         }),
  4702.         ya = {
  4703.             "Û±": "1",
  4704.             "Û²": "2",
  4705.             "Û³": "3",
  4706.             "Û´": "4",
  4707.             "Ûµ": "5",
  4708.             "Û¶": "6",
  4709.             "Û·": "7",
  4710.             "Û¸": "8",
  4711.             "Û¹": "9",
  4712.             "Û°": "0"
  4713.         },
  4714.         za = (a.defineLocale("fa", {
  4715.             months: "ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),
  4716.             monthsShort: "ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر".split("_"),
  4717.             weekdays: "یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),
  4718.             weekdaysShort: "یک‌شنبه_دوشنبه_سه‌شنبه_چهارشنبه_پنج‌شنبه_جمعه_شنبه".split("_"),
  4719.             weekdaysMin: "ÛŒ_د_س_Ú†_Ù¾_ج_Ø´".split("_"),
  4720.             longDateFormat: {
  4721.                 LT: "HH:mm",
  4722.                 LTS: "HH:mm:ss",
  4723.                 L: "DD/MM/YYYY",
  4724.                 LL: "D MMMM YYYY",
  4725.                 LLL: "D MMMM YYYY HH:mm",
  4726.                 LLLL: "dddd, D MMMM YYYY HH:mm"
  4727.             },
  4728.             meridiemParse: /قبل از ظهر|بعد از ظهر/,
  4729.             isPM: function(a) {
  4730.                 return /بعد از ظهر/.test(a)
  4731.             },
  4732.             meridiem: function(a, b, c) {
  4733.                 return 12 > a ? "قبل از ظهر" : "بعد از ظهر"
  4734.             },
  4735.             calendar: {
  4736.                 sameDay: "[امروز ساعت] LT",
  4737.                 nextDay: "[فردا ساعت] LT",
  4738.                 nextWeek: "dddd [ساعت] LT",
  4739.                 lastDay: "[دیروز ساعت] LT",
  4740.                 lastWeek: "dddd [پیش] [ساعت] LT",
  4741.                 sameElse: "L"
  4742.             },
  4743.             relativeTime: {
  4744.                 future: "در %s",
  4745.                 past: "%s پیش",
  4746.                 s: "چندین ثانیه",
  4747.                 m: "یک دقیقه",
  4748.                 mm: "%d دقیقه",
  4749.                 h: "یک ساعت",
  4750.                 hh: "%d ساعت",
  4751.                 d: "یک روز",
  4752.                 dd: "%d روز",
  4753.                 M: "یک ماه",
  4754.                 MM: "%d ماه",
  4755.                 y: "یک سال",
  4756.                 yy: "%d سال"
  4757.             },
  4758.             preparse: function(a) {
  4759.                 return a.replace(/[Û°-Û¹]/g, function(a) {
  4760.                     return ya[a]
  4761.                 }).replace(/ØŒ/g, ",")
  4762.             },
  4763.             postformat: function(a) {
  4764.                 return a.replace(/\d/g, function(a) {
  4765.                     return xa[a]
  4766.                 }).replace(/,/g, "ØŒ")
  4767.             },
  4768.             ordinalParse: /\d{1,2}Ù…/,
  4769.             ordinal: "%dÙ…",
  4770.             week: {
  4771.                 dow: 6,
  4772.                 doy: 12
  4773.             }
  4774.         }), "nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän".split(" ")),
  4775.         Aa = ["nolla", "yhden", "kahden", "kolmen", "neljän", "viiden", "kuuden", za[7], za[8], za[9]],
  4776.         Ba = (a.defineLocale("fi", {
  4777.             months: "tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),
  4778.             monthsShort: "tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),
  4779.             weekdays: "sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),
  4780.             weekdaysShort: "su_ma_ti_ke_to_pe_la".split("_"),
  4781.             weekdaysMin: "su_ma_ti_ke_to_pe_la".split("_"),
  4782.             longDateFormat: {
  4783.                 LT: "HH.mm",
  4784.                 LTS: "HH.mm.ss",
  4785.                 L: "DD.MM.YYYY",
  4786.                 LL: "Do MMMM[ta] YYYY",
  4787.                 LLL: "Do MMMM[ta] YYYY, [klo] HH.mm",
  4788.                 LLLL: "dddd, Do MMMM[ta] YYYY, [klo] HH.mm",
  4789.                 l: "D.M.YYYY",
  4790.                 ll: "Do MMM YYYY",
  4791.                 lll: "Do MMM YYYY, [klo] HH.mm",
  4792.                 llll: "ddd, Do MMM YYYY, [klo] HH.mm"
  4793.             },
  4794.             calendar: {
  4795.                 sameDay: "[tänään] [klo] LT",
  4796.                 nextDay: "[huomenna] [klo] LT",
  4797.                 nextWeek: "dddd [klo] LT",
  4798.                 lastDay: "[eilen] [klo] LT",
  4799.                 lastWeek: "[viime] dddd[na] [klo] LT",
  4800.                 sameElse: "L"
  4801.             },
  4802.             relativeTime: {
  4803.                 future: "%s päästä",
  4804.                 past: "%s sitten",
  4805.                 s: q,
  4806.                 m: q,
  4807.                 mm: q,
  4808.                 h: q,
  4809.                 hh: q,
  4810.                 d: q,
  4811.                 dd: q,
  4812.                 M: q,
  4813.                 MM: q,
  4814.                 y: q,
  4815.                 yy: q
  4816.             },
  4817.             ordinalParse: /\d{1,2}\./,
  4818.             ordinal: "%d.",
  4819.             week: {
  4820.                 dow: 1,
  4821.                 doy: 4
  4822.             }
  4823.         }), a.defineLocale("fo", {
  4824.             months: "januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),
  4825.             monthsShort: "jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),
  4826.             weekdays: "sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),
  4827.             weekdaysShort: "sun_mán_týs_mik_hós_frí_ley".split("_"),
  4828.             weekdaysMin: "su_má_tý_mi_hó_fr_le".split("_"),
  4829.             longDateFormat: {
  4830.                 LT: "HH:mm",
  4831.                 LTS: "HH:mm:ss",
  4832.                 L: "DD/MM/YYYY",
  4833.                 LL: "D MMMM YYYY",
  4834.                 LLL: "D MMMM YYYY HH:mm",
  4835.                 LLLL: "dddd D. MMMM, YYYY HH:mm"
  4836.             },
  4837.             calendar: {
  4838.                 sameDay: "[Í dag kl.] LT",
  4839.                 nextDay: "[Í morgin kl.] LT",
  4840.                 nextWeek: "dddd [kl.] LT",
  4841.                 lastDay: "[Í gjár kl.] LT",
  4842.                 lastWeek: "[síðstu] dddd [kl] LT",
  4843.                 sameElse: "L"
  4844.             },
  4845.             relativeTime: {
  4846.                 future: "um %s",
  4847.                 past: "%s síðani",
  4848.                 s: "fá sekund",
  4849.                 m: "ein minutt",
  4850.                 mm: "%d minuttir",
  4851.                 h: "ein tími",
  4852.                 hh: "%d tímar",
  4853.                 d: "ein dagur",
  4854.                 dd: "%d dagar",
  4855.                 M: "ein mánaði",
  4856.                 MM: "%d mánaðir",
  4857.                 y: "eitt ár",
  4858.                 yy: "%d ár"
  4859.             },
  4860.             ordinalParse: /\d{1,2}\./,
  4861.             ordinal: "%d.",
  4862.             week: {
  4863.                 dow: 1,
  4864.                 doy: 4
  4865.             }
  4866.         }), a.defineLocale("fr-ca", {
  4867.             months: "janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),
  4868.             monthsShort: "janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),
  4869.             weekdays: "dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),
  4870.             weekdaysShort: "dim._lun._mar._mer._jeu._ven._sam.".split("_"),
  4871.             weekdaysMin: "Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),
  4872.             longDateFormat: {
  4873.                 LT: "HH:mm",
  4874.                 LTS: "HH:mm:ss",
  4875.                 L: "YYYY-MM-DD",
  4876.                 LL: "D MMMM YYYY",
  4877.                 LLL: "D MMMM YYYY HH:mm",
  4878.                 LLLL: "dddd D MMMM YYYY HH:mm"
  4879.             },
  4880.             calendar: {
  4881.                 sameDay: "[Aujourd'hui à ] LT",
  4882.                 nextDay: "[Demain à ] LT",
  4883.                 nextWeek: "dddd [Ã ] LT",
  4884.                 lastDay: "[Hier à ] LT",
  4885.                 lastWeek: "dddd [dernier à ] LT",
  4886.                 sameElse: "L"
  4887.             },
  4888.             relativeTime: {
  4889.                 future: "dans %s",
  4890.                 past: "il y a %s",
  4891.                 s: "quelques secondes",
  4892.                 m: "une minute",
  4893.                 mm: "%d minutes",
  4894.                 h: "une heure",
  4895.                 hh: "%d heures",
  4896.                 d: "un jour",
  4897.                 dd: "%d jours",
  4898.                 M: "un mois",
  4899.                 MM: "%d mois",
  4900.                 y: "un an",
  4901.                 yy: "%d ans"
  4902.             },
  4903.             ordinalParse: /\d{1,2}(er|e)/,
  4904.             ordinal: function(a) {
  4905.                 return a + (1 === a ? "er" : "e")
  4906.             }
  4907.         }), a.defineLocale("fr", {
  4908.             months: "janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),
  4909.             monthsShort: "janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),
  4910.             weekdays: "dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),
  4911.             weekdaysShort: "dim._lun._mar._mer._jeu._ven._sam.".split("_"),
  4912.             weekdaysMin: "Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),
  4913.             longDateFormat: {
  4914.                 LT: "HH:mm",
  4915.                 LTS: "HH:mm:ss",
  4916.                 L: "DD/MM/YYYY",
  4917.                 LL: "D MMMM YYYY",
  4918.                 LLL: "D MMMM YYYY HH:mm",
  4919.                 LLLL: "dddd D MMMM YYYY HH:mm"
  4920.             },
  4921.             calendar: {
  4922.                 sameDay: "[Aujourd'hui à ] LT",
  4923.                 nextDay: "[Demain à ] LT",
  4924.                 nextWeek: "dddd [Ã ] LT",
  4925.                 lastDay: "[Hier à ] LT",
  4926.                 lastWeek: "dddd [dernier à ] LT",
  4927.                 sameElse: "L"
  4928.             },
  4929.             relativeTime: {
  4930.                 future: "dans %s",
  4931.                 past: "il y a %s",
  4932.                 s: "quelques secondes",
  4933.                 m: "une minute",
  4934.                 mm: "%d minutes",
  4935.                 h: "une heure",
  4936.                 hh: "%d heures",
  4937.                 d: "un jour",
  4938.                 dd: "%d jours",
  4939.                 M: "un mois",
  4940.                 MM: "%d mois",
  4941.                 y: "un an",
  4942.                 yy: "%d ans"
  4943.             },
  4944.             ordinalParse: /\d{1,2}(er|)/,
  4945.             ordinal: function(a) {
  4946.                 return a + (1 === a ? "er" : "")
  4947.             },
  4948.             week: {
  4949.                 dow: 1,
  4950.                 doy: 4
  4951.             }
  4952.         }), "jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.".split("_")),
  4953.         Ca = "jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),
  4954.         Da = (a.defineLocale("fy", {
  4955.             months: "jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber".split("_"),
  4956.             monthsShort: function(a, b) {
  4957.                 return /-MMM-/.test(b) ? Ca[a.month()] : Ba[a.month()]
  4958.             },
  4959.             weekdays: "snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon".split("_"),
  4960.             weekdaysShort: "si._mo._ti._wo._to._fr._so.".split("_"),
  4961.             weekdaysMin: "Si_Mo_Ti_Wo_To_Fr_So".split("_"),
  4962.             longDateFormat: {
  4963.                 LT: "HH:mm",
  4964.                 LTS: "HH:mm:ss",
  4965.                 L: "DD-MM-YYYY",
  4966.                 LL: "D MMMM YYYY",
  4967.                 LLL: "D MMMM YYYY HH:mm",
  4968.                 LLLL: "dddd D MMMM YYYY HH:mm"
  4969.             },
  4970.             calendar: {
  4971.                 sameDay: "[hjoed om] LT",
  4972.                 nextDay: "[moarn om] LT",
  4973.                 nextWeek: "dddd [om] LT",
  4974.                 lastDay: "[juster om] LT",
  4975.                 lastWeek: "[ôfrûne] dddd [om] LT",
  4976.                 sameElse: "L"
  4977.             },
  4978.             relativeTime: {
  4979.                 future: "oer %s",
  4980.                 past: "%s lyn",
  4981.                 s: "in pear sekonden",
  4982.                 m: "ien minút",
  4983.                 mm: "%d minuten",
  4984.                 h: "ien oere",
  4985.                 hh: "%d oeren",
  4986.                 d: "ien dei",
  4987.                 dd: "%d dagen",
  4988.                 M: "ien moanne",
  4989.                 MM: "%d moannen",
  4990.                 y: "ien jier",
  4991.                 yy: "%d jierren"
  4992.             },
  4993.             ordinalParse: /\d{1,2}(ste|de)/,
  4994.             ordinal: function(a) {
  4995.                 return a + (1 === a || 8 === a || a >= 20 ? "ste" : "de")
  4996.             },
  4997.             week: {
  4998.                 dow: 1,
  4999.                 doy: 4
  5000.             }
  5001.         }), a.defineLocale("gl", {
  5002.             months: "Xaneiro_Febreiro_Marzo_Abril_Maio_Xuño_Xullo_Agosto_Setembro_Outubro_Novembro_Decembro".split("_"),
  5003.             monthsShort: "Xan._Feb._Mar._Abr._Mai._Xuñ._Xul._Ago._Set._Out._Nov._Dec.".split("_"),
  5004.             weekdays: "Domingo_Luns_Martes_Mércores_Xoves_Venres_Sábado".split("_"),
  5005.             weekdaysShort: "Dom._Lun._Mar._Mér._Xov._Ven._Sáb.".split("_"),
  5006.             weekdaysMin: "Do_Lu_Ma_Mé_Xo_Ve_Sá".split("_"),
  5007.             longDateFormat: {
  5008.                 LT: "H:mm",
  5009.                 LTS: "H:mm:ss",
  5010.                 L: "DD/MM/YYYY",
  5011.                 LL: "D MMMM YYYY",
  5012.                 LLL: "D MMMM YYYY H:mm",
  5013.                 LLLL: "dddd D MMMM YYYY H:mm"
  5014.             },
  5015.             calendar: {
  5016.                 sameDay: function() {
  5017.                     return "[hoxe " + (1 !== this.hours() ? "ás" : "á") + "] LT"
  5018.                 },
  5019.                 nextDay: function() {
  5020.                     return "[mañá " + (1 !== this.hours() ? "ás" : "á") + "] LT"
  5021.                 },
  5022.                 nextWeek: function() {
  5023.                     return "dddd [" + (1 !== this.hours() ? "ás" : "a") + "] LT"
  5024.                 },
  5025.                 lastDay: function() {
  5026.                     return "[onte " + (1 !== this.hours() ? "á" : "a") + "] LT"
  5027.                 },
  5028.                 lastWeek: function() {
  5029.                     return "[o] dddd [pasado " + (1 !== this.hours() ? "ás" : "a") + "] LT"
  5030.                 },
  5031.                 sameElse: "L"
  5032.             },
  5033.             relativeTime: {
  5034.                 future: function(a) {
  5035.                     return "uns segundos" === a ? "nuns segundos" : "en " + a
  5036.                 },
  5037.                 past: "hai %s",
  5038.                 s: "uns segundos",
  5039.                 m: "un minuto",
  5040.                 mm: "%d minutos",
  5041.                 h: "unha hora",
  5042.                 hh: "%d horas",
  5043.                 d: "un día",
  5044.                 dd: "%d días",
  5045.                 M: "un mes",
  5046.                 MM: "%d meses",
  5047.                 y: "un ano",
  5048.                 yy: "%d anos"
  5049.             },
  5050.             ordinalParse: /\d{1,2}º/,
  5051.             ordinal: "%dº",
  5052.             week: {
  5053.                 dow: 1,
  5054.                 doy: 7
  5055.             }
  5056.         }), a.defineLocale("he", {
  5057.             months: "×™× ×•××¨_פברואר_מרץ_אפריל_מאי_×™×•× ×™_יולי_אוגוסט_ספטמבר_אוקטובר_× ×•×‘×ž×‘×¨_דצמבר".split("_"),
  5058.             monthsShort: "×™× ×•×³_פבר׳_מרץ_אפר׳_מאי_×™×•× ×™_יולי_אוג׳_ספט׳_אוק׳_× ×•×‘×³_דצמ׳".split("_"),
  5059.             weekdays: "ראשון_×©× ×™_שלישי_רביעי_חמישי_שישי_שבת".split("_"),
  5060.             weekdaysShort: "א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),
  5061.             weekdaysMin: "א_ב_×’_ד_×”_ו_ש".split("_"),
  5062.             longDateFormat: {
  5063.                 LT: "HH:mm",
  5064.                 LTS: "HH:mm:ss",
  5065.                 L: "DD/MM/YYYY",
  5066.                 LL: "D [ב]MMMM YYYY",
  5067.                 LLL: "D [ב]MMMM YYYY HH:mm",
  5068.                 LLLL: "dddd, D [ב]MMMM YYYY HH:mm",
  5069.                 l: "D/M/YYYY",
  5070.                 ll: "D MMM YYYY",
  5071.                 lll: "D MMM YYYY HH:mm",
  5072.                 llll: "ddd, D MMM YYYY HH:mm"
  5073.             },
  5074.             calendar: {
  5075.                 sameDay: "[היום ב־]LT",
  5076.                 nextDay: "[מחר ב־]LT",
  5077.                 nextWeek: "dddd [בשעה] LT",
  5078.                 lastDay: "[אתמול ב־]LT",
  5079.                 lastWeek: "[ביום] dddd [האחרון בשעה] LT",
  5080.                 sameElse: "L"
  5081.             },
  5082.             relativeTime: {
  5083.                 future: "בעוד %s",
  5084.                 past: "×œ×¤× ×™ %s",
  5085.                 s: "מספר ×©× ×™×•×ª",
  5086.                 m: "דקה",
  5087.                 mm: "%d דקות",
  5088.                 h: "שעה",
  5089.                 hh: function(a) {
  5090.                     return 2 === a ? "שעתיים" : a + " שעות"
  5091.                 },
  5092.                 d: "יום",
  5093.                 dd: function(a) {
  5094.                     return 2 === a ? "יומיים" : a + " ימים"
  5095.                 },
  5096.                 M: "חודש",
  5097.                 MM: function(a) {
  5098.                     return 2 === a ? "חודשיים" : a + " חודשים"
  5099.                 },
  5100.                 y: "×©× ×”",
  5101.                 yy: function(a) {
  5102.                     return 2 === a ? "×©× ×ª×™×™×" : a % 10 === 0 && 10 !== a ? a + " ×©× ×”" : a + " ×©× ×™×"
  5103.                 }
  5104.             }
  5105.         }), {
  5106.             1: "१",
  5107.             2: "२",
  5108.             3: "३",
  5109.             4: "४",
  5110.             5: "५",
  5111.             6: "६",
  5112.             7: "७",
  5113.             8: "८",
  5114.             9: "९",
  5115.             0: "०"
  5116.         }),
  5117.         Ea = {
  5118.             "१": "1",
  5119.             "२": "2",
  5120.             "३": "3",
  5121.             "४": "4",
  5122.             "५": "5",
  5123.             "६": "6",
  5124.             "७": "7",
  5125.             "८": "8",
  5126.             "९": "9",
  5127.             "०": "0"
  5128.         },
  5129.         Fa = (a.defineLocale("hi", {
  5130.             months: "जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर".split("_"),
  5131.             monthsShort: "जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.".split("_"),
  5132.             weekdays: "रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),
  5133.             weekdaysShort: "रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि".split("_"),
  5134.             weekdaysMin: "र_सो_मं_बु_गु_शु_श".split("_"),
  5135.             longDateFormat: {
  5136.                 LT: "A h:mm बजे",
  5137.                 LTS: "A h:mm:ss बजे",
  5138.                 L: "DD/MM/YYYY",
  5139.                 LL: "D MMMM YYYY",
  5140.                 LLL: "D MMMM YYYY, A h:mm बजे",
  5141.                 LLLL: "dddd, D MMMM YYYY, A h:mm बजे"
  5142.             },
  5143.             calendar: {
  5144.                 sameDay: "[आज] LT",
  5145.                 nextDay: "[कल] LT",
  5146.                 nextWeek: "dddd, LT",
  5147.                 lastDay: "[कल] LT",
  5148.                 lastWeek: "[पिछले] dddd, LT",
  5149.                 sameElse: "L"
  5150.             },
  5151.             relativeTime: {
  5152.                 future: "%s में",
  5153.                 past: "%s पहले",
  5154.                 s: "कुछ ही क्षण",
  5155.                 m: "एक मिनट",
  5156.                 mm: "%d मिनट",
  5157.                 h: "एक घंटा",
  5158.                 hh: "%d घंटे",
  5159.                 d: "एक दिन",
  5160.                 dd: "%d दिन",
  5161.                 M: "एक महीने",
  5162.                 MM: "%d महीने",
  5163.                 y: "एक वर्ष",
  5164.                 yy: "%d वर्ष"
  5165.             },
  5166.             preparse: function(a) {
  5167.                 return a.replace(/[१२३४५६७८९०]/g, function(a) {
  5168.                     return Ea[a]
  5169.                 })
  5170.             },
  5171.             postformat: function(a) {
  5172.                 return a.replace(/\d/g, function(a) {
  5173.                     return Da[a]
  5174.                 })
  5175.             },
  5176.             meridiemParse: /रात|सुबह|दोपहर|शाम/,
  5177.             meridiemHour: function(a, b) {
  5178.                 return 12 === a && (a = 0), "रात" === b ? 4 > a ? a : a + 12 : "सुबह" === b ? a : "दोपहर" === b ? a >= 10 ? a : a + 12 : "शाम" === b ? a + 12 : void 0
  5179.             },
  5180.             meridiem: function(a, b, c) {
  5181.                 return 4 > a ? "रात" : 10 > a ? "सुबह" : 17 > a ? "दोपहर" : 20 > a ? "शाम" : "रात"
  5182.             },
  5183.             week: {
  5184.                 dow: 0,
  5185.                 doy: 6
  5186.             }
  5187.         }), a.defineLocale("hr", {
  5188.             months: "siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_"),
  5189.             monthsShort: "sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),
  5190.             weekdays: "nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),
  5191.             weekdaysShort: "ned._pon._uto._sri._čet._pet._sub.".split("_"),
  5192.             weekdaysMin: "ne_po_ut_sr_če_pe_su".split("_"),
  5193.             longDateFormat: {
  5194.                 LT: "H:mm",
  5195.                 LTS: "H:mm:ss",
  5196.                 L: "DD. MM. YYYY",
  5197.                 LL: "D. MMMM YYYY",
  5198.                 LLL: "D. MMMM YYYY H:mm",
  5199.                 LLLL: "dddd, D. MMMM YYYY H:mm"
  5200.             },
  5201.             calendar: {
  5202.                 sameDay: "[danas u] LT",
  5203.                 nextDay: "[sutra u] LT",
  5204.                 nextWeek: function() {
  5205.                     switch (this.day()) {
  5206.                         case 0:
  5207.                             return "[u] [nedjelju] [u] LT";
  5208.                         case 3:
  5209.                             return "[u] [srijedu] [u] LT";
  5210.                         case 6:
  5211.                             return "[u] [subotu] [u] LT";
  5212.                         case 1:
  5213.                         case 2:
  5214.                         case 4:
  5215.                         case 5:
  5216.                             return "[u] dddd [u] LT"
  5217.                     }
  5218.                 },
  5219.                 lastDay: "[jučer u] LT",
  5220.                 lastWeek: function() {
  5221.                     switch (this.day()) {
  5222.                         case 0:
  5223.                         case 3:
  5224.                             return "[proÅ¡lu] dddd [u] LT";
  5225.                         case 6:
  5226.                             return "[proÅ¡le] [subote] [u] LT";
  5227.                         case 1:
  5228.                         case 2:
  5229.                         case 4:
  5230.                         case 5:
  5231.                             return "[proÅ¡li] dddd [u] LT"
  5232.                     }
  5233.                 },
  5234.                 sameElse: "L"
  5235.             },
  5236.             relativeTime: {
  5237.                 future: "za %s",
  5238.                 past: "prije %s",
  5239.                 s: "par sekundi",
  5240.                 m: s,
  5241.                 mm: s,
  5242.                 h: s,
  5243.                 hh: s,
  5244.                 d: "dan",
  5245.                 dd: s,
  5246.                 M: "mjesec",
  5247.                 MM: s,
  5248.                 y: "godinu",
  5249.                 yy: s
  5250.             },
  5251.             ordinalParse: /\d{1,2}\./,
  5252.             ordinal: "%d.",
  5253.             week: {
  5254.                 dow: 1,
  5255.                 doy: 7
  5256.             }
  5257.         }), "vasárnap hétfÅ‘n kedden szerdán csütörtökön pénteken szombaton".split(" ")),
  5258.         Ga = (a.defineLocale("hu", {
  5259.             months: "január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),
  5260.             monthsShort: "jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),
  5261.             weekdays: "vasárnap_hétfÅ‘_kedd_szerda_csütörtök_péntek_szombat".split("_"),
  5262.             weekdaysShort: "vas_hét_kedd_sze_csüt_pén_szo".split("_"),
  5263.             weekdaysMin: "v_h_k_sze_cs_p_szo".split("_"),
  5264.             longDateFormat: {
  5265.                 LT: "H:mm",
  5266.                 LTS: "H:mm:ss",
  5267.                 L: "YYYY.MM.DD.",
  5268.                 LL: "YYYY. MMMM D.",
  5269.                 LLL: "YYYY. MMMM D. H:mm",
  5270.                 LLLL: "YYYY. MMMM D., dddd H:mm"
  5271.             },
  5272.             meridiemParse: /de|du/i,
  5273.             isPM: function(a) {
  5274.                 return "u" === a.charAt(1).toLowerCase()
  5275.             },
  5276.             meridiem: function(a, b, c) {
  5277.                 return 12 > a ? c === !0 ? "de" : "DE" : c === !0 ? "du" : "DU"
  5278.             },
  5279.             calendar: {
  5280.                 sameDay: "[ma] LT[-kor]",
  5281.                 nextDay: "[holnap] LT[-kor]",
  5282.                 nextWeek: function() {
  5283.                     return u.call(this, !0)
  5284.                 },
  5285.                 lastDay: "[tegnap] LT[-kor]",
  5286.                 lastWeek: function() {
  5287.                     return u.call(this, !1)
  5288.                 },
  5289.                 sameElse: "L"
  5290.             },
  5291.             relativeTime: {
  5292.                 future: "%s múlva",
  5293.                 past: "%s",
  5294.                 s: t,
  5295.                 m: t,
  5296.                 mm: t,
  5297.                 h: t,
  5298.                 hh: t,
  5299.                 d: t,
  5300.                 dd: t,
  5301.                 M: t,
  5302.                 MM: t,
  5303.                 y: t,
  5304.                 yy: t
  5305.             },
  5306.             ordinalParse: /\d{1,2}\./,
  5307.             ordinal: "%d.",
  5308.             week: {
  5309.                 dow: 1,
  5310.                 doy: 7
  5311.             }
  5312.         }), a.defineLocale("hy-am", {
  5313.             months: v,
  5314.             monthsShort: w,
  5315.             weekdays: x,
  5316.             weekdaysShort: "Õ¯Ö€Õ¯_Õ¥Ö€Õ¯_Õ¥Ö€Ö„_Õ¹Ö€Ö„_Õ°Õ¶Õ£_Õ¸Ö‚Ö€Õ¢_Õ·Õ¢Õ©".split("_"),
  5317.             weekdaysMin: "Õ¯Ö€Õ¯_Õ¥Ö€Õ¯_Õ¥Ö€Ö„_Õ¹Ö€Ö„_Õ°Õ¶Õ£_Õ¸Ö‚Ö€Õ¢_Õ·Õ¢Õ©".split("_"),
  5318.             longDateFormat: {
  5319.                 LT: "HH:mm",
  5320.                 LTS: "HH:mm:ss",
  5321.                 L: "DD.MM.YYYY",
  5322.                 LL: "D MMMM YYYY Õ©.",
  5323.                 LLL: "D MMMM YYYY Õ©., HH:mm",
  5324.                 LLLL: "dddd, D MMMM YYYY Õ©., HH:mm"
  5325.             },
  5326.             calendar: {
  5327.                 sameDay: "[Õ¡ÕµÕ½Ö…Ö€] LT",
  5328.                 nextDay: "[Õ¾Õ¡Õ²Õ¨] LT",
  5329.                 lastDay: "[Õ¥Ö€Õ¥Õ¯] LT",
  5330.                 nextWeek: function() {
  5331.                     return "dddd [Ö…Ö€Õ¨ ÕªÕ¡Õ´Õ¨] LT"
  5332.                 },
  5333.                 lastWeek: function() {
  5334.                     return "[անցած] dddd [Ö…Ö€Õ¨ ÕªÕ¡Õ´Õ¨] LT"
  5335.                 },
  5336.                 sameElse: "L"
  5337.             },
  5338.             relativeTime: {
  5339.                 future: "%s Õ°Õ¥Õ¿Õ¸",
  5340.                 past: "%s Õ¡Õ¼Õ¡Õ»",
  5341.                 s: "Õ´Õ« Ö„Õ¡Õ¶Õ« Õ¾Õ¡ÕµÖ€Õ¯ÕµÕ¡Õ¶",
  5342.                 m: "Ö€Õ¸ÕºÕ¥",
  5343.                 mm: "%d Ö€Õ¸ÕºÕ¥",
  5344.                 h: "ÕªÕ¡Õ´",
  5345.                 hh: "%d ÕªÕ¡Õ´",
  5346.                 d: "Ö…Ö€",
  5347.                 dd: "%d Ö…Ö€",
  5348.                 M: "Õ¡Õ´Õ«Õ½",
  5349.                 MM: "%d Õ¡Õ´Õ«Õ½",
  5350.                 y: "Õ¿Õ¡Ö€Õ«",
  5351.                 yy: "%d Õ¿Õ¡Ö€Õ«"
  5352.             },
  5353.             meridiemParse: /Õ£Õ«Õ·Õ¥Ö€Õ¾Õ¡|Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡|ցերեկվա|Õ¥Ö€Õ¥Õ¯Õ¸ÕµÕ¡Õ¶/,
  5354.             isPM: function(a) {
  5355.                 return /^(ցերեկվա|Õ¥Ö€Õ¥Õ¯Õ¸ÕµÕ¡Õ¶)$/.test(a)
  5356.             },
  5357.             meridiem: function(a) {
  5358.                 return 4 > a ? "Õ£Õ«Õ·Õ¥Ö€Õ¾Õ¡" : 12 > a ? "Õ¡Õ¼Õ¡Õ¾Õ¸Õ¿Õ¾Õ¡" : 17 > a ? "ցերեկվա" : "Õ¥Ö€Õ¥Õ¯Õ¸ÕµÕ¡Õ¶"
  5359.             },
  5360.             ordinalParse: /\d{1,2}|\d{1,2}-(Õ«Õ¶|Ö€Õ¤)/,
  5361.             ordinal: function(a, b) {
  5362.                 switch (b) {
  5363.                     case "DDD":
  5364.                     case "w":
  5365.                     case "W":
  5366.                     case "DDDo":
  5367.                         return 1 === a ? a + "-Õ«Õ¶" : a + "-Ö€Õ¤";
  5368.                     default:
  5369.                         return a
  5370.                 }
  5371.             },
  5372.             week: {
  5373.                 dow: 1,
  5374.                 doy: 7
  5375.             }
  5376.         }), a.defineLocale("id", {
  5377.             months: "Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),
  5378.             monthsShort: "Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des".split("_"),
  5379.             weekdays: "Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),
  5380.             weekdaysShort: "Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),
  5381.             weekdaysMin: "Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),
  5382.             longDateFormat: {
  5383.                 LT: "HH.mm",
  5384.                 LTS: "HH.mm.ss",
  5385.                 L: "DD/MM/YYYY",
  5386.                 LL: "D MMMM YYYY",
  5387.                 LLL: "D MMMM YYYY [pukul] HH.mm",
  5388.                 LLLL: "dddd, D MMMM YYYY [pukul] HH.mm"
  5389.             },
  5390.             meridiemParse: /pagi|siang|sore|malam/,
  5391.             meridiemHour: function(a, b) {
  5392.                 return 12 === a && (a = 0), "pagi" === b ? a : "siang" === b ? a >= 11 ? a : a + 12 : "sore" === b || "malam" === b ? a + 12 : void 0
  5393.             },
  5394.             meridiem: function(a, b, c) {
  5395.                 return 11 > a ? "pagi" : 15 > a ? "siang" : 19 > a ? "sore" : "malam"
  5396.             },
  5397.             calendar: {
  5398.                 sameDay: "[Hari ini pukul] LT",
  5399.                 nextDay: "[Besok pukul] LT",
  5400.                 nextWeek: "dddd [pukul] LT",
  5401.                 lastDay: "[Kemarin pukul] LT",
  5402.                 lastWeek: "dddd [lalu pukul] LT",
  5403.                 sameElse: "L"
  5404.             },
  5405.             relativeTime: {
  5406.                 future: "dalam %s",
  5407.                 past: "%s yang lalu",
  5408.                 s: "beberapa detik",
  5409.                 m: "semenit",
  5410.                 mm: "%d menit",
  5411.                 h: "sejam",
  5412.                 hh: "%d jam",
  5413.                 d: "sehari",
  5414.                 dd: "%d hari",
  5415.                 M: "sebulan",
  5416.                 MM: "%d bulan",
  5417.                 y: "setahun",
  5418.                 yy: "%d tahun"
  5419.             },
  5420.             week: {
  5421.                 dow: 1,
  5422.                 doy: 7
  5423.             }
  5424.         }), a.defineLocale("is", {
  5425.             months: "janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),
  5426.             monthsShort: "jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),
  5427.             weekdays: "sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),
  5428.             weekdaysShort: "sun_mán_þri_mið_fim_fös_lau".split("_"),
  5429.             weekdaysMin: "Su_Má_Þr_Mi_Fi_Fö_La".split("_"),
  5430.             longDateFormat: {
  5431.                 LT: "H:mm",
  5432.                 LTS: "H:mm:ss",
  5433.                 L: "DD/MM/YYYY",
  5434.                 LL: "D. MMMM YYYY",
  5435.                 LLL: "D. MMMM YYYY [kl.] H:mm",
  5436.                 LLLL: "dddd, D. MMMM YYYY [kl.] H:mm"
  5437.             },
  5438.             calendar: {
  5439.                 sameDay: "[í dag kl.] LT",
  5440.                 nextDay: "[á morgun kl.] LT",
  5441.                 nextWeek: "dddd [kl.] LT",
  5442.                 lastDay: "[í gær kl.] LT",
  5443.                 lastWeek: "[síðasta] dddd [kl.] LT",
  5444.                 sameElse: "L"
  5445.             },
  5446.             relativeTime: {
  5447.                 future: "eftir %s",
  5448.                 past: "fyrir %s síðan",
  5449.                 s: z,
  5450.                 m: z,
  5451.                 mm: z,
  5452.                 h: "klukkustund",
  5453.                 hh: z,
  5454.                 d: z,
  5455.                 dd: z,
  5456.                 M: z,
  5457.                 MM: z,
  5458.                 y: z,
  5459.                 yy: z
  5460.             },
  5461.             ordinalParse: /\d{1,2}\./,
  5462.             ordinal: "%d.",
  5463.             week: {
  5464.                 dow: 1,
  5465.                 doy: 4
  5466.             }
  5467.         }), a.defineLocale("it", {
  5468.             months: "gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),
  5469.             monthsShort: "gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),
  5470.             weekdays: "Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato".split("_"),
  5471.             weekdaysShort: "Dom_Lun_Mar_Mer_Gio_Ven_Sab".split("_"),
  5472.             weekdaysMin: "D_L_Ma_Me_G_V_S".split("_"),
  5473.             longDateFormat: {
  5474.                 LT: "HH:mm",
  5475.                 LTS: "HH:mm:ss",
  5476.                 L: "DD/MM/YYYY",
  5477.                 LL: "D MMMM YYYY",
  5478.                 LLL: "D MMMM YYYY HH:mm",
  5479.                 LLLL: "dddd, D MMMM YYYY HH:mm"
  5480.             },
  5481.             calendar: {
  5482.                 sameDay: "[Oggi alle] LT",
  5483.                 nextDay: "[Domani alle] LT",
  5484.                 nextWeek: "dddd [alle] LT",
  5485.                 lastDay: "[Ieri alle] LT",
  5486.                 lastWeek: function() {
  5487.                     switch (this.day()) {
  5488.                         case 0:
  5489.                             return "[la scorsa] dddd [alle] LT";
  5490.                         default:
  5491.                             return "[lo scorso] dddd [alle] LT"
  5492.                     }
  5493.                 },
  5494.                 sameElse: "L"
  5495.             },
  5496.             relativeTime: {
  5497.                 future: function(a) {
  5498.                     return (/^[0-9].+$/.test(a) ? "tra" : "in") + " " + a
  5499.                 },
  5500.                 past: "%s fa",
  5501.                 s: "alcuni secondi",
  5502.                 m: "un minuto",
  5503.                 mm: "%d minuti",
  5504.                 h: "un'ora",
  5505.                 hh: "%d ore",
  5506.                 d: "un giorno",
  5507.                 dd: "%d giorni",
  5508.                 M: "un mese",
  5509.                 MM: "%d mesi",
  5510.                 y: "un anno",
  5511.                 yy: "%d anni"
  5512.             },
  5513.             ordinalParse: /\d{1,2}º/,
  5514.             ordinal: "%dº",
  5515.             week: {
  5516.                 dow: 1,
  5517.                 doy: 4
  5518.             }
  5519.         }), a.defineLocale("ja", {
  5520.             months: "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),
  5521.             monthsShort: "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),
  5522.             weekdays: "日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),
  5523.             weekdaysShort: "æ—¥_月_火_æ°´_木_金_土".split("_"),
  5524.             weekdaysMin: "æ—¥_月_火_æ°´_木_金_土".split("_"),
  5525.             longDateFormat: {
  5526.                 LT: "Ah時m分",
  5527.                 LTS: "Ah時m分s秒",
  5528.                 L: "YYYY/MM/DD",
  5529.                 LL: "YYYYå¹´M月Dæ—¥",
  5530.                 LLL: "YYYYå¹´M月Dæ—¥Ah時m分",
  5531.                 LLLL: "YYYYå¹´M月Dæ—¥Ah時m分 dddd"
  5532.             },
  5533.             meridiemParse: /午前|午後/i,
  5534.             isPM: function(a) {
  5535.                 return "午後" === a
  5536.             },
  5537.             meridiem: function(a, b, c) {
  5538.                 return 12 > a ? "午前" : "午後"
  5539.             },
  5540.             calendar: {
  5541.                 sameDay: "[今日] LT",
  5542.                 nextDay: "[明日] LT",
  5543.                 nextWeek: "[来週]dddd LT",
  5544.                 lastDay: "[昨日] LT",
  5545.                 lastWeek: "[前週]dddd LT",
  5546.                 sameElse: "L"
  5547.             },
  5548.             relativeTime: {
  5549.                 future: "%s後",
  5550.                 past: "%s前",
  5551.                 s: "数秒",
  5552.                 m: "1分",
  5553.                 mm: "%d分",
  5554.                 h: "1時間",
  5555.                 hh: "%d時間",
  5556.                 d: "1æ—¥",
  5557.                 dd: "%dæ—¥",
  5558.                 M: "1ヶ月",
  5559.                 MM: "%dヶ月",
  5560.                 y: "1å¹´",
  5561.                 yy: "%då¹´"
  5562.             }
  5563.         }), a.defineLocale("jv", {
  5564.             months: "Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember".split("_"),
  5565.             monthsShort: "Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des".split("_"),
  5566.             weekdays: "Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu".split("_"),
  5567.             weekdaysShort: "Min_Sen_Sel_Reb_Kem_Jem_Sep".split("_"),
  5568.             weekdaysMin: "Mg_Sn_Sl_Rb_Km_Jm_Sp".split("_"),
  5569.             longDateFormat: {
  5570.                 LT: "HH.mm",
  5571.                 LTS: "HH.mm.ss",
  5572.                 L: "DD/MM/YYYY",
  5573.                 LL: "D MMMM YYYY",
  5574.                 LLL: "D MMMM YYYY [pukul] HH.mm",
  5575.                 LLLL: "dddd, D MMMM YYYY [pukul] HH.mm"
  5576.             },
  5577.             meridiemParse: /enjing|siyang|sonten|ndalu/,
  5578.             meridiemHour: function(a, b) {
  5579.                 return 12 === a && (a = 0), "enjing" === b ? a : "siyang" === b ? a >= 11 ? a : a + 12 : "sonten" === b || "ndalu" === b ? a + 12 : void 0
  5580.             },
  5581.             meridiem: function(a, b, c) {
  5582.                 return 11 > a ? "enjing" : 15 > a ? "siyang" : 19 > a ? "sonten" : "ndalu"
  5583.             },
  5584.             calendar: {
  5585.                 sameDay: "[Dinten puniko pukul] LT",
  5586.                 nextDay: "[Mbenjang pukul] LT",
  5587.                 nextWeek: "dddd [pukul] LT",
  5588.                 lastDay: "[Kala wingi pukul] LT",
  5589.                 lastWeek: "dddd [kepengker pukul] LT",
  5590.                 sameElse: "L"
  5591.             },
  5592.             relativeTime: {
  5593.                 future: "wonten ing %s",
  5594.                 past: "%s ingkang kepengker",
  5595.                 s: "sawetawis detik",
  5596.                 m: "setunggal menit",
  5597.                 mm: "%d menit",
  5598.                 h: "setunggal jam",
  5599.                 hh: "%d jam",
  5600.                 d: "sedinten",
  5601.                 dd: "%d dinten",
  5602.                 M: "sewulan",
  5603.                 MM: "%d wulan",
  5604.                 y: "setaun",
  5605.                 yy: "%d taun"
  5606.             },
  5607.             week: {
  5608.                 dow: 1,
  5609.                 doy: 7
  5610.             }
  5611.         }), a.defineLocale("ka", {
  5612.             months: A,
  5613.             monthsShort: "იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),
  5614.             weekdays: B,
  5615.             weekdaysShort: "კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),
  5616.             weekdaysMin: "კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),
  5617.             longDateFormat: {
  5618.                 LT: "h:mm A",
  5619.                 LTS: "h:mm:ss A",
  5620.                 L: "DD/MM/YYYY",
  5621.                 LL: "D MMMM YYYY",
  5622.                 LLL: "D MMMM YYYY h:mm A",
  5623.                 LLLL: "dddd, D MMMM YYYY h:mm A"
  5624.             },
  5625.             calendar: {
  5626.                 sameDay: "[დღეს] LT[-ზე]",
  5627.                 nextDay: "[ხვალ] LT[-ზე]",
  5628.                 lastDay: "[გუშინ] LT[-ზე]",
  5629.                 nextWeek: "[შემდეგ] dddd LT[-ზე]",
  5630.                 lastWeek: "[წინა] dddd LT-ზე",
  5631.                 sameElse: "L"
  5632.             },
  5633.             relativeTime: {
  5634.                 future: function(a) {
  5635.                     return /(წამი|წუთი|საათი|წელი)/.test(a) ? a.replace(/ი$/, "ში") : a + "ში"
  5636.                 },
  5637.                 past: function(a) {
  5638.                     return /(წამი|წუთი|საათი|დღე|თვე)/.test(a) ? a.replace(/(ი|ე)$/, "ის წინ") : /წელი/.test(a) ? a.replace(/წელი$/, "წლის წინ") : void 0
  5639.                 },
  5640.                 s: "რამდენიმე წამი",
  5641.                 m: "წუთი",
  5642.                 mm: "%d წუთი",
  5643.                 h: "საათი",
  5644.                 hh: "%d საათი",
  5645.                 d: "დღე",
  5646.                 dd: "%d დღე",
  5647.                 M: "თვე",
  5648.                 MM: "%d თვე",
  5649.                 y: "წელი",
  5650.                 yy: "%d წელი"
  5651.             },
  5652.             ordinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,
  5653.             ordinal: function(a) {
  5654.                 return 0 === a ? a : 1 === a ? a + "-ლი" : 20 > a || 100 >= a && a % 20 === 0 || a % 100 === 0 ? "მე-" + a : a + "-ე"
  5655.             },
  5656.             week: {
  5657.                 dow: 1,
  5658.                 doy: 7
  5659.             }
  5660.         }), a.defineLocale("km", {
  5661.             months: "មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),
  5662.             monthsShort: "មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),
  5663.             weekdays: "អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),
  5664.             weekdaysShort: "អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),
  5665.             weekdaysMin: "អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),
  5666.             longDateFormat: {
  5667.                 LT: "HH:mm",
  5668.                 LTS: "HH:mm:ss",
  5669.                 L: "DD/MM/YYYY",
  5670.                 LL: "D MMMM YYYY",
  5671.                 LLL: "D MMMM YYYY HH:mm",
  5672.                 LLLL: "dddd, D MMMM YYYY HH:mm"
  5673.             },
  5674.             calendar: {
  5675.                 sameDay: "[ថ្ងៃនៈ ម៉ោង] LT",
  5676.                 nextDay: "[ស្អែក ម៉ោង] LT",
  5677.                 nextWeek: "dddd [ម៉ោង] LT",
  5678.                 lastDay: "[ម្សិលមិញ ម៉ោង] LT",
  5679.                 lastWeek: "dddd [សប្តាហ៍មុន] [ម៉ោង] LT",
  5680.                 sameElse: "L"
  5681.             },
  5682.             relativeTime: {
  5683.                 future: "%sទៀត",
  5684.                 past: "%sមុន",
  5685.                 s: "ប៉ុន្មានវិនាទី",
  5686.                 m: "មួយនាទី",
  5687.                 mm: "%d នាទី",
  5688.                 h: "មួយម៉ោង",
  5689.                 hh: "%d ម៉ោង",
  5690.                 d: "មួយថ្ងៃ",
  5691.                 dd: "%d ថ្ងៃ",
  5692.                 M: "មួយខែ",
  5693.                 MM: "%d ខែ",
  5694.                 y: "មួយឆ្នាំ",
  5695.                 yy: "%d ឆ្នាំ"
  5696.             },
  5697.             week: {
  5698.                 dow: 1,
  5699.                 doy: 4
  5700.             }
  5701.         }), a.defineLocale("ko", {
  5702.             months: "1ì›”_2ì›”_3ì›”_4ì›”_5ì›”_6ì›”_7ì›”_8ì›”_9ì›”_10ì›”_11ì›”_12ì›”".split("_"),
  5703.             monthsShort: "1ì›”_2ì›”_3ì›”_4ì›”_5ì›”_6ì›”_7ì›”_8ì›”_9ì›”_10ì›”_11ì›”_12ì›”".split("_"),
  5704.             weekdays: "일요일_월요일_화요일_수요일_목요일_금요일_í† ìš”ì¼".split("_"),
  5705.             weekdaysShort: "일_ì›”_í™”_수_목_금_í† ".split("_"),
  5706.             weekdaysMin: "일_ì›”_í™”_수_목_금_í† ".split("_"),
  5707.             longDateFormat: {
  5708.                 LT: "A hì‹œ m분",
  5709.                 LTS: "A hì‹œ m분 sì´ˆ",
  5710.                 L: "YYYY.MM.DD",
  5711.                 LL: "YYYYë…„ MMMM D일",
  5712.                 LLL: "YYYYë…„ MMMM D일 A hì‹œ m분",
  5713.                 LLLL: "YYYYë…„ MMMM D일 dddd A hì‹œ m분"
  5714.             },
  5715.             calendar: {
  5716.                 sameDay: "오늘 LT",
  5717.                 nextDay: "내일 LT",
  5718.                 nextWeek: "dddd LT",
  5719.                 lastDay: "ì–´ì œ LT",
  5720.                 lastWeek: "지난주 dddd LT",
  5721.                 sameElse: "L"
  5722.             },
  5723.             relativeTime: {
  5724.                 future: "%s 후",
  5725.                 past: "%s ì „",
  5726.                 s: "몇초",
  5727.                 ss: "%dì´ˆ",
  5728.                 m: "일분",
  5729.                 mm: "%d분",
  5730.                 h: "한시간",
  5731.                 hh: "%d시간",
  5732.                 d: "하루",
  5733.                 dd: "%d일",
  5734.                 M: "한달",
  5735.                 MM: "%d달",
  5736.                 y: "일년",
  5737.                 yy: "%dë…„"
  5738.             },
  5739.             ordinalParse: /\d{1,2}일/,
  5740.             ordinal: "%d일",
  5741.             meridiemParse: /ì˜¤ì „|오후/,
  5742.             isPM: function(a) {
  5743.                 return "오후" === a
  5744.             },
  5745.             meridiem: function(a, b, c) {
  5746.                 return 12 > a ? "ì˜¤ì „" : "오후"
  5747.             }
  5748.         }), a.defineLocale("lb", {
  5749.             months: "Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),
  5750.             monthsShort: "Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),
  5751.             weekdays: "Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),
  5752.             weekdaysShort: "So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),
  5753.             weekdaysMin: "So_Mé_Dë_Më_Do_Fr_Sa".split("_"),
  5754.             longDateFormat: {
  5755.                 LT: "H:mm [Auer]",
  5756.                 LTS: "H:mm:ss [Auer]",
  5757.                 L: "DD.MM.YYYY",
  5758.                 LL: "D. MMMM YYYY",
  5759.                 LLL: "D. MMMM YYYY H:mm [Auer]",
  5760.                 LLLL: "dddd, D. MMMM YYYY H:mm [Auer]"
  5761.             },
  5762.             calendar: {
  5763.                 sameDay: "[Haut um] LT",
  5764.                 sameElse: "L",
  5765.                 nextDay: "[Muer um] LT",
  5766.                 nextWeek: "dddd [um] LT",
  5767.                 lastDay: "[Gëschter um] LT",
  5768.                 lastWeek: function() {
  5769.                     switch (this.day()) {
  5770.                         case 2:
  5771.                         case 4:
  5772.                             return "[Leschten] dddd [um] LT";
  5773.                         default:
  5774.                             return "[Leschte] dddd [um] LT"
  5775.                     }
  5776.                 }
  5777.             },
  5778.             relativeTime: {
  5779.                 future: D,
  5780.                 past: E,
  5781.                 s: "e puer Sekonnen",
  5782.                 m: C,
  5783.                 mm: "%d Minutten",
  5784.                 h: C,
  5785.                 hh: "%d Stonnen",
  5786.                 d: C,
  5787.                 dd: "%d Deeg",
  5788.                 M: C,
  5789.                 MM: "%d Méint",
  5790.                 y: C,
  5791.                 yy: "%d Joer"
  5792.             },
  5793.             ordinalParse: /\d{1,2}\./,
  5794.             ordinal: "%d.",
  5795.             week: {
  5796.                 dow: 1,
  5797.                 doy: 4
  5798.             }
  5799.         }), {
  5800.             m: "minutÄ—_minutÄ—s_minutÄ™",
  5801.             mm: "minutÄ—s_minučių_minutes",
  5802.             h: "valanda_valandos_valandÄ…",
  5803.             hh: "valandos_valandų_valandas",
  5804.             d: "diena_dienos_dienÄ…",
  5805.             dd: "dienos_dienų_dienas",
  5806.             M: "mÄ—nuo_mÄ—nesio_mÄ—nesį",
  5807.             MM: "mÄ—nesiai_mÄ—nesių_mÄ—nesius",
  5808.             y: "metai_metų_metus",
  5809.             yy: "metai_metų_metus"
  5810.         }),
  5811.         Ha = "sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_Å¡eÅ¡tadienis".split("_"),
  5812.         Ia = (a.defineLocale("lt", {
  5813.             months: H,
  5814.             monthsShort: "sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),
  5815.             weekdays: M,
  5816.             weekdaysShort: "Sek_Pir_Ant_Tre_Ket_Pen_Å eÅ¡".split("_"),
  5817.             weekdaysMin: "S_P_A_T_K_Pn_Å ".split("_"),
  5818.             longDateFormat: {
  5819.                 LT: "HH:mm",
  5820.                 LTS: "HH:mm:ss",
  5821.                 L: "YYYY-MM-DD",
  5822.                 LL: "YYYY [m.] MMMM D [d.]",
  5823.                 LLL: "YYYY [m.] MMMM D [d.], HH:mm [val.]",
  5824.                 LLLL: "YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]",
  5825.                 l: "YYYY-MM-DD",
  5826.                 ll: "YYYY [m.] MMMM D [d.]",
  5827.                 lll: "YYYY [m.] MMMM D [d.], HH:mm [val.]",
  5828.                 llll: "YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]"
  5829.             },
  5830.             calendar: {
  5831.                 sameDay: "[Å iandien] LT",
  5832.                 nextDay: "[Rytoj] LT",
  5833.                 nextWeek: "dddd LT",
  5834.                 lastDay: "[Vakar] LT",
  5835.                 lastWeek: "[PraÄ—jusį] dddd LT",
  5836.                 sameElse: "L"
  5837.             },
  5838.             relativeTime: {
  5839.                 future: "po %s",
  5840.                 past: "prieÅ¡ %s",
  5841.                 s: G,
  5842.                 m: I,
  5843.                 mm: L,
  5844.                 h: I,
  5845.                 hh: L,
  5846.                 d: I,
  5847.                 dd: L,
  5848.                 M: I,
  5849.                 MM: L,
  5850.                 y: I,
  5851.                 yy: L
  5852.             },
  5853.             ordinalParse: /\d{1,2}-oji/,
  5854.             ordinal: function(a) {
  5855.                 return a + "-oji"
  5856.             },
  5857.             week: {
  5858.                 dow: 1,
  5859.                 doy: 4
  5860.             }
  5861.         }), {
  5862.             m: "minÅ«tes_minÅ«tÄ“m_minÅ«te_minÅ«tes".split("_"),
  5863.             mm: "minÅ«tes_minÅ«tÄ“m_minÅ«te_minÅ«tes".split("_"),
  5864.             h: "stundas_stundām_stunda_stundas".split("_"),
  5865.             hh: "stundas_stundām_stunda_stundas".split("_"),
  5866.             d: "dienas_dienām_diena_dienas".split("_"),
  5867.             dd: "dienas_dienām_diena_dienas".split("_"),
  5868.             M: "mÄ“neÅ¡a_mÄ“neÅ¡iem_mÄ“nesis_mÄ“neÅ¡i".split("_"),
  5869.             MM: "mÄ“neÅ¡a_mÄ“neÅ¡iem_mÄ“nesis_mÄ“neÅ¡i".split("_"),
  5870.             y: "gada_gadiem_gads_gadi".split("_"),
  5871.             yy: "gada_gadiem_gads_gadi".split("_")
  5872.         }),
  5873.         Ja = (a.defineLocale("lv", {
  5874.             months: "janvāris_februāris_marts_aprÄ«lis_maijs_jÅ«nijs_jÅ«lijs_augusts_septembris_oktobris_novembris_decembris".split("_"),
  5875.             monthsShort: "jan_feb_mar_apr_mai_jÅ«n_jÅ«l_aug_sep_okt_nov_dec".split("_"),
  5876.             weekdays: "svÄ“tdiena_pirmdiena_otrdiena_treÅ¡diena_ceturtdiena_piektdiena_sestdiena".split("_"),
  5877.             weekdaysShort: "Sv_P_O_T_C_Pk_S".split("_"),
  5878.             weekdaysMin: "Sv_P_O_T_C_Pk_S".split("_"),
  5879.             longDateFormat: {
  5880.                 LT: "HH:mm",
  5881.                 LTS: "HH:mm:ss",
  5882.                 L: "DD.MM.YYYY.",
  5883.                 LL: "YYYY. [gada] D. MMMM",
  5884.                 LLL: "YYYY. [gada] D. MMMM, HH:mm",
  5885.                 LLLL: "YYYY. [gada] D. MMMM, dddd, HH:mm"
  5886.             },
  5887.             calendar: {
  5888.                 sameDay: "[Å odien pulksten] LT",
  5889.                 nextDay: "[RÄ«t pulksten] LT",
  5890.                 nextWeek: "dddd [pulksten] LT",
  5891.                 lastDay: "[Vakar pulksten] LT",
  5892.                 lastWeek: "[Pagājušā] dddd [pulksten] LT",
  5893.                 sameElse: "L"
  5894.             },
  5895.             relativeTime: {
  5896.                 future: "pÄ“c %s",
  5897.                 past: "pirms %s",
  5898.                 s: Q,
  5899.                 m: P,
  5900.                 mm: O,
  5901.                 h: P,
  5902.                 hh: O,
  5903.                 d: P,
  5904.                 dd: O,
  5905.                 M: P,
  5906.                 MM: O,
  5907.                 y: P,
  5908.                 yy: O
  5909.             },
  5910.             ordinalParse: /\d{1,2}\./,
  5911.             ordinal: "%d.",
  5912.             week: {
  5913.                 dow: 1,
  5914.                 doy: 4
  5915.             }
  5916.         }), {
  5917.             words: {
  5918.                 m: ["jedan minut", "jednog minuta"],
  5919.                 mm: ["minut", "minuta", "minuta"],
  5920.                 h: ["jedan sat", "jednog sata"],
  5921.                 hh: ["sat", "sata", "sati"],
  5922.                 dd: ["dan", "dana", "dana"],
  5923.                 MM: ["mjesec", "mjeseca", "mjeseci"],
  5924.                 yy: ["godina", "godine", "godina"]
  5925.             },
  5926.             correctGrammaticalCase: function(a, b) {
  5927.                 return 1 === a ? b[0] : a >= 2 && 4 >= a ? b[1] : b[2]
  5928.             },
  5929.             translate: function(a, b, c) {
  5930.                 var d = Ja.words[c];
  5931.                 return 1 === c.length ? b ? d[0] : d[1] : a + " " + Ja.correctGrammaticalCase(a, d)
  5932.             }
  5933.         }),
  5934.         Ka = (a.defineLocale("me", {
  5935.             months: ["januar", "februar", "mart", "april", "maj", "jun", "jul", "avgust", "septembar", "oktobar", "novembar", "decembar"],
  5936.             monthsShort: ["jan.", "feb.", "mar.", "apr.", "maj", "jun", "jul", "avg.", "sep.", "okt.", "nov.", "dec."],
  5937.             weekdays: ["nedjelja", "ponedjeljak", "utorak", "srijeda", "četvrtak", "petak", "subota"],
  5938.             weekdaysShort: ["ned.", "pon.", "uto.", "sri.", "čet.", "pet.", "sub."],
  5939.             weekdaysMin: ["ne", "po", "ut", "sr", "če", "pe", "su"],
  5940.             longDateFormat: {
  5941.                 LT: "H:mm",
  5942.                 LTS: "H:mm:ss",
  5943.                 L: "DD. MM. YYYY",
  5944.                 LL: "D. MMMM YYYY",
  5945.                 LLL: "D. MMMM YYYY H:mm",
  5946.                 LLLL: "dddd, D. MMMM YYYY H:mm"
  5947.             },
  5948.             calendar: {
  5949.                 sameDay: "[danas u] LT",
  5950.                 nextDay: "[sjutra u] LT",
  5951.                 nextWeek: function() {
  5952.                     switch (this.day()) {
  5953.                         case 0:
  5954.                             return "[u] [nedjelju] [u] LT";
  5955.                         case 3:
  5956.                             return "[u] [srijedu] [u] LT";
  5957.                         case 6:
  5958.                             return "[u] [subotu] [u] LT";
  5959.                         case 1:
  5960.                         case 2:
  5961.                         case 4:
  5962.                         case 5:
  5963.                             return "[u] dddd [u] LT"
  5964.                     }
  5965.                 },
  5966.                 lastDay: "[juče u] LT",
  5967.                 lastWeek: function() {
  5968.                     var a = ["[proÅ¡le] [nedjelje] [u] LT", "[proÅ¡log] [ponedjeljka] [u] LT", "[proÅ¡log] [utorka] [u] LT", "[proÅ¡le] [srijede] [u] LT", "[proÅ¡log] [četvrtka] [u] LT", "[proÅ¡log] [petka] [u] LT", "[proÅ¡le] [subote] [u] LT"];
  5969.                     return a[this.day()]
  5970.                 },
  5971.                 sameElse: "L"
  5972.             },
  5973.             relativeTime: {
  5974.                 future: "za %s",
  5975.                 past: "prije %s",
  5976.                 s: "nekoliko sekundi",
  5977.                 m: Ja.translate,
  5978.                 mm: Ja.translate,
  5979.                 h: Ja.translate,
  5980.                 hh: Ja.translate,
  5981.                 d: "dan",
  5982.                 dd: Ja.translate,
  5983.                 M: "mjesec",
  5984.                 MM: Ja.translate,
  5985.                 y: "godinu",
  5986.                 yy: Ja.translate
  5987.             },
  5988.             ordinalParse: /\d{1,2}\./,
  5989.             ordinal: "%d.",
  5990.             week: {
  5991.                 dow: 1,
  5992.                 doy: 7
  5993.             }
  5994.         }), a.defineLocale("mk", {
  5995.             months: "јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),
  5996.             monthsShort: "јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),
  5997.             weekdays: "недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),
  5998.             weekdaysShort: "нед_пон_вто_сре_чет_пет_саб".split("_"),
  5999.             weekdaysMin: "нe_пo_вт_ср_че_пе_сa".split("_"),
  6000.             longDateFormat: {
  6001.                 LT: "H:mm",
  6002.                 LTS: "H:mm:ss",
  6003.                 L: "D.MM.YYYY",
  6004.                 LL: "D MMMM YYYY",
  6005.                 LLL: "D MMMM YYYY H:mm",
  6006.                 LLLL: "dddd, D MMMM YYYY H:mm"
  6007.             },
  6008.             calendar: {
  6009.                 sameDay: "[Денес во] LT",
  6010.                 nextDay: "[Утре во] LT",
  6011.                 nextWeek: "dddd [во] LT",
  6012.                 lastDay: "[Вчера во] LT",
  6013.                 lastWeek: function() {
  6014.                     switch (this.day()) {
  6015.                         case 0:
  6016.                         case 3:
  6017.                         case 6:
  6018.                             return "[Во изминатата] dddd [во] LT";
  6019.                         case 1:
  6020.                         case 2:
  6021.                         case 4:
  6022.                         case 5:
  6023.                             return "[Во изминатиот] dddd [во] LT"
  6024.                     }
  6025.                 },
  6026.                 sameElse: "L"
  6027.             },
  6028.             relativeTime: {
  6029.                 future: "после %s",
  6030.                 past: "пред %s",
  6031.                 s: "неколку секунди",
  6032.                 m: "минута",
  6033.                 mm: "%d минути",
  6034.                 h: "час",
  6035.                 hh: "%d часа",
  6036.                 d: "ден",
  6037.                 dd: "%d дена",
  6038.                 M: "месец",
  6039.                 MM: "%d месеци",
  6040.                 y: "година",
  6041.                 yy: "%d години"
  6042.             },
  6043.             ordinalParse: /\d{1,2}-(ев|ен|ти|ви|ри|ми)/,
  6044.             ordinal: function(a) {
  6045.                 var b = a % 10,
  6046.                     c = a % 100;
  6047.                 return 0 === a ? a + "-ев" : 0 === c ? a + "-ен" : c > 10 && 20 > c ? a + "-ти" : 1 === b ? a + "-ви" : 2 === b ? a + "-ри" : 7 === b || 8 === b ? a + "-ми" : a + "-ти"
  6048.             },
  6049.             week: {
  6050.                 dow: 1,
  6051.                 doy: 7
  6052.             }
  6053.         }), a.defineLocale("ml", {
  6054.             months: "ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ".split("_"),
  6055.             monthsShort: "ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._à´“à´—._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.".split("_"),
  6056.             weekdays: "ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച".split("_"),
  6057.             weekdaysShort: "ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി".split("_"),
  6058.             weekdaysMin: "à´žà´¾_തി_ചൊ_ബു_വ്യാ_വെ_à´¶".split("_"),
  6059.             longDateFormat: {
  6060.                 LT: "A h:mm -നു",
  6061.                 LTS: "A h:mm:ss -നു",
  6062.                 L: "DD/MM/YYYY",
  6063.                 LL: "D MMMM YYYY",
  6064.                 LLL: "D MMMM YYYY, A h:mm -നു",
  6065.                 LLLL: "dddd, D MMMM YYYY, A h:mm -നു"
  6066.             },
  6067.             calendar: {
  6068.                 sameDay: "[ഇന്ന്] LT",
  6069.                 nextDay: "[നാളെ] LT",
  6070.                 nextWeek: "dddd, LT",
  6071.                 lastDay: "[ഇന്നലെ] LT",
  6072.                 lastWeek: "[കഴിഞ്ഞ] dddd, LT",
  6073.                 sameElse: "L"
  6074.             },
  6075.             relativeTime: {
  6076.                 future: "%s കഴിഞ്ഞ്",
  6077.                 past: "%s മുൻപ്",
  6078.                 s: "അൽപ നിമിഷങ്ങൾ",
  6079.                 m: "ഒരു മിനിറ്റ്",
  6080.                 mm: "%d മിനിറ്റ്",
  6081.                 h: "ഒരു മണിക്കൂർ",
  6082.                 hh: "%d മണിക്കൂർ",
  6083.                 d: "ഒരു ദിവസം",
  6084.                 dd: "%d ദിവസം",
  6085.                 M: "ഒരു മാസം",
  6086.                 MM: "%d മാസം",
  6087.                 y: "ഒരു വർഷം",
  6088.                 yy: "%d വർഷം"
  6089.             },
  6090.             meridiemParse: /രാത്രി|രാവിലെ|ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി/i,
  6091.             isPM: function(a) {
  6092.                 return /^(ഉച്ച കഴിഞ്ഞ്|വൈകുന്നേരം|രാത്രി)$/.test(a)
  6093.             },
  6094.             meridiem: function(a, b, c) {
  6095.                 return 4 > a ? "രാത്രി" : 12 > a ? "രാവിലെ" : 17 > a ? "ഉച്ച കഴിഞ്ഞ്" : 20 > a ? "വൈകുന്നേരം" : "രാത്രി"
  6096.             }
  6097.         }), {
  6098.             1: "१",
  6099.             2: "२",
  6100.             3: "३",
  6101.             4: "४",
  6102.             5: "५",
  6103.             6: "६",
  6104.             7: "७",
  6105.             8: "८",
  6106.             9: "९",
  6107.             0: "०"
  6108.         }),
  6109.         La = {
  6110.             "१": "1",
  6111.             "२": "2",
  6112.             "३": "3",
  6113.             "४": "4",
  6114.             "५": "5",
  6115.             "६": "6",
  6116.             "७": "7",
  6117.             "८": "8",
  6118.             "९": "9",
  6119.             "०": "0"
  6120.         },
  6121.         Ma = (a.defineLocale("mr", {
  6122.             months: "जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर".split("_"),
  6123.             monthsShort: "जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.".split("_"),
  6124.             weekdays: "रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार".split("_"),
  6125.             weekdaysShort: "रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि".split("_"),
  6126.             weekdaysMin: "र_सो_मं_बु_गु_शु_श".split("_"),
  6127.             longDateFormat: {
  6128.                 LT: "A h:mm वाजता",
  6129.                 LTS: "A h:mm:ss वाजता",
  6130.                 L: "DD/MM/YYYY",
  6131.                 LL: "D MMMM YYYY",
  6132.                 LLL: "D MMMM YYYY, A h:mm वाजता",
  6133.                 LLLL: "dddd, D MMMM YYYY, A h:mm वाजता"
  6134.             },
  6135.             calendar: {
  6136.                 sameDay: "[आज] LT",
  6137.                 nextDay: "[उद्या] LT",
  6138.                 nextWeek: "dddd, LT",
  6139.                 lastDay: "[काल] LT",
  6140.                 lastWeek: "[मागील] dddd, LT",
  6141.                 sameElse: "L"
  6142.             },
  6143.             relativeTime: {
  6144.                 future: "%s नंतर",
  6145.                 past: "%s पूर्वी",
  6146.                 s: "सेकंद",
  6147.                 m: "एक मिनिट",
  6148.                 mm: "%d मिनिटे",
  6149.                 h: "एक तास",
  6150.                 hh: "%d तास",
  6151.                 d: "एक दिवस",
  6152.                 dd: "%d दिवस",
  6153.                 M: "एक महिना",
  6154.                 MM: "%d महिने",
  6155.                 y: "एक वर्ष",
  6156.                 yy: "%d वर्षे"
  6157.             },
  6158.             preparse: function(a) {
  6159.                 return a.replace(/[१२३४५६७८९०]/g, function(a) {
  6160.                     return La[a]
  6161.                 })
  6162.             },
  6163.             postformat: function(a) {
  6164.                 return a.replace(/\d/g, function(a) {
  6165.                     return Ka[a]
  6166.                 })
  6167.             },
  6168.             meridiemParse: /रात्री|सकाळी|दुपारी|सायंकाळी/,
  6169.             meridiemHour: function(a, b) {
  6170.                 return 12 === a && (a = 0), "रात्री" === b ? 4 > a ? a : a + 12 : "सकाळी" === b ? a : "दुपारी" === b ? a >= 10 ? a : a + 12 : "सायंकाळी" === b ? a + 12 : void 0
  6171.             },
  6172.             meridiem: function(a, b, c) {
  6173.                 return 4 > a ? "रात्री" : 10 > a ? "सकाळी" : 17 > a ? "दुपारी" : 20 > a ? "सायंकाळी" : "रात्री"
  6174.             },
  6175.             week: {
  6176.                 dow: 0,
  6177.                 doy: 6
  6178.             }
  6179.         }), a.defineLocale("ms-my", {
  6180.             months: "Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),
  6181.             monthsShort: "Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),
  6182.             weekdays: "Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),
  6183.             weekdaysShort: "Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),
  6184.             weekdaysMin: "Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),
  6185.             longDateFormat: {
  6186.                 LT: "HH.mm",
  6187.                 LTS: "HH.mm.ss",
  6188.                 L: "DD/MM/YYYY",
  6189.                 LL: "D MMMM YYYY",
  6190.                 LLL: "D MMMM YYYY [pukul] HH.mm",
  6191.                 LLLL: "dddd, D MMMM YYYY [pukul] HH.mm"
  6192.             },
  6193.             meridiemParse: /pagi|tengahari|petang|malam/,
  6194.             meridiemHour: function(a, b) {
  6195.                 return 12 === a && (a = 0), "pagi" === b ? a : "tengahari" === b ? a >= 11 ? a : a + 12 : "petang" === b || "malam" === b ? a + 12 : void 0
  6196.             },
  6197.             meridiem: function(a, b, c) {
  6198.                 return 11 > a ? "pagi" : 15 > a ? "tengahari" : 19 > a ? "petang" : "malam"
  6199.             },
  6200.             calendar: {
  6201.                 sameDay: "[Hari ini pukul] LT",
  6202.                 nextDay: "[Esok pukul] LT",
  6203.                 nextWeek: "dddd [pukul] LT",
  6204.                 lastDay: "[Kelmarin pukul] LT",
  6205.                 lastWeek: "dddd [lepas pukul] LT",
  6206.                 sameElse: "L"
  6207.             },
  6208.             relativeTime: {
  6209.                 future: "dalam %s",
  6210.                 past: "%s yang lepas",
  6211.                 s: "beberapa saat",
  6212.                 m: "seminit",
  6213.                 mm: "%d minit",
  6214.                 h: "sejam",
  6215.                 hh: "%d jam",
  6216.                 d: "sehari",
  6217.                 dd: "%d hari",
  6218.                 M: "sebulan",
  6219.                 MM: "%d bulan",
  6220.                 y: "setahun",
  6221.                 yy: "%d tahun"
  6222.             },
  6223.             week: {
  6224.                 dow: 1,
  6225.                 doy: 7
  6226.             }
  6227.         }), a.defineLocale("ms", {
  6228.             months: "Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),
  6229.             monthsShort: "Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),
  6230.             weekdays: "Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),
  6231.             weekdaysShort: "Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),
  6232.             weekdaysMin: "Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),
  6233.             longDateFormat: {
  6234.                 LT: "HH.mm",
  6235.                 LTS: "HH.mm.ss",
  6236.                 L: "DD/MM/YYYY",
  6237.                 LL: "D MMMM YYYY",
  6238.                 LLL: "D MMMM YYYY [pukul] HH.mm",
  6239.                 LLLL: "dddd, D MMMM YYYY [pukul] HH.mm"
  6240.             },
  6241.             meridiemParse: /pagi|tengahari|petang|malam/,
  6242.             meridiemHour: function(a, b) {
  6243.                 return 12 === a && (a = 0), "pagi" === b ? a : "tengahari" === b ? a >= 11 ? a : a + 12 : "petang" === b || "malam" === b ? a + 12 : void 0
  6244.             },
  6245.             meridiem: function(a, b, c) {
  6246.                 return 11 > a ? "pagi" : 15 > a ? "tengahari" : 19 > a ? "petang" : "malam"
  6247.             },
  6248.             calendar: {
  6249.                 sameDay: "[Hari ini pukul] LT",
  6250.                 nextDay: "[Esok pukul] LT",
  6251.                 nextWeek: "dddd [pukul] LT",
  6252.                 lastDay: "[Kelmarin pukul] LT",
  6253.                 lastWeek: "dddd [lepas pukul] LT",
  6254.                 sameElse: "L"
  6255.             },
  6256.             relativeTime: {
  6257.                 future: "dalam %s",
  6258.                 past: "%s yang lepas",
  6259.                 s: "beberapa saat",
  6260.                 m: "seminit",
  6261.                 mm: "%d minit",
  6262.                 h: "sejam",
  6263.                 hh: "%d jam",
  6264.                 d: "sehari",
  6265.                 dd: "%d hari",
  6266.                 M: "sebulan",
  6267.                 MM: "%d bulan",
  6268.                 y: "setahun",
  6269.                 yy: "%d tahun"
  6270.             },
  6271.             week: {
  6272.                 dow: 1,
  6273.                 doy: 7
  6274.             }
  6275.         }), {
  6276.             1: "၁",
  6277.             2: "၂",
  6278.             3: "၃",
  6279.             4: "၄",
  6280.             5: "၅",
  6281.             6: "၆",
  6282.             7: "၇",
  6283.             8: "၈",
  6284.             9: "၉",
  6285.             0: "၀"
  6286.         }),
  6287.         Na = {
  6288.             "၁": "1",
  6289.             "၂": "2",
  6290.             "၃": "3",
  6291.             "၄": "4",
  6292.             "၅": "5",
  6293.             "၆": "6",
  6294.             "၇": "7",
  6295.             "၈": "8",
  6296.             "၉": "9",
  6297.             "၀": "0"
  6298.         },
  6299.         Oa = (a.defineLocale("my", {
  6300.             months: "ဇန်နဝါရီ_ဖေဖော်ဝါရီ_မတ်_ဧပြီ_မေ_ဇွန်_ဇူလိုင်_သြဂုတ်_စက်တင်ဘာ_အောက်တိုဘာ_နိုဝင်ဘာ_ဒီဇင်ဘာ".split("_"),
  6301.             monthsShort: "ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_လိုင်_သြ_စက်_အောက်_နို_ဒီ".split("_"),
  6302.             weekdays: "တနင်္ဂနွေ_တနင်္လာ_အင်္ဂါ_ဗုဒ္ဓဟူး_ကြာသပတေး_သောကြာ_စနေ".split("_"),
  6303.             weekdaysShort: "နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),
  6304.             weekdaysMin: "နွေ_လာ_ဂါ_ဟူး_ကြာ_သော_နေ".split("_"),
  6305.             longDateFormat: {
  6306.                 LT: "HH:mm",
  6307.                 LTS: "HH:mm:ss",
  6308.                 L: "DD/MM/YYYY",
  6309.                 LL: "D MMMM YYYY",
  6310.                 LLL: "D MMMM YYYY HH:mm",
  6311.                 LLLL: "dddd D MMMM YYYY HH:mm"
  6312.             },
  6313.             calendar: {
  6314.                 sameDay: "[ယနေ.] LT [မှာ]",
  6315.                 nextDay: "[မနက်ဖြန်] LT [မှာ]",
  6316.                 nextWeek: "dddd LT [မှာ]",
  6317.                 lastDay: "[မနေ.က] LT [မှာ]",
  6318.                 lastWeek: "[ပြီးခဲ့သော] dddd LT [မှာ]",
  6319.                 sameElse: "L"
  6320.             },
  6321.             relativeTime: {
  6322.                 future: "လာမည့် %s မှာ",
  6323.                 past: "လွန်ခဲ့သော %s က",
  6324.                 s: "စက္ကန်.အနည်းငယ်",
  6325.                 m: "တစ်မိနစ်",
  6326.                 mm: "%d မိနစ်",
  6327.                 h: "တစ်နာရီ",
  6328.                 hh: "%d နာရီ",
  6329.                 d: "တစ်ရက်",
  6330.                 dd: "%d ရက်",
  6331.                 M: "တစ်လ",
  6332.                 MM: "%d လ",
  6333.                 y: "တစ်နှစ်",
  6334.                 yy: "%d နှစ်"
  6335.             },
  6336.             preparse: function(a) {
  6337.                 return a.replace(/[၁၂၃၄၅၆၇၈၉၀]/g, function(a) {
  6338.                     return Na[a]
  6339.                 })
  6340.             },
  6341.             postformat: function(a) {
  6342.                 return a.replace(/\d/g, function(a) {
  6343.                     return Ma[a]
  6344.                 })
  6345.             },
  6346.             week: {
  6347.                 dow: 1,
  6348.                 doy: 4
  6349.             }
  6350.         }), a.defineLocale("nb", {
  6351.             months: "januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),
  6352.             monthsShort: "jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),
  6353.             weekdays: "søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),
  6354.             weekdaysShort: "søn_man_tirs_ons_tors_fre_lør".split("_"),
  6355.             weekdaysMin: "sø_ma_ti_on_to_fr_lø".split("_"),
  6356.             longDateFormat: {
  6357.                 LT: "H.mm",
  6358.                 LTS: "H.mm.ss",
  6359.                 L: "DD.MM.YYYY",
  6360.                 LL: "D. MMMM YYYY",
  6361.                 LLL: "D. MMMM YYYY [kl.] H.mm",
  6362.                 LLLL: "dddd D. MMMM YYYY [kl.] H.mm"
  6363.             },
  6364.             calendar: {
  6365.                 sameDay: "[i dag kl.] LT",
  6366.                 nextDay: "[i morgen kl.] LT",
  6367.                 nextWeek: "dddd [kl.] LT",
  6368.                 lastDay: "[i gÃ¥r kl.] LT",
  6369.                 lastWeek: "[forrige] dddd [kl.] LT",
  6370.                 sameElse: "L"
  6371.             },
  6372.             relativeTime: {
  6373.                 future: "om %s",
  6374.                 past: "for %s siden",
  6375.                 s: "noen sekunder",
  6376.                 m: "ett minutt",
  6377.                 mm: "%d minutter",
  6378.                 h: "en time",
  6379.                 hh: "%d timer",
  6380.                 d: "en dag",
  6381.                 dd: "%d dager",
  6382.                 M: "en mÃ¥ned",
  6383.                 MM: "%d mÃ¥neder",
  6384.                 y: "ett Ã¥r",
  6385.                 yy: "%d Ã¥r"
  6386.             },
  6387.             ordinalParse: /\d{1,2}\./,
  6388.             ordinal: "%d.",
  6389.             week: {
  6390.                 dow: 1,
  6391.                 doy: 4
  6392.             }
  6393.         }), {
  6394.             1: "१",
  6395.             2: "२",
  6396.             3: "३",
  6397.             4: "४",
  6398.             5: "५",
  6399.             6: "६",
  6400.             7: "७",
  6401.             8: "८",
  6402.             9: "९",
  6403.             0: "०"
  6404.         }),
  6405.         Pa = {
  6406.             "१": "1",
  6407.             "२": "2",
  6408.             "३": "3",
  6409.             "४": "4",
  6410.             "५": "5",
  6411.             "६": "6",
  6412.             "७": "7",
  6413.             "८": "8",
  6414.             "९": "9",
  6415.             "०": "0"
  6416.         },
  6417.         Qa = (a.defineLocale("ne", {
  6418.             months: "जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर".split("_"),
  6419.             monthsShort: "जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.".split("_"),
  6420.             weekdays: "आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार".split("_"),
  6421.             weekdaysShort: "आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.".split("_"),
  6422.             weekdaysMin: "आइ._सो._मङ्_बु._बि._शु._श.".split("_"),
  6423.             longDateFormat: {
  6424.                 LT: "Aको h:mm बजे",
  6425.                 LTS: "Aको h:mm:ss बजे",
  6426.                 L: "DD/MM/YYYY",
  6427.                 LL: "D MMMM YYYY",
  6428.                 LLL: "D MMMM YYYY, Aको h:mm बजे",
  6429.                 LLLL: "dddd, D MMMM YYYY, Aको h:mm बजे"
  6430.             },
  6431.             preparse: function(a) {
  6432.                 return a.replace(/[१२३४५६७८९०]/g, function(a) {
  6433.                     return Pa[a]
  6434.                 })
  6435.             },
  6436.             postformat: function(a) {
  6437.                 return a.replace(/\d/g, function(a) {
  6438.                     return Oa[a]
  6439.                 })
  6440.             },
  6441.             meridiemParse: /राती|बिहान|दिउँसो|बेलुका|साँझ|राती/,
  6442.             meridiemHour: function(a, b) {
  6443.                 return 12 === a && (a = 0), "राती" === b ? 3 > a ? a : a + 12 : "बिहान" === b ? a : "दिउँसो" === b ? a >= 10 ? a : a + 12 : "बेलुका" === b || "साँझ" === b ? a + 12 : void 0
  6444.             },
  6445.             meridiem: function(a, b, c) {
  6446.                 return 3 > a ? "राती" : 10 > a ? "बिहान" : 15 > a ? "दिउँसो" : 18 > a ? "बेलुका" : 20 > a ? "साँझ" : "राती"
  6447.             },
  6448.             calendar: {
  6449.                 sameDay: "[आज] LT",
  6450.                 nextDay: "[भोली] LT",
  6451.                 nextWeek: "[आउँदो] dddd[,] LT",
  6452.                 lastDay: "[हिजो] LT",
  6453.                 lastWeek: "[गएको] dddd[,] LT",
  6454.                 sameElse: "L"
  6455.             },
  6456.             relativeTime: {
  6457.                 future: "%sमा",
  6458.                 past: "%s अगाडी",
  6459.                 s: "केही समय",
  6460.                 m: "एक मिनेट",
  6461.                 mm: "%d मिनेट",
  6462.                 h: "एक घण्टा",
  6463.                 hh: "%d घण्टा",
  6464.                 d: "एक दिन",
  6465.                 dd: "%d दिन",
  6466.                 M: "एक महिना",
  6467.                 MM: "%d महिना",
  6468.                 y: "एक बर्ष",
  6469.                 yy: "%d बर्ष"
  6470.             },
  6471.             week: {
  6472.                 dow: 1,
  6473.                 doy: 7
  6474.             }
  6475.         }), "jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_")),
  6476.         Ra = "jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_"),
  6477.         Sa = (a.defineLocale("nl", {
  6478.             months: "januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),
  6479.             monthsShort: function(a, b) {
  6480.                 return /-MMM-/.test(b) ? Ra[a.month()] : Qa[a.month()]
  6481.             },
  6482.             weekdays: "zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),
  6483.             weekdaysShort: "zo._ma._di._wo._do._vr._za.".split("_"),
  6484.             weekdaysMin: "Zo_Ma_Di_Wo_Do_Vr_Za".split("_"),
  6485.             longDateFormat: {
  6486.                 LT: "HH:mm",
  6487.                 LTS: "HH:mm:ss",
  6488.                 L: "DD-MM-YYYY",
  6489.                 LL: "D MMMM YYYY",
  6490.                 LLL: "D MMMM YYYY HH:mm",
  6491.                 LLLL: "dddd D MMMM YYYY HH:mm"
  6492.             },
  6493.             calendar: {
  6494.                 sameDay: "[vandaag om] LT",
  6495.                 nextDay: "[morgen om] LT",
  6496.                 nextWeek: "dddd [om] LT",
  6497.                 lastDay: "[gisteren om] LT",
  6498.                 lastWeek: "[afgelopen] dddd [om] LT",
  6499.                 sameElse: "L"
  6500.             },
  6501.             relativeTime: {
  6502.                 future: "over %s",
  6503.                 past: "%s geleden",
  6504.                 s: "een paar seconden",
  6505.                 m: "één minuut",
  6506.                 mm: "%d minuten",
  6507.                 h: "één uur",
  6508.                 hh: "%d uur",
  6509.                 d: "één dag",
  6510.                 dd: "%d dagen",
  6511.                 M: "één maand",
  6512.                 MM: "%d maanden",
  6513.                 y: "één jaar",
  6514.                 yy: "%d jaar"
  6515.             },
  6516.             ordinalParse: /\d{1,2}(ste|de)/,
  6517.             ordinal: function(a) {
  6518.                 return a + (1 === a || 8 === a || a >= 20 ? "ste" : "de")
  6519.             },
  6520.             week: {
  6521.                 dow: 1,
  6522.                 doy: 4
  6523.             }
  6524.         }), a.defineLocale("nn", {
  6525.             months: "januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),
  6526.             monthsShort: "jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),
  6527.             weekdays: "sundag_mÃ¥ndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),
  6528.             weekdaysShort: "sun_mÃ¥n_tys_ons_tor_fre_lau".split("_"),
  6529.             weekdaysMin: "su_mÃ¥_ty_on_to_fr_lø".split("_"),
  6530.             longDateFormat: {
  6531.                 LT: "HH:mm",
  6532.                 LTS: "HH:mm:ss",
  6533.                 L: "DD.MM.YYYY",
  6534.                 LL: "D MMMM YYYY",
  6535.                 LLL: "D MMMM YYYY HH:mm",
  6536.                 LLLL: "dddd D MMMM YYYY HH:mm"
  6537.             },
  6538.             calendar: {
  6539.                 sameDay: "[I dag klokka] LT",
  6540.                 nextDay: "[I morgon klokka] LT",
  6541.                 nextWeek: "dddd [klokka] LT",
  6542.                 lastDay: "[I gÃ¥r klokka] LT",
  6543.                 lastWeek: "[FøregÃ¥ande] dddd [klokka] LT",
  6544.                 sameElse: "L"
  6545.             },
  6546.             relativeTime: {
  6547.                 future: "om %s",
  6548.                 past: "for %s sidan",
  6549.                 s: "nokre sekund",
  6550.                 m: "eit minutt",
  6551.                 mm: "%d minutt",
  6552.                 h: "ein time",
  6553.                 hh: "%d timar",
  6554.                 d: "ein dag",
  6555.                 dd: "%d dagar",
  6556.                 M: "ein mÃ¥nad",
  6557.                 MM: "%d mÃ¥nader",
  6558.                 y: "eit Ã¥r",
  6559.                 yy: "%d Ã¥r"
  6560.             },
  6561.             ordinalParse: /\d{1,2}\./,
  6562.             ordinal: "%d.",
  6563.             week: {
  6564.                 dow: 1,
  6565.                 doy: 4
  6566.             }
  6567.         }), "styczeÅ„_luty_marzec_kwiecieÅ„_maj_czerwiec_lipiec_sierpieÅ„_wrzesieÅ„_październik_listopad_grudzieÅ„".split("_")),
  6568.         Ta = "stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_wrzeÅ›nia_października_listopada_grudnia".split("_"),
  6569.         Ua = (a.defineLocale("pl", {
  6570.             months: function(a, b) {
  6571.                 return "" === b ? "(" + Ta[a.month()] + "|" + Sa[a.month()] + ")" : /D MMMM/.test(b) ? Ta[a.month()] : Sa[a.month()]
  6572.             },
  6573.             monthsShort: "sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),
  6574.             weekdays: "niedziela_poniedziaÅ‚ek_wtorek_Å›roda_czwartek_piÄ…tek_sobota".split("_"),
  6575.             weekdaysShort: "nie_pon_wt_Å›r_czw_pt_sb".split("_"),
  6576.             weekdaysMin: "N_Pn_Wt_Åšr_Cz_Pt_So".split("_"),
  6577.             longDateFormat: {
  6578.                 LT: "HH:mm",
  6579.                 LTS: "HH:mm:ss",
  6580.                 L: "DD.MM.YYYY",
  6581.                 LL: "D MMMM YYYY",
  6582.                 LLL: "D MMMM YYYY HH:mm",
  6583.                 LLLL: "dddd, D MMMM YYYY HH:mm"
  6584.             },
  6585.             calendar: {
  6586.                 sameDay: "[DziÅ› o] LT",
  6587.                 nextDay: "[Jutro o] LT",
  6588.                 nextWeek: "[W] dddd [o] LT",
  6589.                 lastDay: "[Wczoraj o] LT",
  6590.                 lastWeek: function() {
  6591.                     switch (this.day()) {
  6592.                         case 0:
  6593.                             return "[W zeszÅ‚Ä… niedzielÄ™ o] LT";
  6594.                         case 3:
  6595.                             return "[W zeszÅ‚Ä… Å›rodÄ™ o] LT";
  6596.                         case 6:
  6597.                             return "[W zeszÅ‚Ä… sobotÄ™ o] LT";
  6598.                         default:
  6599.                             return "[W zeszÅ‚y] dddd [o] LT"
  6600.                     }
  6601.                 },
  6602.                 sameElse: "L"
  6603.             },
  6604.             relativeTime: {
  6605.                 future: "za %s",
  6606.                 past: "%s temu",
  6607.                 s: "kilka sekund",
  6608.                 m: S,
  6609.                 mm: S,
  6610.                 h: S,
  6611.                 hh: S,
  6612.                 d: "1 dzieÅ„",
  6613.                 dd: "%d dni",
  6614.                 M: "miesiÄ…c",
  6615.                 MM: S,
  6616.                 y: "rok",
  6617.                 yy: S
  6618.             },
  6619.             ordinalParse: /\d{1,2}\./,
  6620.             ordinal: "%d.",
  6621.             week: {
  6622.                 dow: 1,
  6623.                 doy: 4
  6624.             }
  6625.         }), a.defineLocale("pt-br", {
  6626.             months: "Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),
  6627.             monthsShort: "Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),
  6628.             weekdays: "Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado".split("_"),
  6629.             weekdaysShort: "Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),
  6630.             weekdaysMin: "Dom_2ª_3ª_4ª_5ª_6ª_Sáb".split("_"),
  6631.             longDateFormat: {
  6632.                 LT: "HH:mm",
  6633.                 LTS: "HH:mm:ss",
  6634.                 L: "DD/MM/YYYY",
  6635.                 LL: "D [de] MMMM [de] YYYY",
  6636.                 LLL: "D [de] MMMM [de] YYYY [Ã s] HH:mm",
  6637.                 LLLL: "dddd, D [de] MMMM [de] YYYY [Ã s] HH:mm"
  6638.             },
  6639.             calendar: {
  6640.                 sameDay: "[Hoje à s] LT",
  6641.                 nextDay: "[Amanhã à s] LT",
  6642.                 nextWeek: "dddd [Ã s] LT",
  6643.                 lastDay: "[Ontem à s] LT",
  6644.                 lastWeek: function() {
  6645.                     return 0 === this.day() || 6 === this.day() ? "[Último] dddd [à s] LT" : "[Última] dddd [à s] LT"
  6646.                 },
  6647.                 sameElse: "L"
  6648.             },
  6649.             relativeTime: {
  6650.                 future: "em %s",
  6651.                 past: "%s atrás",
  6652.                 s: "poucos segundos",
  6653.                 m: "um minuto",
  6654.                 mm: "%d minutos",
  6655.                 h: "uma hora",
  6656.                 hh: "%d horas",
  6657.                 d: "um dia",
  6658.                 dd: "%d dias",
  6659.                 M: "um mês",
  6660.                 MM: "%d meses",
  6661.                 y: "um ano",
  6662.                 yy: "%d anos"
  6663.             },
  6664.             ordinalParse: /\d{1,2}º/,
  6665.             ordinal: "%dº"
  6666.         }), a.defineLocale("pt", {
  6667.             months: "Janeiro_Fevereiro_Março_Abril_Maio_Junho_Julho_Agosto_Setembro_Outubro_Novembro_Dezembro".split("_"),
  6668.             monthsShort: "Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez".split("_"),
  6669.             weekdays: "Domingo_Segunda-Feira_Terça-Feira_Quarta-Feira_Quinta-Feira_Sexta-Feira_Sábado".split("_"),
  6670.             weekdaysShort: "Dom_Seg_Ter_Qua_Qui_Sex_Sáb".split("_"),
  6671.             weekdaysMin: "Dom_2ª_3ª_4ª_5ª_6ª_Sáb".split("_"),
  6672.             longDateFormat: {
  6673.                 LT: "HH:mm",
  6674.                 LTS: "HH:mm:ss",
  6675.                 L: "DD/MM/YYYY",
  6676.                 LL: "D [de] MMMM [de] YYYY",
  6677.                 LLL: "D [de] MMMM [de] YYYY HH:mm",
  6678.                 LLLL: "dddd, D [de] MMMM [de] YYYY HH:mm"
  6679.             },
  6680.             calendar: {
  6681.                 sameDay: "[Hoje à s] LT",
  6682.                 nextDay: "[Amanhã à s] LT",
  6683.                 nextWeek: "dddd [Ã s] LT",
  6684.                 lastDay: "[Ontem à s] LT",
  6685.                 lastWeek: function() {
  6686.                     return 0 === this.day() || 6 === this.day() ? "[Último] dddd [à s] LT" : "[Última] dddd [à s] LT"
  6687.                 },
  6688.                 sameElse: "L"
  6689.             },
  6690.             relativeTime: {
  6691.                 future: "em %s",
  6692.                 past: "há %s",
  6693.                 s: "segundos",
  6694.                 m: "um minuto",
  6695.                 mm: "%d minutos",
  6696.                 h: "uma hora",
  6697.                 hh: "%d horas",
  6698.                 d: "um dia",
  6699.                 dd: "%d dias",
  6700.                 M: "um mês",
  6701.                 MM: "%d meses",
  6702.                 y: "um ano",
  6703.                 yy: "%d anos"
  6704.             },
  6705.             ordinalParse: /\d{1,2}º/,
  6706.             ordinal: "%dº",
  6707.             week: {
  6708.                 dow: 1,
  6709.                 doy: 4
  6710.             }
  6711.         }), a.defineLocale("ro", {
  6712.             months: "ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),
  6713.             monthsShort: "ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),
  6714.             weekdays: "duminică_luni_marÈ›i_miercuri_joi_vineri_sâmbătă".split("_"),
  6715.             weekdaysShort: "Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),
  6716.             weekdaysMin: "Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),
  6717.             longDateFormat: {
  6718.                 LT: "H:mm",
  6719.                 LTS: "H:mm:ss",
  6720.                 L: "DD.MM.YYYY",
  6721.                 LL: "D MMMM YYYY",
  6722.                 LLL: "D MMMM YYYY H:mm",
  6723.                 LLLL: "dddd, D MMMM YYYY H:mm"
  6724.             },
  6725.             calendar: {
  6726.                 sameDay: "[azi la] LT",
  6727.                 nextDay: "[mâine la] LT",
  6728.                 nextWeek: "dddd [la] LT",
  6729.                 lastDay: "[ieri la] LT",
  6730.                 lastWeek: "[fosta] dddd [la] LT",
  6731.                 sameElse: "L"
  6732.             },
  6733.             relativeTime: {
  6734.                 future: "peste %s",
  6735.                 past: "%s în urmă",
  6736.                 s: "câteva secunde",
  6737.                 m: "un minut",
  6738.                 mm: T,
  6739.                 h: "o oră",
  6740.                 hh: T,
  6741.                 d: "o zi",
  6742.                 dd: T,
  6743.                 M: "o lună",
  6744.                 MM: T,
  6745.                 y: "un an",
  6746.                 yy: T
  6747.             },
  6748.             week: {
  6749.                 dow: 1,
  6750.                 doy: 7
  6751.             }
  6752.         }), a.defineLocale("ru", {
  6753.             months: W,
  6754.             monthsShort: X,
  6755.             weekdays: Y,
  6756.             weekdaysShort: "вс_пн_вт_ср_чт_пт_сб".split("_"),
  6757.             weekdaysMin: "вс_пн_вт_ср_чт_пт_сб".split("_"),
  6758.             monthsParse: [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[й|я]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i],
  6759.             longDateFormat: {
  6760.                 LT: "HH:mm",
  6761.                 LTS: "HH:mm:ss",
  6762.                 L: "DD.MM.YYYY",
  6763.                 LL: "D MMMM YYYY г.",
  6764.                 LLL: "D MMMM YYYY г., HH:mm",
  6765.                 LLLL: "dddd, D MMMM YYYY г., HH:mm"
  6766.             },
  6767.             calendar: {
  6768.                 sameDay: "[Сегодня в] LT",
  6769.                 nextDay: "[Завтра в] LT",
  6770.                 lastDay: "[Вчера в] LT",
  6771.                 nextWeek: function() {
  6772.                     return 2 === this.day() ? "[Во] dddd [в] LT" : "[Ð’] dddd [в] LT"
  6773.                 },
  6774.                 lastWeek: function(a) {
  6775.                     if (a.week() === this.week()) return 2 === this.day() ? "[Во] dddd [в] LT" : "[Ð’] dddd [в] LT";
  6776.                     switch (this.day()) {
  6777.                         case 0:
  6778.                             return "[Ð’ прошлое] dddd [в] LT";
  6779.                         case 1:
  6780.                         case 2:
  6781.                         case 4:
  6782.                             return "[Ð’ прошлый] dddd [в] LT";
  6783.                         case 3:
  6784.                         case 5:
  6785.                         case 6:
  6786.                             return "[Ð’ прошлую] dddd [в] LT"
  6787.                     }
  6788.                 },
  6789.                 sameElse: "L"
  6790.             },
  6791.             relativeTime: {
  6792.                 future: "через %s",
  6793.                 past: "%s назад",
  6794.                 s: "несколько секунд",
  6795.                 m: V,
  6796.                 mm: V,
  6797.                 h: "час",
  6798.                 hh: V,
  6799.                 d: "день",
  6800.                 dd: V,
  6801.                 M: "месяц",
  6802.                 MM: V,
  6803.                 y: "год",
  6804.                 yy: V
  6805.             },
  6806.             meridiemParse: /ночи|утра|дня|вечера/i,
  6807.             isPM: function(a) {
  6808.                 return /^(дня|вечера)$/.test(a)
  6809.             },
  6810.             meridiem: function(a, b, c) {
  6811.                 return 4 > a ? "ночи" : 12 > a ? "утра" : 17 > a ? "дня" : "вечера"
  6812.             },
  6813.             ordinalParse: /\d{1,2}-(й|го|я)/,
  6814.             ordinal: function(a, b) {
  6815.                 switch (b) {
  6816.                     case "M":
  6817.                     case "d":
  6818.                     case "DDD":
  6819.                         return a + "-й";
  6820.                     case "D":
  6821.                         return a + "-го";
  6822.                     case "w":
  6823.                     case "W":
  6824.                         return a + "-я";
  6825.                     default:
  6826.                         return a
  6827.                 }
  6828.             },
  6829.             week: {
  6830.                 dow: 1,
  6831.                 doy: 7
  6832.             }
  6833.         }), a.defineLocale("si", {
  6834.             months: "ජනවාරි_පෙබරවාරි_මාර්තු_අප්‍රේල්_මැයි_ජූනි_ජූලි_අගෝස්තු_සැප්තැම්බර්_ඔක්තෝබර්_නොවැම්බර්_දෙසැම්බර්".split("_"),
  6835.             monthsShort: "ජන_පෙබ_මාර්_අප්_මැයි_ජූනි_ජූලි_අගෝ_සැප්_ඔක්_නොවැ_දෙසැ".split("_"),
  6836.             weekdays: "ඉරිදා_සඳුදා_අඟහරුවාදා_බදාදා_බ්‍රහස්පතින්දා_සිකුරාදා_සෙනසුරාදා".split("_"),
  6837.             weekdaysShort: "ඉරි_සඳු_අඟ_බදා_බ්‍රහ_සිකු_සෙන".split("_"),
  6838.             weekdaysMin: "ඉ_à·ƒ_අ_බ_බ්‍ර_සි_සෙ".split("_"),
  6839.             longDateFormat: {
  6840.                 LT: "a h:mm",
  6841.                 LTS: "a h:mm:ss",
  6842.                 L: "YYYY/MM/DD",
  6843.                 LL: "YYYY MMMM D",
  6844.                 LLL: "YYYY MMMM D, a h:mm",
  6845.                 LLLL: "YYYY MMMM D [වැනි] dddd, a h:mm:ss"
  6846.             },
  6847.             calendar: {
  6848.                 sameDay: "[අද] LT[ට]",
  6849.                 nextDay: "[හෙට] LT[ට]",
  6850.                 nextWeek: "dddd LT[ට]",
  6851.                 lastDay: "[ඊයේ] LT[ට]",
  6852.                 lastWeek: "[පසුගිය] dddd LT[ට]",
  6853.                 sameElse: "L"
  6854.             },
  6855.             relativeTime: {
  6856.                 future: "%sකින්",
  6857.                 past: "%sකට පෙර",
  6858.                 s: "තත්පර කිහිපය",
  6859.                 m: "මිනිත්තුව",
  6860.                 mm: "මිනිත්තු %d",
  6861.                 h: "පැය",
  6862.                 hh: "පැය %d",
  6863.                 d: "දිනය",
  6864.                 dd: "දින %d",
  6865.                 M: "මාසය",
  6866.                 MM: "මාස %d",
  6867.                 y: "වසර",
  6868.                 yy: "වසර %d"
  6869.             },
  6870.             ordinalParse: /\d{1,2} වැනි/,
  6871.             ordinal: function(a) {
  6872.                 return a + " වැනි"
  6873.             },
  6874.             meridiem: function(a, b, c) {
  6875.                 return a > 11 ? c ? "ප.à·€." : "පස් වරු" : c ? "පෙ.à·€." : "පෙර වරු"
  6876.             }
  6877.         }), "január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_")),
  6878.         Va = "jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_"),
  6879.         Wa = (a.defineLocale("sk", {
  6880.             months: Ua,
  6881.             monthsShort: Va,
  6882.             monthsParse: function(a, b) {
  6883.                 var c, d = [];
  6884.                 for (c = 0; 12 > c; c++) d[c] = new RegExp("^" + a[c] + "$|^" + b[c] + "$", "i");
  6885.                 return d
  6886.             }(Ua, Va),
  6887.             weekdays: "nedeľa_pondelok_utorok_streda_Å¡tvrtok_piatok_sobota".split("_"),
  6888.             weekdaysShort: "ne_po_ut_st_Å¡t_pi_so".split("_"),
  6889.             weekdaysMin: "ne_po_ut_st_Å¡t_pi_so".split("_"),
  6890.             longDateFormat: {
  6891.                 LT: "H:mm",
  6892.                 LTS: "H:mm:ss",
  6893.                 L: "DD.MM.YYYY",
  6894.                 LL: "D. MMMM YYYY",
  6895.                 LLL: "D. MMMM YYYY H:mm",
  6896.                 LLLL: "dddd D. MMMM YYYY H:mm"
  6897.             },
  6898.             calendar: {
  6899.                 sameDay: "[dnes o] LT",
  6900.                 nextDay: "[zajtra o] LT",
  6901.                 nextWeek: function() {
  6902.                     switch (this.day()) {
  6903.                         case 0:
  6904.                             return "[v nedeľu o] LT";
  6905.                         case 1:
  6906.                         case 2:
  6907.                             return "[v] dddd [o] LT";
  6908.                         case 3:
  6909.                             return "[v stredu o] LT";
  6910.                         case 4:
  6911.                             return "[vo Å¡tvrtok o] LT";
  6912.                         case 5:
  6913.                             return "[v piatok o] LT";
  6914.                         case 6:
  6915.                             return "[v sobotu o] LT"
  6916.                     }
  6917.                 },
  6918.                 lastDay: "[včera o] LT",
  6919.                 lastWeek: function() {
  6920.                     switch (this.day()) {
  6921.                         case 0:
  6922.                             return "[minulú nedeľu o] LT";
  6923.                         case 1:
  6924.                         case 2:
  6925.                             return "[minulý] dddd [o] LT";
  6926.                         case 3:
  6927.                             return "[minulú stredu o] LT";
  6928.                         case 4:
  6929.                         case 5:
  6930.                             return "[minulý] dddd [o] LT";
  6931.                         case 6:
  6932.                             return "[minulú sobotu o] LT"
  6933.                     }
  6934.                 },
  6935.                 sameElse: "L"
  6936.             },
  6937.             relativeTime: {
  6938.                 future: "za %s",
  6939.                 past: "pred %s",
  6940.                 s: $,
  6941.                 m: $,
  6942.                 mm: $,
  6943.                 h: $,
  6944.                 hh: $,
  6945.                 d: $,
  6946.                 dd: $,
  6947.                 M: $,
  6948.                 MM: $,
  6949.                 y: $,
  6950.                 yy: $
  6951.             },
  6952.             ordinalParse: /\d{1,2}\./,
  6953.             ordinal: "%d.",
  6954.             week: {
  6955.                 dow: 1,
  6956.                 doy: 4
  6957.             }
  6958.         }), a.defineLocale("sl", {
  6959.             months: "januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),
  6960.             monthsShort: "jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),
  6961.             weekdays: "nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),
  6962.             weekdaysShort: "ned._pon._tor._sre._čet._pet._sob.".split("_"),
  6963.             weekdaysMin: "ne_po_to_sr_če_pe_so".split("_"),
  6964.             longDateFormat: {
  6965.                 LT: "H:mm",
  6966.                 LTS: "H:mm:ss",
  6967.                 L: "DD. MM. YYYY",
  6968.                 LL: "D. MMMM YYYY",
  6969.                 LLL: "D. MMMM YYYY H:mm",
  6970.                 LLLL: "dddd, D. MMMM YYYY H:mm"
  6971.             },
  6972.             calendar: {
  6973.                 sameDay: "[danes ob] LT",
  6974.                 nextDay: "[jutri ob] LT",
  6975.                 nextWeek: function() {
  6976.                     switch (this.day()) {
  6977.                         case 0:
  6978.                             return "[v] [nedeljo] [ob] LT";
  6979.                         case 3:
  6980.                             return "[v] [sredo] [ob] LT";
  6981.                         case 6:
  6982.                             return "[v] [soboto] [ob] LT";
  6983.                         case 1:
  6984.                         case 2:
  6985.                         case 4:
  6986.                         case 5:
  6987.                             return "[v] dddd [ob] LT"
  6988.                     }
  6989.                 },
  6990.                 lastDay: "[včeraj ob] LT",
  6991.                 lastWeek: function() {
  6992.                     switch (this.day()) {
  6993.                         case 0:
  6994.                             return "[prejÅ¡njo] [nedeljo] [ob] LT";
  6995.                         case 3:
  6996.                             return "[prejÅ¡njo] [sredo] [ob] LT";
  6997.                         case 6:
  6998.                             return "[prejÅ¡njo] [soboto] [ob] LT";
  6999.                         case 1:
  7000.                         case 2:
  7001.                         case 4:
  7002.                         case 5:
  7003.                             return "[prejÅ¡nji] dddd [ob] LT"
  7004.                     }
  7005.                 },
  7006.                 sameElse: "L"
  7007.             },
  7008.             relativeTime: {
  7009.                 future: "čez %s",
  7010.                 past: "pred %s",
  7011.                 s: _,
  7012.                 m: _,
  7013.                 mm: _,
  7014.                 h: _,
  7015.                 hh: _,
  7016.                 d: _,
  7017.                 dd: _,
  7018.                 M: _,
  7019.                 MM: _,
  7020.                 y: _,
  7021.                 yy: _
  7022.             },
  7023.             ordinalParse: /\d{1,2}\./,
  7024.             ordinal: "%d.",
  7025.             week: {
  7026.                 dow: 1,
  7027.                 doy: 7
  7028.             }
  7029.         }), a.defineLocale("sq", {
  7030.             months: "Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),
  7031.             monthsShort: "Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),
  7032.             weekdays: "E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),
  7033.             weekdaysShort: "Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),
  7034.             weekdaysMin: "D_H_Ma_Më_E_P_Sh".split("_"),
  7035.             meridiemParse: /PD|MD/,
  7036.             isPM: function(a) {
  7037.                 return "M" === a.charAt(0)
  7038.             },
  7039.             meridiem: function(a, b, c) {
  7040.                 return 12 > a ? "PD" : "MD"
  7041.             },
  7042.             longDateFormat: {
  7043.                 LT: "HH:mm",
  7044.                 LTS: "HH:mm:ss",
  7045.                 L: "DD/MM/YYYY",
  7046.                 LL: "D MMMM YYYY",
  7047.                 LLL: "D MMMM YYYY HH:mm",
  7048.                 LLLL: "dddd, D MMMM YYYY HH:mm"
  7049.             },
  7050.             calendar: {
  7051.                 sameDay: "[Sot në] LT",
  7052.                 nextDay: "[Nesër në] LT",
  7053.                 nextWeek: "dddd [në] LT",
  7054.                 lastDay: "[Dje në] LT",
  7055.                 lastWeek: "dddd [e kaluar në] LT",
  7056.                 sameElse: "L"
  7057.             },
  7058.             relativeTime: {
  7059.                 future: "në %s",
  7060.                 past: "%s më parë",
  7061.                 s: "disa sekonda",
  7062.                 m: "një minutë",
  7063.                 mm: "%d minuta",
  7064.                 h: "një orë",
  7065.                 hh: "%d orë",
  7066.                 d: "një ditë",
  7067.                 dd: "%d ditë",
  7068.                 M: "një muaj",
  7069.                 MM: "%d muaj",
  7070.                 y: "një vit",
  7071.                 yy: "%d vite"
  7072.             },
  7073.             ordinalParse: /\d{1,2}\./,
  7074.             ordinal: "%d.",
  7075.             week: {
  7076.                 dow: 1,
  7077.                 doy: 4
  7078.             }
  7079.         }), {
  7080.             words: {
  7081.                 m: ["један минут", "једне минуте"],
  7082.                 mm: ["минут", "минуте", "минута"],
  7083.                 h: ["један сат", "једног сата"],
  7084.                 hh: ["сат", "сата", "сати"],
  7085.                 dd: ["дан", "дана", "дана"],
  7086.                 MM: ["месец", "месеца", "месеци"],
  7087.                 yy: ["година", "године", "година"]
  7088.             },
  7089.             correctGrammaticalCase: function(a, b) {
  7090.                 return 1 === a ? b[0] : a >= 2 && 4 >= a ? b[1] : b[2]
  7091.             },
  7092.             translate: function(a, b, c) {
  7093.                 var d = Wa.words[c];
  7094.                 return 1 === c.length ? b ? d[0] : d[1] : a + " " + Wa.correctGrammaticalCase(a, d)
  7095.             }
  7096.         }),
  7097.         Xa = (a.defineLocale("sr-cyrl", {
  7098.             months: ["јануар", "фебруар", "март", "април", "мај", "јун", "јул", "август", "септембар", "октобар", "новембар", "децембар"],
  7099.             monthsShort: ["јан.", "феб.", "мар.", "апр.", "мај", "јун", "јул", "авг.", "сеп.", "окт.", "нов.", "дец."],
  7100.             weekdays: ["недеља", "понедељак", "уторак", "среда", "четвртак", "петак", "субота"],
  7101.             weekdaysShort: ["нед.", "пон.", "уто.", "сре.", "чет.", "пет.", "суб."],
  7102.             weekdaysMin: ["не", "по", "ут", "ср", "че", "пе", "су"],
  7103.             longDateFormat: {
  7104.                 LT: "H:mm",
  7105.                 LTS: "H:mm:ss",
  7106.                 L: "DD. MM. YYYY",
  7107.                 LL: "D. MMMM YYYY",
  7108.                 LLL: "D. MMMM YYYY H:mm",
  7109.                 LLLL: "dddd, D. MMMM YYYY H:mm"
  7110.             },
  7111.             calendar: {
  7112.                 sameDay: "[данас у] LT",
  7113.                 nextDay: "[сутра у] LT",
  7114.                 nextWeek: function() {
  7115.                     switch (this.day()) {
  7116.                         case 0:
  7117.                             return "[у] [недељу] [у] LT";
  7118.                         case 3:
  7119.                             return "[у] [среду] [у] LT";
  7120.                         case 6:
  7121.                             return "[у] [суботу] [у] LT";
  7122.                         case 1:
  7123.                         case 2:
  7124.                         case 4:
  7125.                         case 5:
  7126.                             return "[у] dddd [у] LT"
  7127.                     }
  7128.                 },
  7129.                 lastDay: "[јуче у] LT",
  7130.                 lastWeek: function() {
  7131.                     var a = ["[прошле] [недеље] [у] LT", "[прошлог] [понедељка] [у] LT", "[прошлог] [уторка] [у] LT", "[прошле] [среде] [у] LT", "[прошлог] [четвртка] [у] LT", "[прошлог] [петка] [у] LT", "[прошле] [суботе] [у] LT"];
  7132.                     return a[this.day()]
  7133.                 },
  7134.                 sameElse: "L"
  7135.             },
  7136.             relativeTime: {
  7137.                 future: "за %s",
  7138.                 past: "пре %s",
  7139.                 s: "неколико секунди",
  7140.                 m: Wa.translate,
  7141.                 mm: Wa.translate,
  7142.                 h: Wa.translate,
  7143.                 hh: Wa.translate,
  7144.                 d: "дан",
  7145.                 dd: Wa.translate,
  7146.                 M: "месец",
  7147.                 MM: Wa.translate,
  7148.                 y: "годину",
  7149.                 yy: Wa.translate
  7150.             },
  7151.             ordinalParse: /\d{1,2}\./,
  7152.             ordinal: "%d.",
  7153.             week: {
  7154.                 dow: 1,
  7155.                 doy: 7
  7156.             }
  7157.         }), {
  7158.             words: {
  7159.                 m: ["jedan minut", "jedne minute"],
  7160.                 mm: ["minut", "minute", "minuta"],
  7161.                 h: ["jedan sat", "jednog sata"],
  7162.                 hh: ["sat", "sata", "sati"],
  7163.                 dd: ["dan", "dana", "dana"],
  7164.                 MM: ["mesec", "meseca", "meseci"],
  7165.                 yy: ["godina", "godine", "godina"]
  7166.             },
  7167.             correctGrammaticalCase: function(a, b) {
  7168.                 return 1 === a ? b[0] : a >= 2 && 4 >= a ? b[1] : b[2]
  7169.             },
  7170.             translate: function(a, b, c) {
  7171.                 var d = Xa.words[c];
  7172.                 return 1 === c.length ? b ? d[0] : d[1] : a + " " + Xa.correctGrammaticalCase(a, d)
  7173.             }
  7174.         }),
  7175.         Ya = (a.defineLocale("sr", {
  7176.             months: ["januar", "februar", "mart", "april", "maj", "jun", "jul", "avgust", "septembar", "oktobar", "novembar", "decembar"],
  7177.             monthsShort: ["jan.", "feb.", "mar.", "apr.", "maj", "jun", "jul", "avg.", "sep.", "okt.", "nov.", "dec."],
  7178.             weekdays: ["nedelja", "ponedeljak", "utorak", "sreda", "četvrtak", "petak", "subota"],
  7179.             weekdaysShort: ["ned.", "pon.", "uto.", "sre.", "čet.", "pet.", "sub."],
  7180.             weekdaysMin: ["ne", "po", "ut", "sr", "če", "pe", "su"],
  7181.             longDateFormat: {
  7182.                 LT: "H:mm",
  7183.                 LTS: "H:mm:ss",
  7184.                 L: "DD. MM. YYYY",
  7185.                 LL: "D. MMMM YYYY",
  7186.                 LLL: "D. MMMM YYYY H:mm",
  7187.                 LLLL: "dddd, D. MMMM YYYY H:mm"
  7188.             },
  7189.             calendar: {
  7190.                 sameDay: "[danas u] LT",
  7191.                 nextDay: "[sutra u] LT",
  7192.                 nextWeek: function() {
  7193.                     switch (this.day()) {
  7194.                         case 0:
  7195.                             return "[u] [nedelju] [u] LT";
  7196.                         case 3:
  7197.                             return "[u] [sredu] [u] LT";
  7198.                         case 6:
  7199.                             return "[u] [subotu] [u] LT";
  7200.                         case 1:
  7201.                         case 2:
  7202.                         case 4:
  7203.                         case 5:
  7204.                             return "[u] dddd [u] LT"
  7205.                     }
  7206.                 },
  7207.                 lastDay: "[juče u] LT",
  7208.                 lastWeek: function() {
  7209.                     var a = ["[proÅ¡le] [nedelje] [u] LT", "[proÅ¡log] [ponedeljka] [u] LT", "[proÅ¡log] [utorka] [u] LT", "[proÅ¡le] [srede] [u] LT", "[proÅ¡log] [četvrtka] [u] LT", "[proÅ¡log] [petka] [u] LT", "[proÅ¡le] [subote] [u] LT"];
  7210.                     return a[this.day()]
  7211.                 },
  7212.                 sameElse: "L"
  7213.             },
  7214.             relativeTime: {
  7215.                 future: "za %s",
  7216.                 past: "pre %s",
  7217.                 s: "nekoliko sekundi",
  7218.                 m: Xa.translate,
  7219.                 mm: Xa.translate,
  7220.                 h: Xa.translate,
  7221.                 hh: Xa.translate,
  7222.                 d: "dan",
  7223.                 dd: Xa.translate,
  7224.                 M: "mesec",
  7225.                 MM: Xa.translate,
  7226.                 y: "godinu",
  7227.                 yy: Xa.translate
  7228.             },
  7229.             ordinalParse: /\d{1,2}\./,
  7230.             ordinal: "%d.",
  7231.             week: {
  7232.                 dow: 1,
  7233.                 doy: 7
  7234.             }
  7235.         }), a.defineLocale("sv", {
  7236.             months: "januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),
  7237.             monthsShort: "jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),
  7238.             weekdays: "söndag_mÃ¥ndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),
  7239.             weekdaysShort: "sön_mÃ¥n_tis_ons_tor_fre_lör".split("_"),
  7240.             weekdaysMin: "sö_mÃ¥_ti_on_to_fr_lö".split("_"),
  7241.             longDateFormat: {
  7242.                 LT: "HH:mm",
  7243.                 LTS: "HH:mm:ss",
  7244.                 L: "YYYY-MM-DD",
  7245.                 LL: "D MMMM YYYY",
  7246.                 LLL: "D MMMM YYYY HH:mm",
  7247.                 LLLL: "dddd D MMMM YYYY HH:mm"
  7248.             },
  7249.             calendar: {
  7250.                 sameDay: "[Idag] LT",
  7251.                 nextDay: "[Imorgon] LT",
  7252.                 lastDay: "[IgÃ¥r] LT",
  7253.                 nextWeek: "[PÃ¥] dddd LT",
  7254.                 lastWeek: "[I] dddd[s] LT",
  7255.                 sameElse: "L"
  7256.             },
  7257.             relativeTime: {
  7258.                 future: "om %s",
  7259.                 past: "för %s sedan",
  7260.                 s: "nÃ¥gra sekunder",
  7261.                 m: "en minut",
  7262.                 mm: "%d minuter",
  7263.                 h: "en timme",
  7264.                 hh: "%d timmar",
  7265.                 d: "en dag",
  7266.                 dd: "%d dagar",
  7267.                 M: "en mÃ¥nad",
  7268.                 MM: "%d mÃ¥nader",
  7269.                 y: "ett Ã¥r",
  7270.                 yy: "%d Ã¥r"
  7271.             },
  7272.             ordinalParse: /\d{1,2}(e|a)/,
  7273.             ordinal: function(a) {
  7274.                 var b = a % 10,
  7275.                     c = 1 === ~~(a % 100 / 10) ? "e" : 1 === b ? "a" : 2 === b ? "a" : "e";
  7276.                 return a + c
  7277.             },
  7278.             week: {
  7279.                 dow: 1,
  7280.                 doy: 4
  7281.             }
  7282.         }), a.defineLocale("ta", {
  7283.             months: "ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),
  7284.             monthsShort: "ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்".split("_"),
  7285.             weekdays: "ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை".split("_"),
  7286.             weekdaysShort: "ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி".split("_"),
  7287.             weekdaysMin: "ஞா_தி_செ_பு_வி_வெ_ச".split("_"),
  7288.             longDateFormat: {
  7289.                 LT: "HH:mm",
  7290.                 LTS: "HH:mm:ss",
  7291.                 L: "DD/MM/YYYY",
  7292.                 LL: "D MMMM YYYY",
  7293.                 LLL: "D MMMM YYYY, HH:mm",
  7294.                 LLLL: "dddd, D MMMM YYYY, HH:mm"
  7295.             },
  7296.             calendar: {
  7297.                 sameDay: "[இன்று] LT",
  7298.                 nextDay: "[நாளை] LT",
  7299.                 nextWeek: "dddd, LT",
  7300.                 lastDay: "[நேற்று] LT",
  7301.                 lastWeek: "[கடந்த வாரம்] dddd, LT",
  7302.                 sameElse: "L"
  7303.             },
  7304.             relativeTime: {
  7305.                 future: "%s இல்",
  7306.                 past: "%s முன்",
  7307.                 s: "ஒரு சில விநாடிகள்",
  7308.                 m: "ஒரு நிமிடம்",
  7309.                 mm: "%d நிமிடங்கள்",
  7310.                 h: "ஒரு மணி நேரம்",
  7311.                 hh: "%d மணி நேரம்",
  7312.                 d: "ஒரு நாள்",
  7313.                 dd: "%d நாட்கள்",
  7314.                 M: "ஒரு மாதம்",
  7315.                 MM: "%d மாதங்கள்",
  7316.                 y: "ஒரு வருடம்",
  7317.                 yy: "%d ஆண்டுகள்"
  7318.             },
  7319.             ordinalParse: /\d{1,2}வது/,
  7320.             ordinal: function(a) {
  7321.                 return a + "வது"
  7322.             },
  7323.             meridiemParse: /யாமம்|வைகறை|காலை|நண்பகல்|எற்பாடு|மாலை/,
  7324.             meridiem: function(a, b, c) {
  7325.                 return 2 > a ? " யாமம்" : 6 > a ? " வைகறை" : 10 > a ? " காலை" : 14 > a ? " நண்பகல்" : 18 > a ? " எற்பாடு" : 22 > a ? " மாலை" : " யாமம்"
  7326.             },
  7327.             meridiemHour: function(a, b) {
  7328.                 return 12 === a && (a = 0), "யாமம்" === b ? 2 > a ? a : a + 12 : "வைகறை" === b || "காலை" === b ? a : "நண்பகல்" === b && a >= 10 ? a : a + 12
  7329.             },
  7330.             week: {
  7331.                 dow: 0,
  7332.                 doy: 6
  7333.             }
  7334.         }), a.defineLocale("th", {
  7335.             months: "มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),
  7336.             monthsShort: "มกรา_กุมภา_มีนา_เมษา_พฤษภา_มิถุนา_กรกฎา_สิงหา_กันยา_ตุลา_พฤศจิกา_ธันวา".split("_"),
  7337.             weekdays: "อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),
  7338.             weekdaysShort: "อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"),
  7339.             weekdaysMin: "อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),
  7340.             longDateFormat: {
  7341.                 LT: "H นาฬิกา m นาที",
  7342.                 LTS: "H นาฬิกา m นาที s วินาที",
  7343.                 L: "YYYY/MM/DD",
  7344.                 LL: "D MMMM YYYY",
  7345.                 LLL: "D MMMM YYYY เวลา H นาฬิกา m นาที",
  7346.                 LLLL: "วันddddที่ D MMMM YYYY เวลา H นาฬิกา m นาที"
  7347.             },
  7348.             meridiemParse: /ก่อนเที่ยง|หลังเที่ยง/,
  7349.             isPM: function(a) {
  7350.                 return "หลังเที่ยง" === a
  7351.             },
  7352.             meridiem: function(a, b, c) {
  7353.                 return 12 > a ? "ก่อนเที่ยง" : "หลังเที่ยง"
  7354.             },
  7355.             calendar: {
  7356.                 sameDay: "[วันนี้ เวลา] LT",
  7357.                 nextDay: "[พรุ่งนี้ เวลา] LT",
  7358.                 nextWeek: "dddd[หน้า เวลา] LT",
  7359.                 lastDay: "[เมื่อวานนี้ เวลา] LT",
  7360.                 lastWeek: "[วัน]dddd[ที่แล้ว เวลา] LT",
  7361.                 sameElse: "L"
  7362.             },
  7363.             relativeTime: {
  7364.                 future: "อีก %s",
  7365.                 past: "%sที่แล้ว",
  7366.                 s: "ไม่กี่วินาที",
  7367.                 m: "1 นาที",
  7368.                 mm: "%d นาที",
  7369.                 h: "1 ชั่วโมง",
  7370.                 hh: "%d ชั่วโมง",
  7371.                 d: "1 วัน",
  7372.                 dd: "%d วัน",
  7373.                 M: "1 เดือน",
  7374.                 MM: "%d เดือน",
  7375.                 y: "1 ปี",
  7376.                 yy: "%d ปี"
  7377.             }
  7378.         }), a.defineLocale("tl-ph", {
  7379.             months: "Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),
  7380.             monthsShort: "Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),
  7381.             weekdays: "Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),
  7382.             weekdaysShort: "Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),
  7383.             weekdaysMin: "Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),
  7384.             longDateFormat: {
  7385.                 LT: "HH:mm",
  7386.                 LTS: "HH:mm:ss",
  7387.                 L: "MM/D/YYYY",
  7388.                 LL: "MMMM D, YYYY",
  7389.                 LLL: "MMMM D, YYYY HH:mm",
  7390.                 LLLL: "dddd, MMMM DD, YYYY HH:mm"
  7391.             },
  7392.             calendar: {
  7393.                 sameDay: "[Ngayon sa] LT",
  7394.                 nextDay: "[Bukas sa] LT",
  7395.                 nextWeek: "dddd [sa] LT",
  7396.                 lastDay: "[Kahapon sa] LT",
  7397.                 lastWeek: "dddd [huling linggo] LT",
  7398.                 sameElse: "L"
  7399.             },
  7400.             relativeTime: {
  7401.                 future: "sa loob ng %s",
  7402.                 past: "%s ang nakalipas",
  7403.                 s: "ilang segundo",
  7404.                 m: "isang minuto",
  7405.                 mm: "%d minuto",
  7406.                 h: "isang oras",
  7407.                 hh: "%d oras",
  7408.                 d: "isang araw",
  7409.                 dd: "%d araw",
  7410.                 M: "isang buwan",
  7411.                 MM: "%d buwan",
  7412.                 y: "isang taon",
  7413.                 yy: "%d taon"
  7414.             },
  7415.             ordinalParse: /\d{1,2}/,
  7416.             ordinal: function(a) {
  7417.                 return a
  7418.             },
  7419.             week: {
  7420.                 dow: 1,
  7421.                 doy: 4
  7422.             }
  7423.         }), {
  7424.             1: "'inci",
  7425.             5: "'inci",
  7426.             8: "'inci",
  7427.             70: "'inci",
  7428.             80: "'inci",
  7429.             2: "'nci",
  7430.             7: "'nci",
  7431.             20: "'nci",
  7432.             50: "'nci",
  7433.             3: "'üncü",
  7434.             4: "'üncü",
  7435.             100: "'üncü",
  7436.             6: "'ncı",
  7437.             9: "'uncu",
  7438.             10: "'uncu",
  7439.             30: "'uncu",
  7440.             60: "'ıncı",
  7441.             90: "'ıncı"
  7442.         });
  7443.     a.defineLocale("tr", {
  7444.         months: "Ocak_Åžubat_Mart_Nisan_Mayıs_Haziran_Temmuz_AÄŸustos_Eylül_Ekim_Kasım_Aralık".split("_"),
  7445.         monthsShort: "Oca_Åžub_Mar_Nis_May_Haz_Tem_AÄŸu_Eyl_Eki_Kas_Ara".split("_"),
  7446.         weekdays: "Pazar_Pazartesi_Salı_ÇarÅŸamba_PerÅŸembe_Cuma_Cumartesi".split("_"),
  7447.         weekdaysShort: "Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),
  7448.         weekdaysMin: "Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),
  7449.         longDateFormat: {
  7450.             LT: "HH:mm",
  7451.             LTS: "HH:mm:ss",
  7452.             L: "DD.MM.YYYY",
  7453.             LL: "D MMMM YYYY",
  7454.             LLL: "D MMMM YYYY HH:mm",
  7455.             LLLL: "dddd, D MMMM YYYY HH:mm"
  7456.         },
  7457.         calendar: {
  7458.             sameDay: "[bugün saat] LT",
  7459.             nextDay: "[yarın saat] LT",
  7460.             nextWeek: "[haftaya] dddd [saat] LT",
  7461.             lastDay: "[dün] LT",
  7462.             lastWeek: "[geçen hafta] dddd [saat] LT",
  7463.             sameElse: "L"
  7464.         },
  7465.         relativeTime: {
  7466.             future: "%s sonra",
  7467.             past: "%s önce",
  7468.             s: "birkaç saniye",
  7469.             m: "bir dakika",
  7470.             mm: "%d dakika",
  7471.             h: "bir saat",
  7472.             hh: "%d saat",
  7473.             d: "bir gün",
  7474.             dd: "%d gün",
  7475.             M: "bir ay",
  7476.             MM: "%d ay",
  7477.             y: "bir yıl",
  7478.             yy: "%d yıl"
  7479.         },
  7480.         ordinalParse: /\d{1,2}'(inci|nci|üncü|ncı|uncu|ıncı)/,
  7481.         ordinal: function(a) {
  7482.             if (0 === a) return a + "'ıncı";
  7483.             var b = a % 10,
  7484.                 c = a % 100 - b,
  7485.                 d = a >= 100 ? 100 : null;
  7486.             return a + (Ya[b] || Ya[c] || Ya[d])
  7487.         },
  7488.         week: {
  7489.             dow: 1,
  7490.             doy: 7
  7491.         }
  7492.     }), a.defineLocale("tzl", {
  7493.         months: "Januar_Fevraglh_Març_Avrïu_Mai_Gün_Julia_Guscht_Setemvar_Listopäts_Noemvar_Zecemvar".split("_"),
  7494.         monthsShort: "Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec".split("_"),
  7495.         weekdays: "Súladi_Lúneçi_Maitzi_Márcuri_Xhúadi_Viénerçi_Sáturi".split("_"),
  7496.         weekdaysShort: "Súl_Lún_Mai_Már_Xhú_Vié_Sát".split("_"),
  7497.         weekdaysMin: "Sú_Lú_Ma_Má_Xh_Vi_Sá".split("_"),
  7498.         longDateFormat: {
  7499.             LT: "HH.mm",
  7500.             LTS: "LT.ss",
  7501.             L: "DD.MM.YYYY",
  7502.             LL: "D. MMMM [dallas] YYYY",
  7503.             LLL: "D. MMMM [dallas] YYYY LT",
  7504.             LLLL: "dddd, [li] D. MMMM [dallas] YYYY LT"
  7505.         },
  7506.         meridiem: function(a, b, c) {
  7507.             return a > 11 ? c ? "d'o" : "D'O" : c ? "d'a" : "D'A"
  7508.         },
  7509.         calendar: {
  7510.             sameDay: "[oxhi à ] LT",
  7511.             nextDay: "[demà  Ã ] LT",
  7512.             nextWeek: "dddd [Ã ] LT",
  7513.             lastDay: "[ieiri à ] LT",
  7514.             lastWeek: "[sür el] dddd [lasteu à ] LT",
  7515.             sameElse: "L"
  7516.         },
  7517.         relativeTime: {
  7518.             future: "osprei %s",
  7519.             past: "ja%s",
  7520.             s: aa,
  7521.             m: aa,
  7522.             mm: aa,
  7523.             h: aa,
  7524.             hh: aa,
  7525.             d: aa,
  7526.             dd: aa,
  7527.             M: aa,
  7528.             MM: aa,
  7529.             y: aa,
  7530.             yy: aa
  7531.         },
  7532.         ordinalParse: /\d{1,2}\./,
  7533.         ordinal: "%d.",
  7534.         week: {
  7535.             dow: 1,
  7536.             doy: 4
  7537.         }
  7538.     }), a.defineLocale("tzm-latn", {
  7539.         months: "innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_É£wÅ¡t_Å¡wtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),
  7540.         monthsShort: "innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_É£wÅ¡t_Å¡wtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),
  7541.         weekdays: "asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),
  7542.         weekdaysShort: "asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),
  7543.         weekdaysMin: "asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),
  7544.         longDateFormat: {
  7545.             LT: "HH:mm",
  7546.             LTS: "HH:mm:ss",
  7547.             L: "DD/MM/YYYY",
  7548.             LL: "D MMMM YYYY",
  7549.             LLL: "D MMMM YYYY HH:mm",
  7550.             LLLL: "dddd D MMMM YYYY HH:mm"
  7551.         },
  7552.         calendar: {
  7553.             sameDay: "[asdkh g] LT",
  7554.             nextDay: "[aska g] LT",
  7555.             nextWeek: "dddd [g] LT",
  7556.             lastDay: "[assant g] LT",
  7557.             lastWeek: "dddd [g] LT",
  7558.             sameElse: "L"
  7559.         },
  7560.         relativeTime: {
  7561.             future: "dadkh s yan %s",
  7562.             past: "yan %s",
  7563.             s: "imik",
  7564.             m: "minuḍ",
  7565.             mm: "%d minuḍ",
  7566.             h: "saÉ›a",
  7567.             hh: "%d tassaÉ›in",
  7568.             d: "ass",
  7569.             dd: "%d ossan",
  7570.             M: "ayowr",
  7571.             MM: "%d iyyirn",
  7572.             y: "asgas",
  7573.             yy: "%d isgasn"
  7574.         },
  7575.         week: {
  7576.             dow: 6,
  7577.             doy: 12
  7578.         }
  7579.     }), a.defineLocale("tzm", {
  7580.         months: "ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),
  7581.         monthsShort: "ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),
  7582.         weekdays: "ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),
  7583.         weekdaysShort: "ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),
  7584.         weekdaysMin: "ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),
  7585.         longDateFormat: {
  7586.             LT: "HH:mm",
  7587.             LTS: "HH:mm:ss",
  7588.             L: "DD/MM/YYYY",
  7589.             LL: "D MMMM YYYY",
  7590.             LLL: "D MMMM YYYY HH:mm",
  7591.             LLLL: "dddd D MMMM YYYY HH:mm"
  7592.         },
  7593.         calendar: {
  7594.             sameDay: "[ⴰⵙⴷⵅ â´´] LT",
  7595.             nextDay: "[ⴰⵙⴽⴰ â´´] LT",
  7596.             nextWeek: "dddd [â´´] LT",
  7597.             lastDay: "[ⴰⵚⴰⵏⵜ â´´] LT",
  7598.             lastWeek: "dddd [â´´] LT",
  7599.             sameElse: "L"
  7600.         },
  7601.         relativeTime: {
  7602.             future: "â´·â´°â´·âµ… âµ™ ⵢⴰⵏ %s",
  7603.             past: "ⵢⴰⵏ %s",
  7604.             s: "ⵉⵎⵉⴽ",
  7605.             m: "ⵎⵉⵏⵓⴺ",
  7606.             mm: "%d ⵎⵉⵏⵓⴺ",
  7607.             h: "ⵙⴰⵄⴰ",
  7608.             hh: "%d ⵜⴰⵙⵙⴰⵄⵉⵏ",
  7609.             d: "ⴰⵙⵙ",
  7610.             dd: "%d oⵙⵙⴰⵏ",
  7611.             M: "â´°âµ¢oⵓⵔ",
  7612.             MM: "%d ⵉⵢⵢⵉⵔⵏ",
  7613.             y: "ⴰⵙⴳⴰⵙ",
  7614.             yy: "%d ⵉⵙⴳⴰⵙⵏ"
  7615.         },
  7616.         week: {
  7617.             dow: 6,
  7618.             doy: 12
  7619.         }
  7620.     }), a.defineLocale("uk", {
  7621.         months: da,
  7622.         monthsShort: "січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),
  7623.         weekdays: ea,
  7624.         weekdaysShort: "нд_пн_вт_ср_чт_пт_сб".split("_"),
  7625.         weekdaysMin: "нд_пн_вт_ср_чт_пт_сб".split("_"),
  7626.         longDateFormat: {
  7627.             LT: "HH:mm",
  7628.             LTS: "HH:mm:ss",
  7629.             L: "DD.MM.YYYY",
  7630.             LL: "D MMMM YYYY Ñ€.",
  7631.             LLL: "D MMMM YYYY Ñ€., HH:mm",
  7632.             LLLL: "dddd, D MMMM YYYY Ñ€., HH:mm"
  7633.         },
  7634.         calendar: {
  7635.             sameDay: fa("[Сьогодні "),
  7636.             nextDay: fa("[Завтра "),
  7637.             lastDay: fa("[Вчора "),
  7638.             nextWeek: fa("[У] dddd ["),
  7639.             lastWeek: function() {
  7640.                 switch (this.day()) {
  7641.                     case 0:
  7642.                     case 3:
  7643.                     case 5:
  7644.                     case 6:
  7645.                         return fa("[Минулої] dddd [").call(this);
  7646.                     case 1:
  7647.                     case 2:
  7648.                     case 4:
  7649.                         return fa("[Минулого] dddd [").call(this)
  7650.                 }
  7651.             },
  7652.             sameElse: "L"
  7653.         },
  7654.         relativeTime: {
  7655.             future: "за %s",
  7656.             past: "%s тому",
  7657.             s: "декілька секунд",
  7658.             m: ca,
  7659.             mm: ca,
  7660.             h: "годину",
  7661.             hh: ca,
  7662.             d: "день",
  7663.             dd: ca,
  7664.             M: "місяць",
  7665.             MM: ca,
  7666.             y: "рік",
  7667.             yy: ca
  7668.         },
  7669.         meridiemParse: /ночі|ранку|дня|вечора/,
  7670.         isPM: function(a) {
  7671.             return /^(дня|вечора)$/.test(a)
  7672.         },
  7673.         meridiem: function(a, b, c) {
  7674.             return 4 > a ? "ночі" : 12 > a ? "ранку" : 17 > a ? "дня" : "вечора"
  7675.         },
  7676.         ordinalParse: /\d{1,2}-(й|го)/,
  7677.         ordinal: function(a, b) {
  7678.             switch (b) {
  7679.                 case "M":
  7680.                 case "d":
  7681.                 case "DDD":
  7682.                 case "w":
  7683.                 case "W":
  7684.                     return a + "-й";
  7685.                 case "D":
  7686.                     return a + "-го";
  7687.                 default:
  7688.                     return a
  7689.             }
  7690.         },
  7691.         week: {
  7692.             dow: 1,
  7693.             doy: 7
  7694.         }
  7695.     }), a.defineLocale("uz", {
  7696.         months: "январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),
  7697.         monthsShort: "янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),
  7698.         weekdays: "Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),
  7699.         weekdaysShort: "Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),
  7700.         weekdaysMin: "Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),
  7701.         longDateFormat: {
  7702.             LT: "HH:mm",
  7703.             LTS: "HH:mm:ss",
  7704.             L: "DD/MM/YYYY",
  7705.             LL: "D MMMM YYYY",
  7706.             LLL: "D MMMM YYYY HH:mm",
  7707.             LLLL: "D MMMM YYYY, dddd HH:mm"
  7708.         },
  7709.         calendar: {
  7710.             sameDay: "[Бугун соат] LT [да]",
  7711.             nextDay: "[Эртага] LT [да]",
  7712.             nextWeek: "dddd [куни соат] LT [да]",
  7713.             lastDay: "[Кеча соат] LT [да]",
  7714.             lastWeek: "[Утган] dddd [куни соат] LT [да]",
  7715.             sameElse: "L"
  7716.         },
  7717.         relativeTime: {
  7718.             future: "Якин %s ичида",
  7719.             past: "Бир неча %s олдин",
  7720.             s: "фурсат",
  7721.             m: "бир дакика",
  7722.             mm: "%d дакика",
  7723.             h: "бир соат",
  7724.             hh: "%d соат",
  7725.             d: "бир кун",
  7726.             dd: "%d кун",
  7727.             M: "бир ой",
  7728.             MM: "%d ой",
  7729.             y: "бир йил",
  7730.             yy: "%d йил"
  7731.         },
  7732.         week: {
  7733.             dow: 1,
  7734.             doy: 7
  7735.         }
  7736.     }), a.defineLocale("vi", {
  7737.         months: "tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),
  7738.         monthsShort: "Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),
  7739.         weekdays: "chủ nhật_thứ hai_thứ ba_thứ tÆ°_thứ năm_thứ sáu_thứ bảy".split("_"),
  7740.         weekdaysShort: "CN_T2_T3_T4_T5_T6_T7".split("_"),
  7741.         weekdaysMin: "CN_T2_T3_T4_T5_T6_T7".split("_"),
  7742.         longDateFormat: {
  7743.             LT: "HH:mm",
  7744.             LTS: "HH:mm:ss",
  7745.             L: "DD/MM/YYYY",
  7746.             LL: "D MMMM [năm] YYYY",
  7747.             LLL: "D MMMM [năm] YYYY HH:mm",
  7748.             LLLL: "dddd, D MMMM [năm] YYYY HH:mm",
  7749.             l: "DD/M/YYYY",
  7750.             ll: "D MMM YYYY",
  7751.             lll: "D MMM YYYY HH:mm",
  7752.             llll: "ddd, D MMM YYYY HH:mm"
  7753.         },
  7754.         calendar: {
  7755.             sameDay: "[Hôm nay lúc] LT",
  7756.             nextDay: "[Ngà y mai lúc] LT",
  7757.             nextWeek: "dddd [tuần tá»›i lúc] LT",
  7758.             lastDay: "[Hôm qua lúc] LT",
  7759.             lastWeek: "dddd [tuần rồi lúc] LT",
  7760.             sameElse: "L"
  7761.         },
  7762.         relativeTime: {
  7763.             future: "%s tá»›i",
  7764.             past: "%s trÆ°á»›c",
  7765.             s: "và i giây",
  7766.             m: "má»™t phút",
  7767.             mm: "%d phút",
  7768.             h: "má»™t giờ",
  7769.             hh: "%d giờ",
  7770.             d: "má»™t ngà y",
  7771.             dd: "%d ngà y",
  7772.             M: "má»™t tháng",
  7773.             MM: "%d tháng",
  7774.             y: "má»™t năm",
  7775.             yy: "%d năm"
  7776.         },
  7777.         ordinalParse: /\d{1,2}/,
  7778.         ordinal: function(a) {
  7779.             return a
  7780.         },
  7781.         week: {
  7782.             dow: 1,
  7783.             doy: 4
  7784.         }
  7785.     }), a.defineLocale("zh-cn", {
  7786.         months: "一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),
  7787.         monthsShort: "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),
  7788.         weekdays: "星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),
  7789.         weekdaysShort: "周日_周一_周二_周三_周四_周五_周六".split("_"),
  7790.         weekdaysMin: "æ—¥_一_二_三_å››_五_å…­".split("_"),
  7791.         longDateFormat: {
  7792.             LT: "Ah点mm分",
  7793.             LTS: "Ah点m分s秒",
  7794.             L: "YYYY-MM-DD",
  7795.             LL: "YYYYå¹´MMMDæ—¥",
  7796.             LLL: "YYYYå¹´MMMDæ—¥Ah点mm分",
  7797.             LLLL: "YYYYå¹´MMMDæ—¥ddddAh点mm分",
  7798.             l: "YYYY-MM-DD",
  7799.             ll: "YYYYå¹´MMMDæ—¥",
  7800.             lll: "YYYYå¹´MMMDæ—¥Ah点mm分",
  7801.             llll: "YYYYå¹´MMMDæ—¥ddddAh点mm分"
  7802.         },
  7803.         meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
  7804.         meridiemHour: function(a, b) {
  7805.             return 12 === a && (a = 0), "凌晨" === b || "早上" === b || "上午" === b ? a : "下午" === b || "晚上" === b ? a + 12 : a >= 11 ? a : a + 12
  7806.         },
  7807.         meridiem: function(a, b, c) {
  7808.             var d = 100 * a + b;
  7809.             return 600 > d ? "凌晨" : 900 > d ? "早上" : 1130 > d ? "上午" : 1230 > d ? "中午" : 1800 > d ? "下午" : "晚上"
  7810.         },
  7811.         calendar: {
  7812.             sameDay: function() {
  7813.                 return 0 === this.minutes() ? "[今天]Ah[点整]" : "[今天]LT"
  7814.             },
  7815.             nextDay: function() {
  7816.                 return 0 === this.minutes() ? "[明天]Ah[点整]" : "[明天]LT"
  7817.             },
  7818.             lastDay: function() {
  7819.                 return 0 === this.minutes() ? "[昨天]Ah[点整]" : "[昨天]LT"
  7820.             },
  7821.             nextWeek: function() {
  7822.                 var b, c;
  7823.                 return b = a().startOf("week"), c = this.unix() - b.unix() >= 604800 ? "[下]" : "[本]", 0 === this.minutes() ? c + "dddAh点整" : c + "dddAh点mm"
  7824.             },
  7825.             lastWeek: function() {
  7826.                 var b, c;
  7827.                 return b = a().startOf("week"), c = this.unix() < b.unix() ? "[上]" : "[本]", 0 === this.minutes() ? c + "dddAh点整" : c + "dddAh点mm"
  7828.             },
  7829.             sameElse: "LL"
  7830.         },
  7831.         ordinalParse: /\d{1,2}(æ—¥|月|周)/,
  7832.         ordinal: function(a, b) {
  7833.             switch (b) {
  7834.                 case "d":
  7835.                 case "D":
  7836.                 case "DDD":
  7837.                     return a + "æ—¥";
  7838.                 case "M":
  7839.                     return a + "月";
  7840.                 case "w":
  7841.                 case "W":
  7842.                     return a + "周";
  7843.                 default:
  7844.                     return a
  7845.             }
  7846.         },
  7847.         relativeTime: {
  7848.             future: "%s内",
  7849.             past: "%s前",
  7850.             s: "å‡ ç§’",
  7851.             m: "1 分钟",
  7852.             mm: "%d 分钟",
  7853.             h: "1 小时",
  7854.             hh: "%d 小时",
  7855.             d: "1 天",
  7856.             dd: "%d 天",
  7857.             M: "1 个月",
  7858.             MM: "%d 个月",
  7859.             y: "1 å¹´",
  7860.             yy: "%d å¹´"
  7861.         },
  7862.         week: {
  7863.             dow: 1,
  7864.             doy: 4
  7865.         }
  7866.     }), a.defineLocale("zh-tw", {
  7867.         months: "一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),
  7868.         monthsShort: "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),
  7869.         weekdays: "星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),
  7870.         weekdaysShort: "週日_週一_週二_週三_週四_週五_週六".split("_"),
  7871.         weekdaysMin: "æ—¥_一_二_三_å››_五_å…­".split("_"),
  7872.         longDateFormat: {
  7873.             LT: "Ah點mm分",
  7874.             LTS: "Ah點m分s秒",
  7875.             L: "YYYYå¹´MMMDæ—¥",
  7876.             LL: "YYYYå¹´MMMDæ—¥",
  7877.             LLL: "YYYYå¹´MMMDæ—¥Ah點mm分",
  7878.             LLLL: "YYYYå¹´MMMDæ—¥ddddAh點mm分",
  7879.             l: "YYYYå¹´MMMDæ—¥",
  7880.             ll: "YYYYå¹´MMMDæ—¥",
  7881.             lll: "YYYYå¹´MMMDæ—¥Ah點mm分",
  7882.             llll: "YYYYå¹´MMMDæ—¥ddddAh點mm分"
  7883.         },
  7884.         meridiemParse: /早上|上午|中午|下午|晚上/,
  7885.         meridiemHour: function(a, b) {
  7886.             return 12 === a && (a = 0), "早上" === b || "上午" === b ? a : "中午" === b ? a >= 11 ? a : a + 12 : "下午" === b || "晚上" === b ? a + 12 : void 0
  7887.         },
  7888.         meridiem: function(a, b, c) {
  7889.             var d = 100 * a + b;
  7890.             return 900 > d ? "早上" : 1130 > d ? "上午" : 1230 > d ? "中午" : 1800 > d ? "下午" : "晚上"
  7891.         },
  7892.         calendar: {
  7893.             sameDay: "[今天]LT",
  7894.             nextDay: "[明天]LT",
  7895.             nextWeek: "[下]ddddLT",
  7896.             lastDay: "[昨天]LT",
  7897.             lastWeek: "[上]ddddLT",
  7898.             sameElse: "L"
  7899.         },
  7900.         ordinalParse: /\d{1,2}(æ—¥|月|週)/,
  7901.         ordinal: function(a, b) {
  7902.             switch (b) {
  7903.                 case "d":
  7904.                 case "D":
  7905.                 case "DDD":
  7906.                     return a + "æ—¥";
  7907.                 case "M":
  7908.                     return a + "月";
  7909.                 case "w":
  7910.                 case "W":
  7911.                     return a + "週";
  7912.                 default:
  7913.                     return a
  7914.             }
  7915.         },
  7916.         relativeTime: {
  7917.             future: "%så…§",
  7918.             past: "%s前",
  7919.             s: "幾秒",
  7920.             m: "一分鐘",
  7921.             mm: "%d分鐘",
  7922.             h: "一小時",
  7923.             hh: "%d小時",
  7924.             d: "一天",
  7925.             dd: "%d天",
  7926.             M: "一個月",
  7927.             MM: "%d個月",
  7928.             y: "一年",
  7929.             yy: "%då¹´"
  7930.         }
  7931.     })
  7932. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement