{"id":3359,"date":"2025-06-11T15:19:14","date_gmt":"2025-06-11T07:19:14","guid":{"rendered":"https:\/\/www.gbaiplawyer.com\/?page_id=3359"},"modified":"2026-08-23T01:56:39","modified_gmt":"2026-08-22T17:56:39","slug":"chinese-patent-renewal-reminder-ip-official-fee-calculator","status":"publish","type":"page","link":"https:\/\/www.gbaiplawyer.com\/ko\/chinese-patent-renewal-reminder-ip-official-fee-calculator\/","title":{"rendered":"\uc911\uad6d \ud2b9\ud5c8 \uac31\uc2e0 \uc54c\ub9bc \ubc0f IP \uacf5\uc2dd \uc218\uc218\ub8cc \uacc4\uc0b0\uae30"},"content":{"rendered":"<p>[et_pb_section fb_built=\u201d1\u201d admin_label=\u201dsection\u201d _builder_version=\u201d4.16\u201d global_colors_info=\u201d{}\u201d][et_pb_row _builder_version=\u201d4.27.4\u201d _module_preset=\u201ddefault\u201d][et_pb_column _builder_version=\u201d4.27.4\u201d _module_preset=\u201ddefault\u201d type=\u201d4_4\u201d][et_pb_text _builder_version=\"4.27.4\" _module_preset=\"default\" hover_enabled=\"0\" sticky_enabled=\"0\"]<\/p>\n<p>\ub2f9\uc0ac\uc758 \uc628\ub77c\uc778 \ub3c4\uad6c\ub97c \ud65c\uc6a9\ud558\uc5ec \uc911\uad6d \ud2b9\ud5c8 \ubc0f \uae30\ud0c0 \uc9c0\uc801\uc7ac\uc0b0\uad8c \uad00\ub828 \uacf5\uc2dd \uc218\uc218\ub8cc\ub97c \uacc4\uc0b0\ud558\uace0, \ud2b9\ud5c8 \uac31\uc2e0 \uae30\ud55c\uc744 \uad00\ub9ac\ud574 \ubcf4\uc138\uc694. \uc774 \ub3c4\uad6c\ub4e4\uc740 \uae30\uc5c5\uacfc \uc9c0\uc801\uc7ac\uc0b0\uad8c \uc18c\uc720\uc790\uac00 \uc911\uad6d\uc758 \uc9c0\uc801\uc7ac\uc0b0\uad8c \uad00\ub828 \ube44\uc6a9\uacfc \uc911\uc694\ud55c \uac31\uc2e0 \uc77c\uc815\uc744 \ubcf4\ub2e4 \ud6a8\uc728\uc801\uc73c\ub85c \uad00\ub9ac\ud558\ub294 \ub370 \ub3c4\uc6c0\uc744 \uc90d\ub2c8\ub2e4.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][et_pb_row column_structure=\u201d1_2,1_2\u2033 _builder_version=\u201d4.27.4\u2033 _module_preset=\u201ddefault\u201d hover_enabled=\u201d0\u2033 global_colors_info=\u201d{}\u201d sticky_enabled=\u201d0\u2033][et_pb_column type=\u201d1_2\u2033 _builder_version=\u201d4.27.4\u2033 _module_preset=\u201ddefault\u201d z_index=\u201d3\u2033 global_colors_info=\u201d{}\u201d][et_pb_code _builder_version=\u201d4.27.4\u2033 _module_preset=\u201ddefault\u201d z_index=\u201d0\u2033 global_colors_info=\u201d{}\u201d]<!DOCTYPE html><!-- [et_pb_line_break_holder] --><html lang=\"en\"><!-- [et_pb_line_break_holder] --><head><!-- [et_pb_line_break_holder] -->  <meta charset=\"UTF-8\"><!-- [et_pb_line_break_holder] -->  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><!-- [et_pb_line_break_holder] -->  <title>Chinese Patent Renewal Reminder<\/title><!-- [et_pb_line_break_holder] -->  <\/p>\n<style><!-- [et_pb_line_break_holder] -->    \/* \u4fdd\u7559\u539f\u6837\u5f0f *\/<!-- [et_pb_line_break_holder] -->    .reminder-container {<!-- [et_pb_line_break_holder] -->      font-family: Arial, sans-serif;<!-- [et_pb_line_break_holder] -->      padding: 15px;<!-- [et_pb_line_break_holder] -->      max-width: 540px;<!-- [et_pb_line_break_holder] -->      margin: 0 auto;<!-- [et_pb_line_break_holder] -->      background: #f9f9f9;<!-- [et_pb_line_break_holder] -->      box-shadow: 2px 2px 5px rgba(0,0,0,0.1);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .reminder-container h1 {<!-- [et_pb_line_break_holder] -->      font-size: 20px;<!-- [et_pb_line_break_holder] -->      text-align: center;<!-- [et_pb_line_break_holder] -->      margin-bottom: 5px;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .reminder-container .subtitle {<!-- [et_pb_line_break_holder] -->      font-size: 14px;<!-- [et_pb_line_break_holder] -->      text-align: center;<!-- [et_pb_line_break_holder] -->      margin-bottom: 15px;<!-- [et_pb_line_break_holder] -->      color: #555;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .reminder-container select,<!-- [et_pb_line_break_holder] -->    .reminder-container input,<!-- [et_pb_line_break_holder] -->    .reminder-container button {<!-- [et_pb_line_break_holder] -->      width: 100%;<!-- [et_pb_line_break_holder] -->      padding: 8px;<!-- [et_pb_line_break_holder] -->      margin: 5px 0;<!-- [et_pb_line_break_holder] -->      border: 1px solid #ccc;<!-- [et_pb_line_break_holder] -->      border-radius: 4px;<!-- [et_pb_line_break_holder] -->      box-sizing: border-box;<!-- [et_pb_line_break_holder] -->      font-family: inherit;<!-- [et_pb_line_break_holder] -->      font-size: inherit;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .reminder-container select {<!-- [et_pb_line_break_holder] -->      height: 40px;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .reminder-container button {<!-- [et_pb_line_break_holder] -->      background: #007bff;<!-- [et_pb_line_break_holder] -->      color: white;<!-- [et_pb_line_break_holder] -->      cursor: pointer;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .reminder-container button:hover {<!-- [et_pb_line_break_holder] -->      background: #0056b3;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .reminder-container .reminder-section {<!-- [et_pb_line_break_holder] -->      display: none;<!-- [et_pb_line_break_holder] -->      margin-top: 15px;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .reminder-container .checkbox-group {<!-- [et_pb_line_break_holder] -->      display: flex;<!-- [et_pb_line_break_holder] -->      flex-wrap: wrap;<!-- [et_pb_line_break_holder] -->      max-height: 150px;<!-- [et_pb_line_break_holder] -->      overflow-y: auto;<!-- [et_pb_line_break_holder] -->      margin-bottom: 10px;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .reminder-container .checkbox-group label {<!-- [et_pb_line_break_holder] -->      display: inline-flex;<!-- [et_pb_line_break_holder] -->      align-items: center;<!-- [et_pb_line_break_holder] -->      width: 30%;<!-- [et_pb_line_break_holder] -->      padding: 10px 0;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .reminder-container .result {<!-- [et_pb_line_break_holder] -->      margin-top: 10px;<!-- [et_pb_line_break_holder] -->      font-weight: bold;<!-- [et_pb_line_break_holder] -->      text-align: center;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .reminder-container .note {<!-- [et_pb_line_break_holder] -->      font-size: 12px;<!-- [et_pb_line_break_holder] -->      color: gray;<!-- [et_pb_line_break_holder] -->      text-align: left;<!-- [et_pb_line_break_holder] -->      margin-top: 5px;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .reminder-container ul {<!-- [et_pb_line_break_holder] -->      padding-left: 20px;<!-- [et_pb_line_break_holder] -->      margin: 5px 0;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .required::after {<!-- [et_pb_line_break_holder] -->      content: \" *\";<!-- [et_pb_line_break_holder] -->      color: red;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .error {<!-- [et_pb_line_break_holder] -->      border-color: red;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .error-message {<!-- [et_pb_line_break_holder] -->      color: red;<!-- [et_pb_line_break_holder] -->      font-size: 12px;<!-- [et_pb_line_break_holder] -->      margin-top: -5px;<!-- [et_pb_line_break_holder] -->      margin-bottom: 5px;<!-- [et_pb_line_break_holder] -->      display: none;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .remove-btn {<!-- [et_pb_line_break_holder] -->      background-color: #f44336 !important;<!-- [et_pb_line_break_holder] -->      color: white;<!-- [et_pb_line_break_holder] -->      border: none;<!-- [et_pb_line_break_holder] -->      padding: 5px 10px;<!-- [et_pb_line_break_holder] -->      cursor: pointer;<!-- [et_pb_line_break_holder] -->      margin-top: 5px;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .add-btn, .submit-btn {<!-- [et_pb_line_break_holder] -->      margin-top: 15px;<!-- [et_pb_line_break_holder] -->      padding: 10px 15px;<!-- [et_pb_line_break_holder] -->      cursor: pointer;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .add-btn {<!-- [et_pb_line_break_holder] -->      background-color: #2196F3 !important;<!-- [et_pb_line_break_holder] -->      color: white;<!-- [et_pb_line_break_holder] -->      border: none;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .upload-btn {<!-- [et_pb_line_break_holder] -->      background-color: #2196F3 !important;<!-- [et_pb_line_break_holder] -->      color: white;<!-- [et_pb_line_break_holder] -->      border: none;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .submit-btn {<!-- [et_pb_line_break_holder] -->      background-color: #2196F3;<!-- [et_pb_line_break_holder] -->      color: white;<!-- [et_pb_line_break_holder] -->      border: none;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    .form-container {<!-- [et_pb_line_break_holder] -->      display: none;<!-- [et_pb_line_break_holder] -->      padding: 15px;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .form-container.active {<!-- [et_pb_line_break_holder] -->      display: block;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/* \u4fee\u6539unsubscribe\u6309\u94ae\u989c\u8272\u4e3a\u7ea2\u8272 *\/<!-- [et_pb_line_break_holder] -->    .unsubscribe-btn {<!-- [et_pb_line_break_holder] -->      background-color: #f44336 !important;<!-- [et_pb_line_break_holder] -->      color: white;<!-- [et_pb_line_break_holder] -->      border: none;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/* Loading spinner *\/<!-- [et_pb_line_break_holder] -->    #loading-overlay {<!-- [et_pb_line_break_holder] -->      position: fixed;<!-- [et_pb_line_break_holder] -->      top: 0;<!-- [et_pb_line_break_holder] -->      left: 0;<!-- [et_pb_line_break_holder] -->      width: 100%;<!-- [et_pb_line_break_holder] -->      height: 100%;<!-- [et_pb_line_break_holder] -->      background-color: rgba(0, 0, 0, 0.2);<!-- [et_pb_line_break_holder] -->      display: none;<!-- [et_pb_line_break_holder] -->      z-index: 999;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    #loading-spinner {<!-- [et_pb_line_break_holder] -->      position: fixed;<!-- [et_pb_line_break_holder] -->      top: 50%;<!-- [et_pb_line_break_holder] -->      left: 50%;<!-- [et_pb_line_break_holder] -->      transform: translate(-50%, -50%);<!-- [et_pb_line_break_holder] -->      display: none;<!-- [et_pb_line_break_holder] -->      z-index: 1000;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .spinner {<!-- [et_pb_line_break_holder] -->      border: 4px solid #f3f3f3;<!-- [et_pb_line_break_holder] -->      border-top: 4px solid #3498db;<!-- [et_pb_line_break_holder] -->      border-radius: 50%;<!-- [et_pb_line_break_holder] -->      width: 40px;<!-- [et_pb_line_break_holder] -->      height: 40px;<!-- [et_pb_line_break_holder] -->      animation: spin 2s linear infinite;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    @keyframes spin {<!-- [et_pb_line_break_holder] -->      0% { transform: rotate(0deg); }<!-- [et_pb_line_break_holder] -->      100% { transform: rotate(360deg); }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    .button-container {<!-- [et_pb_line_break_holder] -->      display: flex;<!-- [et_pb_line_break_holder] -->      justify-content: space-between;<!-- [et_pb_line_break_holder] -->      align-items: center;<!-- [et_pb_line_break_holder] -->      gap: 10px;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    .patent-item {<!-- [et_pb_line_break_holder] -->      border: 1px solid #ccc;<!-- [et_pb_line_break_holder] -->      border-radius: 5px;<!-- [et_pb_line_break_holder] -->      padding: 15px;<!-- [et_pb_line_break_holder] -->      margin-bottom: 15px;<!-- [et_pb_line_break_holder] -->      background-color: #fff;<!-- [et_pb_line_break_holder] -->      box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.05);<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    #user-info {<!-- [et_pb_line_break_holder] -->      margin-bottom: 20px;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    #user-info label {<!-- [et_pb_line_break_holder] -->      display: block;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    #user-info input {<!-- [et_pb_line_break_holder] -->      width: 100%;<!-- [et_pb_line_break_holder] -->      padding: 8px;<!-- [et_pb_line_break_holder] -->      margin: 10px 0;<!-- [et_pb_line_break_holder] -->      box-sizing: border-box;<!-- [et_pb_line_break_holder] -->      border: 1px solid #ccc;<!-- [et_pb_line_break_holder] -->      border-radius: 4px;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/* Math Captcha Style *\/<!-- [et_pb_line_break_holder] -->    .captcha-container {<!-- [et_pb_line_break_holder] -->      display: flex;<!-- [et_pb_line_break_holder] -->      flex-direction: column;<!-- [et_pb_line_break_holder] -->      margin-top: 15px;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    .captcha-container label {<!-- [et_pb_line_break_holder] -->      font-size: 14px;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    .captcha-container input {<!-- [et_pb_line_break_holder] -->      width: 50px;<!-- [et_pb_line_break_holder] -->      text-align: center;<!-- [et_pb_line_break_holder] -->      margin-top: 5px;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    .captcha-input {<!-- [et_pb_line_break_holder] -->      width: 100px; \/* \u8bbe\u7f6e\u66f4\u957f\u7684\u5bbd\u5ea6 *\/<!-- [et_pb_line_break_holder] -->      padding: 8px;<!-- [et_pb_line_break_holder] -->      margin-top: 5px;<!-- [et_pb_line_break_holder] -->      box-sizing: border-box;<!-- [et_pb_line_break_holder] -->      border: 1px solid #ccc;<!-- [et_pb_line_break_holder] -->      border-radius: 4px;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    \/* .captcha-question {<!-- [et_pb_line_break_holder] -->      font-size: 18px;<!-- [et_pb_line_break_holder] -->      margin-bottom: 5px;<!-- [et_pb_line_break_holder] -->    } *\/<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    .upload-btn-container {<!-- [et_pb_line_break_holder] -->    display: inline-flex;<!-- [et_pb_line_break_holder] -->    align-items: center;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .question-icon {<!-- [et_pb_line_break_holder] -->    font-size: 15px;<!-- [et_pb_line_break_holder] -->    color: #007bff;<!-- [et_pb_line_break_holder] -->    cursor: pointer;<!-- [et_pb_line_break_holder] -->    position: relative;<!-- [et_pb_line_break_holder] -->    display: inline-block;<!-- [et_pb_line_break_holder] -->    width: 20px;<!-- [et_pb_line_break_holder] -->    height: 20px;<!-- [et_pb_line_break_holder] -->    background-color: #007bff;<!-- [et_pb_line_break_holder] -->    color: white;<!-- [et_pb_line_break_holder] -->    border-radius: 50%;<!-- [et_pb_line_break_holder] -->    text-align: center;<!-- [et_pb_line_break_holder] -->    line-height: 24px;<!-- [et_pb_line_break_holder] -->    font-weight: bold;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u521d\u59cb\u9690\u85cf\u63d0\u793a\u6587\u672c *\/<!-- [et_pb_line_break_holder] -->  .tooltip-text {<!-- [et_pb_line_break_holder] -->    position: absolute;<!-- [et_pb_line_break_holder] -->    background-color: #fff;<!-- [et_pb_line_break_holder] -->    border: 1px solid #ccc;<!-- [et_pb_line_break_holder] -->    padding: 8px;<!-- [et_pb_line_break_holder] -->    border-radius: 5px;<!-- [et_pb_line_break_holder] -->    font-size: 14px;<!-- [et_pb_line_break_holder] -->    color: #333;<!-- [et_pb_line_break_holder] -->    margin-top: 25px;<!-- [et_pb_line_break_holder] -->    width: 250px;<!-- [et_pb_line_break_holder] -->    box-shadow: 0px 0px 5px rgba(0,0,0,0.1);<!-- [et_pb_line_break_holder] -->    visibility: hidden;  \/* \u521d\u59cb\u9690\u85cf *\/<!-- [et_pb_line_break_holder] -->    opacity: 0; \/* \u900f\u660e\u5ea6\u8bbe\u4e3a0 *\/<!-- [et_pb_line_break_holder] -->    transition: visibility 0s, opacity 0.3s ease-in-out;  \/* \u52a8\u753b\u8fc7\u6e21 *\/<!-- [et_pb_line_break_holder] -->    z-index: 100;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/* \u9f20\u6807\u60ac\u505c\u65f6\u663e\u793a\u63d0\u793a *\/<!-- [et_pb_line_break_holder] -->  .question-icon:hover .tooltip-text {<!-- [et_pb_line_break_holder] -->    visibility: visible;<!-- [et_pb_line_break_holder] -->    opacity: 1;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .tooltip-text a {<!-- [et_pb_line_break_holder] -->    color: #007bff;<!-- [et_pb_line_break_holder] -->    text-decoration: none;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  .tooltip-text a:hover {<!-- [et_pb_line_break_holder] -->    text-decoration: underline;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] -->  <\/style>\n<p><!-- [et_pb_line_break_holder] --><\/head><!-- [et_pb_line_break_holder] --><body><!-- [et_pb_line_break_holder] --><\/p>\n<div class=\"reminder-container\"><!-- [et_pb_line_break_holder] -->  <\/p>\n<h1>\uc911\uad6d \ud2b9\ud5c8 \uac31\uc2e0 \uc54c\ub9bc<\/h1>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div class=\"subtitle\">www.gbaiplawyer.com<\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <\/p>\n<div id=\"loading-overlay\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/p>\n<div id=\"loading-spinner\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"spinner\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  <!-- \u8ba2\u9605\u8868\u5355 --><!-- [et_pb_line_break_holder] -->  <\/p>\n<div id=\"subscribe-form-container\" class=\"form-container active\"><!-- [et_pb_line_break_holder] -->    <\/p>\n<form id=\"subscribe-form\" action=\"\/ko\/submit-url\/\" method=\"POST\" data-trp-original-action=\"\/submit-url\"><!-- [et_pb_line_break_holder] -->      <\/p>\n<div id=\"user-info\"><!-- [et_pb_line_break_holder] -->        <label class=\"required\">\uadc0\ud558\uc758 \uc774\ub984\uff1a\uff1a<\/label><input type=\"text\" name=\"user_name\" placeholder=\"\uc774\ub984\uc744 \uc785\ub825\ud558\uc138\uc694.\" required \/><!-- [et_pb_line_break_holder] -->        <label class=\"required\">\uc774\uba54\uc77c: \uc774\uba54\uc77c<\/label><input type=\"email\" name=\"user_email\" placeholder=\"\uc774\uba54\uc77c\uc744 \uc785\ub825\ud558\uc138\uc694.\" required \/><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div id=\"patent-list\"><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <\/p>\n<div class=\"button-container\"><!-- [et_pb_line_break_holder] -->        <button type=\"button\" class=\"add-btn\" onclick=\"addPatent()\">\ud2b9\ud5c8 \ucd94\uac00<\/button><!-- [et_pb_line_break_holder] -->        <span> \ub610\ub294 <\/span><!-- [et_pb_line_break_holder] -->        <button type=\"button\" class=\"upload-btn\" onclick=\"triggerFileInput()\">Excel\uc5d0\uc11c \ud2b9\ud5c8 \uc5c5\ub85c\ub4dc<\/button><!-- [et_pb_line_break_holder] -->        <!-- [et_pb_line_break_holder] -->        <!-- \u4fee\u6539\u90e8\u5206\uff1a\u6dfb\u52a0\u95ee\u53f7\u56fe\u6807 --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"upload-btn-container\"><!-- [et_pb_line_break_holder] -->          <!-- \u5706\u5f62\u95ee\u53f7\u56fe\u6807 --><!-- [et_pb_line_break_holder] -->          <span class=\"question-icon\" data-tip=\"Click to download an example Excel file.\"><!-- [et_pb_line_break_holder] -->            ?<!-- [et_pb_line_break_holder] -->            <!-- \u63d0\u793a\u4fe1\u606f\u5bb9\u5668 --><!-- [et_pb_line_break_holder] -->            <span class=\"tooltip-text\"><!-- [et_pb_line_break_holder] -->              \ud074\ub9ad\ud558\uc5ec <a href=\"\/ko\/\ub2e4\uc6b4\ub85c\ub4dc\/\ud2b9\ud5c8_\ub370\uc774\ud130_\ud15c\ud50c\ub9bf.xlsx\/\" download=\"patent_data_template.xlsx\">\uc608\uc81c Excel \ud30c\uc77c \ub2e4\uc6b4\ub85c\ub4dc<\/a>.<!-- [et_pb_line_break_holder] -->            <\/span><!-- [et_pb_line_break_holder] -->          <\/span><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->      <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <input type=\"file\" id=\"excel-upload\" accept=\".xlsx, .xls\" onchange=\"uploadExcel()\" style=\"display: none;\" \/><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <!-- \n\n<div id=\"captcha-container\"><!-- [et_pb_line_break_holder] -->        <label class=\"required captcha-question\" id=\"captcha-question\"><\/label><!-- [et_pb_line_break_holder] -->        <input type=\"text\" id=\"captcha-answer\" class=\"captcha-input\" required placeholder=\"\ub2f5\ubcc0\uc744 \uc785\ub825\ud558\uc138\uc694.\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<div id=\"captcha-error\" style=\"color: red; display: none;\">\ucea1\ucc28 \uc785\ub825\uc774 \uc798\ubabb\ub418\uc5c8\uc2b5\ub2c8\ub2e4! \ub2e4\uc2dc \uc2dc\ub3c4\ud574 \uc8fc\uc138\uc694.<\/div>\n<p><!-- [et_pb_line_break_holder] -->      <input type=\"hidden\" name=\"trp-form-language\" value=\"ko\"\/><\/div>\n<p> \u2013&gt;<!-- [et_pb_line_break_holder] -->\t  <!-- [et_pb_line_break_holder] -->    <!-- Turnstile \u9a8c\u8bc1<!-- [et_pb_line_break_holder] -->\t  <\/p>\n<div id=\"captcha-container\"><!-- [et_pb_line_break_holder] -->\t\t  <\/p>\n<div class=\"cf-turnstile\" data-sitekey=\"0x4AAAAAABgB2YOxnEnKT1fW\" data-theme=\"light\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->\t  <\/div>\n<p><!-- [et_pb_line_break_holder] -->    \u2013&gt;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      <button type=\"submit\" class=\"submit-btn\">\uad6c\ub3c5<\/button><!-- [et_pb_line_break_holder] -->      <\/p>\n<div id=\"subscribe-success\" style=\"display:none; color: green; margin-top: 10px;\">\u2705 \uad6c\ub3c5 \uc131\uacf5!<\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/form>\n<p><!-- [et_pb_line_break_holder] -->  <\/div>\n<p><!-- [et_pb_line_break_holder] --><\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><script src=\"https:\/\/challenges.cloudflare.com\/turnstile\/v0\/api.js\" async defer><\/script><!-- [et_pb_line_break_holder] --><script src=\"https:\/\/cdn.jsdelivr.net\/npm\/xlsx@0.18.5\/dist\/xlsx.full.min.js\"><\/script><!-- [et_pb_line_break_holder] --><script><!-- [et_pb_line_break_holder] -->  let patentIndex = 0;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function addPatent(patentType = '', patentNumber = '', patentTitle = '', filingDate = '') {<!-- [et_pb_line_break_holder] -->    const container = document.getElementById('patent-list');<!-- [et_pb_line_break_holder] -->    const div = document.createElement('div');<!-- [et_pb_line_break_holder] -->    div.className = 'patent-item';<!-- [et_pb_line_break_holder] -->    div.setAttribute('data-index', patentIndex);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    div.innerHTML = `<!-- [et_pb_line_break_holder] -->      <label class=\"required\">Patent Number\uff1a<\/label><input type=\"text\" name=\"patents[${patentIndex}][patentNumber]\" value=\"${patentNumber}\" required placeholder=\"e.g., 2015101618025\" \/><!-- [et_pb_line_break_holder] -->      <label class=\"required\">Patent Title:<\/label><input type=\"text\" name=\"patents[${patentIndex}][patentTitle]\" value=\"${patentTitle}\" required placeholder=\"e.g., Smart Energy Storage System\" \/><!-- [et_pb_line_break_holder] -->      <label class=\"required\">Filing Date (international filing date if from PCT)\uff1a<\/label><input type=\"date\" name=\"patents[${patentIndex}][filingDate]\" value=\"${filingDate}\" required \/><!-- [et_pb_line_break_holder] -->      <label class=\"required\">Patent Type\uff1a<\/label><!-- [et_pb_line_break_holder] -->      <select name=\"patents[${patentIndex}][patentType]\" required><!-- [et_pb_line_break_holder] --><option value=\"\" selected> -- Select One -- <\/option><!-- [et_pb_line_break_holder] --><option value=\"Invention\" ${patentType === 'Invention' ? 'selected' : ''}>Invention<\/option><!-- [et_pb_line_break_holder] --><option value=\"Utility Model\" ${patentType === 'Utility Model' ? 'selected' : ''}>Utility Model<\/option><!-- [et_pb_line_break_holder] --><option value=\"Design\" ${patentType === 'Design' ? 'selected' : ''}>Design<\/option><!-- [et_pb_line_break_holder] -->      <\/select><!-- [et_pb_line_break_holder] -->      <button type=\"button\" class=\"remove-btn\" onclick=\"removePatent(this)\">Remove<\/button><!-- [et_pb_line_break_holder] -->    `;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    container.appendChild(div);<!-- [et_pb_line_break_holder] -->    patentIndex++;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function removePatent(button) {<!-- [et_pb_line_break_holder] -->    const div = button.parentElement;<!-- [et_pb_line_break_holder] -->    div.remove();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function triggerFileInput() {<!-- [et_pb_line_break_holder] -->    document.getElementById('excel-upload').click();<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function uploadExcel() {<!-- [et_pb_line_break_holder] -->    const fileInput = document.getElementById('excel-upload');<!-- [et_pb_line_break_holder] -->    const file = fileInput.files[0];<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    if (!file) {<!-- [et_pb_line_break_holder] -->      alert('Please select an Excel file first.');<!-- [et_pb_line_break_holder] -->      return;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    const patentList = document.getElementById('patent-list');<!-- [et_pb_line_break_holder] -->    patentList.innerHTML = '';<!-- [et_pb_line_break_holder] -->    patentIndex = 0;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    fileInput.value = '';<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    const reader = new FileReader();<!-- [et_pb_line_break_holder] -->    reader.onload = function (e) {<!-- [et_pb_line_break_holder] -->      const data = new Uint8Array(e.target.result);<!-- [et_pb_line_break_holder] -->      const workbook = XLSX.read(data, { type: 'array' });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      const sheetName = workbook.SheetNames[0];<!-- [et_pb_line_break_holder] -->      const worksheet = workbook.Sheets[sheetName];<!-- [et_pb_line_break_holder] -->      const jsonData = XLSX.utils.sheet_to_json(worksheet, { header: 1 });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->      for (let i = 1; i < jsonData.length; i++) {<!-- [et_pb_line_break_holder] -->        const row = jsonData[i];<!-- [et_pb_line_break_holder] -->        if (row.length >= 4) {<!-- [et_pb_line_break_holder] -->\t\t  const number = row[0] ? row[0].toString().trim() : '';<!-- [et_pb_line_break_holder] -->          const type = row[1] ? row[1].toString().trim() : '';<!-- [et_pb_line_break_holder] -->          const title = row[2] ? row[2].toString().trim() : '';<!-- [et_pb_line_break_holder] -->          const date = row[3] ? formatExcelDate(row[3]) : '';<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->          addPatent(type, number, title, date);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->      }<!-- [et_pb_line_break_holder] -->    };<!-- [et_pb_line_break_holder] -->    reader.readAsArrayBuffer(file);<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  function formatExcelDate(excelDate) {<!-- [et_pb_line_break_holder] -->    if (typeof excelDate === 'number') {<!-- [et_pb_line_break_holder] -->      const date = new Date((excelDate - 25569) * 86400 * 1000);<!-- [et_pb_line_break_holder] -->      return date.toISOString().split('T')[0];<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    return excelDate;<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ \u751f\u6210\u968f\u673a\u7684\u52a0\u51cf\u6cd5\u7b97\u5f0f<!-- [et_pb_line_break_holder] -->  function generateCaptcha() {<!-- [et_pb_line_break_holder] -->    const num1 = Math.floor(Math.random() * 90) + 10; \/\/ \u751f\u6210 10 \u5230 99 \u4e4b\u95f4\u7684\u968f\u673a\u6570<!-- [et_pb_line_break_holder] -->    const num2 = Math.floor(Math.random() * 90) + 10; \/\/ \u751f\u6210 10 \u5230 99 \u4e4b\u95f4\u7684\u968f\u673a\u6570<!-- [et_pb_line_break_holder] -->    const operator = Math.random() < 0.5 ? '+' : '-'; \/\/ \u968f\u673a\u9009\u62e9\u52a0\u6cd5\u6216\u51cf\u6cd5<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ \u8bbe\u7f6e\u9a8c\u8bc1\u7801\u95ee\u9898\u548c\u7b54\u6848<!-- [et_pb_line_break_holder] -->    const question = `${num1} ${operator} ${num2}`;<!-- [et_pb_line_break_holder] -->    const answer = operator === '+' ? num1 + num2 : num1 - num2;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ \u4fdd\u5b58\u6b63\u786e\u7b54\u6848<!-- [et_pb_line_break_holder] -->    window.captchaAnswer = answer;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ \u66f4\u65b0\u754c\u9762\u663e\u793a\u7684\u9a8c\u8bc1\u7801\u95ee\u9898<!-- [et_pb_line_break_holder] -->    document.getElementById('captcha-question').textContent = \"What is \" + question + \" ?\";<!-- [et_pb_line_break_holder] -->  }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ \u5728\u9875\u9762\u52a0\u8f7d\u65f6\u751f\u6210\u4e00\u4e2a\u65b0\u7684\u9a8c\u8bc1\u7801<!-- [et_pb_line_break_holder] -->  \/\/ generateCaptcha();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ handle subscribe logic<!-- [et_pb_line_break_holder] -->  document.getElementById('subscribe-form').addEventListener('submit', function (e) {<!-- [et_pb_line_break_holder] -->    e.preventDefault();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ const captchaAnswerInput = document.getElementById('captcha-answer').value;<!-- [et_pb_line_break_holder] -->    \/\/ if (parseInt(captchaAnswerInput) !== window.captchaAnswer) {<!-- [et_pb_line_break_holder] -->    \/\/   document.getElementById('captcha-error').style.display = 'block';<!-- [et_pb_line_break_holder] -->    \/\/   generateCaptcha(); \/\/ \u5982\u679c\u9a8c\u8bc1\u7801\u9519\u8bef\uff0c\u91cd\u65b0\u751f\u6210\u65b0\u7684\u9a8c\u8bc1\u7801<!-- [et_pb_line_break_holder] -->    \/\/   return<!-- [et_pb_line_break_holder] -->    \/\/ } else {<!-- [et_pb_line_break_holder] -->    \/\/   document.getElementById('captcha-error').style.display = 'none';<!-- [et_pb_line_break_holder] -->    \/\/ }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ \u83b7\u53d6\u8868\u5355\u4e2d\u7684\u7528\u6237\u8f93\u5165<!-- [et_pb_line_break_holder] -->    const userName = document.querySelector('input[name=\"user_name\"]').value.trim();<!-- [et_pb_line_break_holder] -->    const userEmail = document.querySelector('input[name=\"user_email\"]').value.trim();<!-- [et_pb_line_break_holder] -->    const patents = document.querySelectorAll('input[name^=\"patents\"]'); \/\/ \u83b7\u53d6\u4e13\u5229\u76f8\u5173\u7684\u8f93\u5165\u9879<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ 1. \u68c0\u67e5\u5fc5\u586b\u5b57\u6bb5\u662f\u5426\u4e3a\u7a7a<!-- [et_pb_line_break_holder] -->    \/\/ if (!userName || !userEmail || patents.length === 0) {<!-- [et_pb_line_break_holder] -->    \/\/  alert('Please fill in all required fields (Name, Email, and Patent Information).');<!-- [et_pb_line_break_holder] -->    \/\/  return; \/\/ \u5982\u679c\u5fc5\u586b\u5b57\u6bb5\u4e3a\u7a7a\uff0c\u505c\u6b62\u63d0\u4ea4<!-- [et_pb_line_break_holder] -->    \/\/ }<!-- [et_pb_line_break_holder] -->\t<!-- [et_pb_line_break_holder] -->\t\/\/ 1. \u68c0\u67e5\u5fc5\u586b\u5b57\u6bb5\u662f\u5426\u4e3a\u7a7a<!-- [et_pb_line_break_holder] -->\tif (!userName || !userEmail) {<!-- [et_pb_line_break_holder] -->\t  alert('Please fill in your Name and Email.');<!-- [et_pb_line_break_holder] -->\t  return; \/\/ \u505c\u6b62\u63d0\u4ea4<!-- [et_pb_line_break_holder] -->\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\t\/\/ 2. \u68c0\u67e5\u6240\u6709 select \u662f\u5426\u90fd\u6709\u503c\uff08\u6392\u9664\u9ed8\u8ba4\u7a7a\u503c\uff09<!-- [et_pb_line_break_holder] -->\tlet hasEmptySelect = false;<!-- [et_pb_line_break_holder] -->\tpatents.forEach(select => {<!-- [et_pb_line_break_holder] -->\t  if (!select.value) {<!-- [et_pb_line_break_holder] -->\t\thasEmptySelect = true;<!-- [et_pb_line_break_holder] -->\t\tselect.classList.add('error'); \/\/ \u53ef\u9009\uff1a\u52a0\u4e0a\u7ea2\u6846\u63d0\u9192<!-- [et_pb_line_break_holder] -->\t  } else {<!-- [et_pb_line_break_holder] -->\t\tselect.classList.remove('error');<!-- [et_pb_line_break_holder] -->\t  }<!-- [et_pb_line_break_holder] -->\t});<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\tif (hasEmptySelect) {<!-- [et_pb_line_break_holder] -->\t  alert('Please select a valid Patent Type for all patents.');<!-- [et_pb_line_break_holder] -->\t  return;<!-- [et_pb_line_break_holder] -->\t}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    const loadingOverlay = document.getElementById('loading-overlay');<!-- [et_pb_line_break_holder] -->    const loadingSpinner = document.getElementById('loading-spinner');<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    loadingOverlay.style.display = 'block';<!-- [et_pb_line_break_holder] -->    loadingSpinner.style.display = 'block';<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ \u83b7\u53d6\u7528\u6237\u8f93\u5165\u7684\u6570\u636e<!-- [et_pb_line_break_holder] -->    const formData = new FormData(e.target);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    fetch('\/wp-json\/patent-reminder\/subscribe', {  \/\/ \u4f7f\u7528 WordPress REST API \u53d1\u9001\u8bf7\u6c42<!-- [et_pb_line_break_holder] -->      method: 'POST',<!-- [et_pb_line_break_holder] -->      body: formData,<!-- [et_pb_line_break_holder] -->    })<!-- [et_pb_line_break_holder] -->      .then(response => response.json())<!-- [et_pb_line_break_holder] -->      .then(data => {<!-- [et_pb_line_break_holder] -->        loadingOverlay.style.display = 'none';<!-- [et_pb_line_break_holder] -->        loadingSpinner.style.display = 'none';<!-- [et_pb_line_break_holder] -->        if (data.success) {<!-- [et_pb_line_break_holder] -->          document.getElementById('subscribe-success').style.display = 'block';<!-- [et_pb_line_break_holder] -->        } else {<!-- [et_pb_line_break_holder] -->          alert(data.message);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->\t\t    \/\/ turnstile.reset();<!-- [et_pb_line_break_holder] -->        \/\/ generateCaptcha(); \/\/ \u63d0\u4ea4\u540e\u91cd\u65b0\u751f\u6210\u65b0\u7684\u9a8c\u8bc1\u7801<!-- [et_pb_line_break_holder] -->      })<!-- [et_pb_line_break_holder] -->      .catch(error => {<!-- [et_pb_line_break_holder] -->        loadingOverlay.style.display = 'none';<!-- [et_pb_line_break_holder] -->        loadingSpinner.style.display = 'none';<!-- [et_pb_line_break_holder] -->        alert('An error occurred. Please try again.');<!-- [et_pb_line_break_holder] -->      });<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ handle question icon logic<!-- [et_pb_line_break_holder] -->  let tooltipTimeout;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  const questionIcon = document.querySelector('.question-icon');<!-- [et_pb_line_break_holder] -->  const tooltip = questionIcon.querySelector('.tooltip-text');<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  questionIcon.addEventListener('mouseenter', function() {<!-- [et_pb_line_break_holder] -->    \/\/ \u6e05\u9664\u4e4b\u524d\u7684\u5b9a\u65f6\u5668\uff08\u5982\u679c\u6709\uff09<!-- [et_pb_line_break_holder] -->    clearTimeout(tooltipTimeout);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    \/\/ \u663e\u793a\u63d0\u793a<!-- [et_pb_line_break_holder] -->    tooltip.style.visibility = 'visible';<!-- [et_pb_line_break_holder] -->    tooltip.style.opacity = 1;<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  questionIcon.addEventListener('mouseleave', function() {<!-- [et_pb_line_break_holder] -->    \/\/ \u8bbe\u7f6e\u5ef6\u8fdf5\u79d2\u540e\u9690\u85cf\u63d0\u793a<!-- [et_pb_line_break_holder] -->    tooltipTimeout = setTimeout(() => {<!-- [et_pb_line_break_holder] -->      tooltip.style.visibility = 'hidden';<!-- [et_pb_line_break_holder] -->      tooltip.style.opacity = 0;<!-- [et_pb_line_break_holder] -->    }, 5000);<!-- [et_pb_line_break_holder] -->  });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ \u9ed8\u8ba4\u751f\u6210\u4e00\u4e2aitem<!-- [et_pb_line_break_holder] -->  addPatent();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/ \u70b9\u51fb\u63d0\u793a\u4e2d\u7684\u4e0b\u8f7d\u94fe\u63a5\uff0c\u624b\u52a8\u89e6\u53d1\u6587\u4ef6\u4e0b\u8f7d<!-- [et_pb_line_break_holder] -->  \/\/ downloadLink.addEventListener('click', function(event) {<!-- [et_pb_line_break_holder] -->  \/\/   event.preventDefault(); \/\/ \u963b\u6b62\u9ed8\u8ba4\u94fe\u63a5\u884c\u4e3a<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->  \/\/   \/\/ \u624b\u52a8\u521b\u5efa\u4e00\u4e2a\u865a\u62df\u7684\u4e0b\u8f7d\u94fe\u63a5\u5e76\u89e6\u53d1\u70b9\u51fb\u4e8b\u4ef6<!-- [et_pb_line_break_holder] -->  \/\/   const downloadFileUrl = '\/download\/patent_data_template.xlsx';  \/\/ \u786e\u4fdd\u8fd9\u91cc\u8def\u5f84\u6b63\u786e<!-- [et_pb_line_break_holder] -->  \/\/   const a = document.createElement('a');<!-- [et_pb_line_break_holder] -->  \/\/   a.href = downloadFileUrl;<!-- [et_pb_line_break_holder] -->  \/\/   a.download = 'patent_data_template.xlsx'; \/\/ \u8bbe\u7f6e\u4e0b\u8f7d\u6587\u4ef6\u540d<!-- [et_pb_line_break_holder] -->  \/\/   document.body.appendChild(a);  \/\/ \u6dfb\u52a0\u5230\u6587\u6863\u4e2d<!-- [et_pb_line_break_holder] -->  \/\/   a.click();  \/\/ \u89e6\u53d1\u70b9\u51fb\u4e0b\u8f7d<!-- [et_pb_line_break_holder] -->  \/\/   document.body.removeChild(a);  \/\/ \u5220\u9664\u865a\u62df\u94fe\u63a5<!-- [et_pb_line_break_holder] -->  \/\/ });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] --><\/script><!-- [et_pb_line_break_holder] --><\/body><!-- [et_pb_line_break_holder] --><\/html><!-- [et_pb_line_break_holder] -->[\/et_pb_code][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"]<\/p>\n<p>\ud2b9\ud5c8 \uac31\uc2e0 \uae30\ud55c\uc744 \ub193\uce60\uae4c \ubd10 \uac71\uc815\ub418\uc2dc\ub098\uc694? \uc5f0\uae08\uc561\uc774 \uc5bc\ub9c8\uc778\uc9c0 \uc798 \ubaa8\ub974\uc2dc\ub098\uc694? \ub2f9\uc0ac\uc758 \ucd5c\uc2e0 \ubb34\ub8cc \uac04\ud3b8 \ub3c4\uad6c\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc911\uad6d\uc5d0\uc11c \ud2b9\ud5c8\ub97c \uad00\ub9ac\ud574 \ubcf4\uc138\uc694.<\/p>\n<p>\uc2dc\uc791\ud558\ub824\uba74 \uc774\ub984, \uc774\uba54\uc77c \uc8fc\uc18c, \ubd80\uc5ec\ub41c \ud2b9\ud5c8\uc758 \uc138\ubd80 \uc815\ubcf4(\ud2b9\ud5c8 \ubc88\ud638, \uc81c\ubaa9, \uc720\ud615, \ucd9c\uc6d0\uc77c \ud3ec\ud568)\ub97c \uc785\ub825\ud569\ub2c8\ub2e4. \uc774 \uc815\ubcf4\ub97c \uc9c1\uc811 \uc785\ub825\ud558\uac70\ub098 Excel \ud30c\uc77c\uc744 \uc5c5\ub85c\ub4dc\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4. \uadf8\ub7f0 \ub2e4\uc74c \uc54c\ub9bc \uc11c\ube44\uc2a4\ub97c \uad6c\ub3c5\ud558\uc138\uc694. \uc989\uc2dc \uad6c\ub3c5 \uc774\uba54\uc77c 1\ud1b5\uacfc \ub9e4\ub144 \uac01 \ub9c8\uac10\uc77c \uc804\uc5d0 \uc54c\ub9bc \uc774\uba54\uc77c\uc744 2\ud1b5\uc529 \ubc1b\uac8c \ub429\ub2c8\ub2e4. <a href=\"https:\/\/www.gbaiplawyer.com\/wp-content\/uploads\/2025\/06\/WPS\u62fc\u56fe1-scaled.png\">\uc5ec\uae30\uc5d0\uc11c \uc9c0\uce68\uc744 \ub2e4\uc6b4\ub85c\ub4dc\ud558\uc138\uc694.<\/a><\/p>\n<p>\ub2e4\uc74c \uc5f0\ub77d\ucc98\ub85c \ubb38\uc758\ud558\uc138\uc694. <a href=\"mailto:contact@gbaiplawyer.com\">contact@gbaiplawyer.com<\/a> \uc5d0 \ubb38\uc758\ud558\uc138\uc694.<\/p>\n<p>[\/et_pb_text][\/et_pb_column][et_pb_column type=\"1_2\u2033 _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"][et_pb_code _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"]<!DOCTYPE html><!-- [et_pb_line_break_holder] --><html lang=\"en\"><!-- [et_pb_line_break_holder] --><head><!-- [et_pb_line_break_holder] -->    <meta charset=\"UTF-8\"><!-- [et_pb_line_break_holder] -->    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"><!-- [et_pb_line_break_holder] -->    <title>China IP Official Fee Calculator (Fixed)<\/title><!-- [et_pb_line_break_holder] -->    <\/p>\n<style><!-- [et_pb_line_break_holder] -->        .calculator-container {<!-- [et_pb_line_break_holder] -->            font-family: Arial, sans-serif;<!-- [et_pb_line_break_holder] -->            padding: 15px;<!-- [et_pb_line_break_holder] -->            max-width: 500px;<!-- [et_pb_line_break_holder] -->            margin: 0 auto;<!-- [et_pb_line_break_holder] -->            border: 1px solid #ddd;<!-- [et_pb_line_break_holder] -->            border-radius: 5px;<!-- [et_pb_line_break_holder] -->            background: #f9f9f9;<!-- [et_pb_line_break_holder] -->            box-shadow: 2px 2px 5px rgba(0,0,0,0.1);<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        .calculator-container h1 {<!-- [et_pb_line_break_holder] -->            font-size: 20px;<!-- [et_pb_line_break_holder] -->            text-align: center;<!-- [et_pb_line_break_holder] -->            margin-bottom: 5px;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        .calculator-container .subtitle {<!-- [et_pb_line_break_holder] -->            font-size: 14px;<!-- [et_pb_line_break_holder] -->            text-align: center;<!-- [et_pb_line_break_holder] -->            margin-bottom: 15px;<!-- [et_pb_line_break_holder] -->            color: #555;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        .calculator-container select,<!-- [et_pb_line_break_holder] -->        .calculator-container input,<!-- [et_pb_line_break_holder] -->        .calculator-container button {<!-- [et_pb_line_break_holder] -->            width: 100%;<!-- [et_pb_line_break_holder] -->            padding: 8px;<!-- [et_pb_line_break_holder] -->            margin: 5px 0;<!-- [et_pb_line_break_holder] -->            border: 1px solid #ccc;<!-- [et_pb_line_break_holder] -->            border-radius: 4px;<!-- [et_pb_line_break_holder] -->            box-sizing: border-box;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        .calculator-container select {<!-- [et_pb_line_break_holder] -->            height: 40px;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        .calculator-container button {<!-- [et_pb_line_break_holder] -->            background: #007bff;<!-- [et_pb_line_break_holder] -->            color: white;<!-- [et_pb_line_break_holder] -->            cursor: pointer;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        .calculator-container button:hover {<!-- [et_pb_line_break_holder] -->            background: #0056b3;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        .calculator-container .calculator-section {<!-- [et_pb_line_break_holder] -->            display: none;<!-- [et_pb_line_break_holder] -->            margin-top: 15px;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        .calculator-container .checkbox-group {<!-- [et_pb_line_break_holder] -->            display: flex;<!-- [et_pb_line_break_holder] -->            flex-wrap: wrap;<!-- [et_pb_line_break_holder] -->            max-height: 150px;<!-- [et_pb_line_break_holder] -->            overflow-y: auto;<!-- [et_pb_line_break_holder] -->            margin-bottom: 10px;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        .calculator-container .checkbox-group label {<!-- [et_pb_line_break_holder] -->            display: inline-flex;<!-- [et_pb_line_break_holder] -->            align-items: center;<!-- [et_pb_line_break_holder] -->            width: 30%;<!-- [et_pb_line_break_holder] -->            padding: 10px 0;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        .calculator-container .result {<!-- [et_pb_line_break_holder] -->            margin-top: 10px;<!-- [et_pb_line_break_holder] -->            font-weight: bold;<!-- [et_pb_line_break_holder] -->            text-align: center;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        .calculator-container .note {<!-- [et_pb_line_break_holder] -->            font-size: 12px;<!-- [et_pb_line_break_holder] -->            color: gray;<!-- [et_pb_line_break_holder] -->            text-align: left;<!-- [et_pb_line_break_holder] -->            margin-top: 5px;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        .calculator-container ul {<!-- [et_pb_line_break_holder] -->            padding-left: 20px;<!-- [et_pb_line_break_holder] -->            margin: 5px 0;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        .required::after {<!-- [et_pb_line_break_holder] -->            content: \" *\";<!-- [et_pb_line_break_holder] -->            color: red;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        .error {<!-- [et_pb_line_break_holder] -->            border-color: red;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        .error-message {<!-- [et_pb_line_break_holder] -->            color: red;<!-- [et_pb_line_break_holder] -->            font-size: 12px;<!-- [et_pb_line_break_holder] -->            margin-top: -5px;<!-- [et_pb_line_break_holder] -->            margin-bottom: 5px;<!-- [et_pb_line_break_holder] -->            display: none;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->    <\/style>\n<p><!-- [et_pb_line_break_holder] --><\/head><!-- [et_pb_line_break_holder] --><body><!-- [et_pb_line_break_holder] -->    <\/p>\n<div class=\"calculator-container\"><!-- [et_pb_line_break_holder] -->        <\/p>\n<h1>\uc911\uad6d IP \uacf5\uc2dd \uc218\uc218\ub8cc \uacc4\uc0b0\uae30<\/h1>\n<p><!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"subtitle\">www.gbaiplawyer.com<\/div>\n<p><!-- [et_pb_line_break_holder] -->        <label for=\"calculatorType\" class=\"required\">\uacc4\uc0b0\uae30\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4:<\/label><!-- [et_pb_line_break_holder] -->        <select id=\"calculatorType\" onchange=\"showCalculator()\"><!-- [et_pb_line_break_holder] --><option value=\"\">- \ud558\ub098 \uc120\ud0dd -<\/option><!-- [et_pb_line_break_holder] --><option value=\"patentApp\">\ud2b9\ud5c8 \ucd9c\uc6d0 \uc218\uc218\ub8cc<\/option><!-- [et_pb_line_break_holder] --><option value=\"patentMaint\">\ud2b9\ud5c8 \uc720\uc9c0 \uad00\ub9ac \uc218\uc218\ub8cc<\/option><!-- [et_pb_line_break_holder] --><option value=\"trademark\">\uc0c1\ud45c \uc2e0\uccad \uc218\uc218\ub8cc<\/option><!-- [et_pb_line_break_holder] -->        <\/select><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <!-- Patent Application Fee Calculator --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div id=\"patentApp\" class=\"calculator-section\"><!-- [et_pb_line_break_holder] -->            <label for=\"patentTypeApp\" class=\"required\">\ud2b9\ud5c8 \uc720\ud615:<\/label><!-- [et_pb_line_break_holder] -->            <select id=\"patentTypeApp\" required onchange=\"toggleClaimsInput()\"><!-- [et_pb_line_break_holder] --><option value=\"\">\ud2b9\ud5c8 \uc720\ud615 \uc120\ud0dd<\/option><!-- [et_pb_line_break_holder] --><option value=\"invention\">\uad6d\ub0b4 \ubc1c\uba85<\/option><!-- [et_pb_line_break_holder] --><option value=\"utility\">\uad6d\ub0b4 \uc2e4\uc6a9\uc2e0\uc548<\/option><!-- [et_pb_line_break_holder] --><option value=\"design\">\uad6d\ub0b4 \ub514\uc790\uc778<\/option><!-- [et_pb_line_break_holder] --><option value=\"pct_invention\">\uc911\uad6d PCT \uad6d\uac00 \ub2e8\uacc4 \ucd9c\uc6d0(\ubc1c\uba85)<\/option><!-- [et_pb_line_break_holder] --><option value=\"pct_utility\">\uc911\uad6d PCT \uad6d\uac00 \ub2e8\uacc4 \ucd9c\uc6d0(\uc2e4\uc6a9\uc2e0\uc548)<\/option><!-- [et_pb_line_break_holder] -->            <\/select><!-- [et_pb_line_break_holder] -->            <\/p>\n<div id=\"patentTypeAppError\" class=\"error-message\">\ud2b9\ud5c8 \uc720\ud615\uc744 \uc120\ud0dd\ud558\uc138\uc694.<\/div>\n<p><!-- [et_pb_line_break_holder] -->            <label for=\"priorityApp\" class=\"required\">\ud074\ub808\uc784 \uc6b0\uc120 \uc21c\uc704?<\/label><!-- [et_pb_line_break_holder] -->            <select id=\"priorityApp\" required onchange=\"togglePriorityInputs()\"><!-- [et_pb_line_break_holder] --><option value=\"\">\uc635\uc158 \uc120\ud0dd<\/option><!-- [et_pb_line_break_holder] --><option value=\"no\">\uc544\ub2c8\uc694<\/option><!-- [et_pb_line_break_holder] --><option value=\"yes\">\uc608<\/option><!-- [et_pb_line_break_holder] -->            <\/select><!-- [et_pb_line_break_holder] -->            <\/p>\n<div id=\"priorityAppError\" class=\"error-message\">\uc635\uc158\uc744 \uc120\ud0dd\ud574 \uc8fc\uc138\uc694.<\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div id=\"priorityCountDivApp\" style=\"display: none;\"><!-- [et_pb_line_break_holder] -->                <label for=\"priorityCountApp\" class=\"required\">\uc6b0\uc120\uc21c\uc704 \uc218:<\/label><!-- [et_pb_line_break_holder] -->                <input type=\"number\" id=\"priorityCountApp\" min=\"1\" value=\"1\"><!-- [et_pb_line_break_holder] -->                <\/p>\n<div id=\"priorityCountAppError\" class=\"error-message\">\uc720\ud6a8\ud55c \ubc88\ud638\ub97c \uc785\ub825\ud558\uc138\uc694.<\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div id=\"priorityDateDivApp\" style=\"display: none;\"><!-- [et_pb_line_break_holder] -->                <label for=\"priorityDateApp\" class=\"required\">\uc6b0\uc120\uc21c\uc704 \ub0a0\uc9dc:<\/label><!-- [et_pb_line_break_holder] -->                <input type=\"date\" id=\"priorityDateApp\" required><!-- [et_pb_line_break_holder] -->                <\/p>\n<div id=\"priorityDateAppError\" class=\"error-message\">\ub0a0\uc9dc\ub97c \uc120\ud0dd\ud558\uc138\uc694.<\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div id=\"claimsDivApp\"><!-- [et_pb_line_break_holder] -->                <label for=\"claimsApp\" class=\"required\">\uccad\uad6c \uac74\uc218:<\/label><!-- [et_pb_line_break_holder] -->                <input type=\"number\" id=\"claimsApp\" min=\"1\" required value=\"1\"><!-- [et_pb_line_break_holder] -->                <\/p>\n<div id=\"claimsAppError\" class=\"error-message\">\uc720\ud6a8\ud55c \ubc88\ud638\ub97c \uc785\ub825\ud558\uc138\uc694.<\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/div>\n<p><!-- [et_pb_line_break_holder] -->            <button onclick=\"calculatePatentAppFees()\">\uacc4\uc0b0<\/button><!-- [et_pb_line_break_holder] -->            <\/p>\n<div id=\"resultApp\" class=\"result\" style=\"display: none;\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <!-- Patent Maintenance Fee Calculator --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div id=\"patentMaint\" class=\"calculator-section\"><!-- [et_pb_line_break_holder] -->            <label for=\"patentTypeMaint\" class=\"required\">\ud2b9\ud5c8 \uc720\ud615:<\/label><!-- [et_pb_line_break_holder] -->            <select id=\"patentTypeMaint\" required><!-- [et_pb_line_break_holder] --><option value=\"\">\ud2b9\ud5c8 \uc720\ud615 \uc120\ud0dd<\/option><!-- [et_pb_line_break_holder] --><option value=\"invention\">\ubc1c\uba85 \ud2b9\ud5c8<\/option><!-- [et_pb_line_break_holder] --><option value=\"utility\">\uc2e4\uc6a9\uc2e0\uc548 \ud2b9\ud5c8<\/option><!-- [et_pb_line_break_holder] --><option value=\"design\">\ub514\uc790\uc778 \ud2b9\ud5c8<\/option><!-- [et_pb_line_break_holder] -->            <\/select><!-- [et_pb_line_break_holder] -->            <\/p>\n<div id=\"patentTypeMaintError\" class=\"error-message\">\ud2b9\ud5c8 \uc720\ud615\uc744 \uc120\ud0dd\ud558\uc138\uc694.<\/div>\n<p><!-- [et_pb_line_break_holder] -->            <label for=\"applicationDateMaint\" class=\"required\">\ucd9c\uc6d0\uc77c(PCT\uc758 \uacbd\uc6b0 \uad6d\uc81c \ucd9c\uc6d0\uc77c):<\/label><!-- [et_pb_line_break_holder] -->            <input type=\"date\" id=\"applicationDateMaint\" required><!-- [et_pb_line_break_holder] -->            <\/p>\n<div id=\"applicationDateMaintError\" class=\"error-message\">\ub0a0\uc9dc\ub97c \uc120\ud0dd\ud558\uc138\uc694.<\/div>\n<p><!-- [et_pb_line_break_holder] -->            <button onclick=\"calculatePatentMaintFee()\">\uc218\uc218\ub8cc \uacc4\uc0b0<\/button><!-- [et_pb_line_break_holder] -->            <\/p>\n<div id=\"resultMaint\" class=\"result\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        <!-- Trademark Application Fee Calculator --><!-- [et_pb_line_break_holder] -->        <\/p>\n<div id=\"trademark\" class=\"calculator-section\"><!-- [et_pb_line_break_holder] -->            <label class=\"required\">\uba4b\uc9c4 \ubd84\ub958\ub97c \uc120\ud0dd\ud569\ub2c8\ub2e4:<\/label><!-- [et_pb_line_break_holder] -->            <\/p>\n<div class=\"checkbox-group\" id=\"classSelection\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <\/p>\n<div id=\"classSelectionError\" class=\"error-message\">\ud558\ub098 \uc774\uc0c1\uc758 \uc218\uc5c5\uc744 \uc120\ud0dd\ud574 \uc8fc\uc138\uc694.<\/div>\n<p><!-- [et_pb_line_break_holder] -->            <button onclick=\"generateTrademarkInputs()\">\uc120\ud0dd \ud655\uc778<\/button><!-- [et_pb_line_break_holder] -->            <\/p>\n<div id=\"inputFields\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->            <button onclick=\"calculateTrademarkFee()\">\uc218\uc218\ub8cc \uacc4\uc0b0<\/button><!-- [et_pb_line_break_holder] -->            <\/p>\n<div id=\"resultTrademark\" class=\"result\"><\/div>\n<p><!-- [et_pb_line_break_holder] -->        <\/div>\n<p><!-- [et_pb_line_break_holder] -->    <\/div>\n<p><!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    <script><!-- [et_pb_line_break_holder] -->        \/\/ Normalize date to avoid time zone issues<!-- [et_pb_line_break_holder] -->        function normalizeDate(date) {<!-- [et_pb_line_break_holder] -->            const newDate = new Date(date);<!-- [et_pb_line_break_holder] -->            newDate.setHours(0, 0, 0, 0);<!-- [et_pb_line_break_holder] -->            return newDate;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/ Show selected calculator<!-- [et_pb_line_break_holder] -->        function showCalculator() {<!-- [et_pb_line_break_holder] -->            const type = document.getElementById('calculatorType').value;<!-- [et_pb_line_break_holder] -->            document.getElementById('patentApp').style.display = 'none';<!-- [et_pb_line_break_holder] -->            document.getElementById('patentMaint').style.display = 'none';<!-- [et_pb_line_break_holder] -->            document.getElementById('trademark').style.display = 'none';<!-- [et_pb_line_break_holder] -->            if (type) {<!-- [et_pb_line_break_holder] -->                document.getElementById(type).style.display = 'block';<!-- [et_pb_line_break_holder] -->                if (type === 'trademark') initTrademarkClasses();<!-- [et_pb_line_break_holder] -->                if (type === 'patentApp') {<!-- [et_pb_line_break_holder] -->                    toggleClaimsInput();<!-- [et_pb_line_break_holder] -->                    togglePriorityInputs();<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/ Toggle priority inputs<!-- [et_pb_line_break_holder] -->        function togglePriorityInputs() {<!-- [et_pb_line_break_holder] -->            const hasPriority = document.getElementById('priorityApp').value === 'yes';<!-- [et_pb_line_break_holder] -->            document.getElementById('priorityCountDivApp').style.display = hasPriority ? 'block' : 'none';<!-- [et_pb_line_break_holder] -->            document.getElementById('priorityDateDivApp').style.display = hasPriority ? 'block' : 'none';<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/ Toggle claims input<!-- [et_pb_line_break_holder] -->        function toggleClaimsInput() {<!-- [et_pb_line_break_holder] -->            const patentType = document.getElementById('patentTypeApp').value;<!-- [et_pb_line_break_holder] -->            const claimsDiv = document.getElementById('claimsDivApp');<!-- [et_pb_line_break_holder] -->            if (patentType === 'design') {<!-- [et_pb_line_break_holder] -->                claimsDiv.style.display = 'none';<!-- [et_pb_line_break_holder] -->                document.getElementById('claimsApp').removeAttribute('required');<!-- [et_pb_line_break_holder] -->            } else {<!-- [et_pb_line_break_holder] -->                claimsDiv.style.display = 'block';<!-- [et_pb_line_break_holder] -->                document.getElementById('claimsApp').setAttribute('required', '');<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/ Clear error states<!-- [et_pb_line_break_holder] -->        function clearErrors(sectionId) {<!-- [et_pb_line_break_holder] -->            const section = document.getElementById(sectionId);<!-- [et_pb_line_break_holder] -->            const errors = section.getElementsByClassName('error-message');<!-- [et_pb_line_break_holder] -->            const inputs = section.getElementsByTagName('input');<!-- [et_pb_line_break_holder] -->            const selects = section.getElementsByTagName('select');<!-- [et_pb_line_break_holder] -->            for (let error of errors) error.style.display = 'none';<!-- [et_pb_line_break_holder] -->            for (let input of inputs) input.classList.remove('error');<!-- [et_pb_line_break_holder] -->            for (let select of selects) select.classList.remove('error');<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->\/\/ Patent Application Fee Calculator<!-- [et_pb_line_break_holder] -->function calculatePatentAppFees() {<!-- [et_pb_line_break_holder] -->    clearErrors('patentApp');<!-- [et_pb_line_break_holder] -->    const patentType = document.getElementById('patentTypeApp').value;<!-- [et_pb_line_break_holder] -->    const hasPriority = document.getElementById('priorityApp').value;<!-- [et_pb_line_break_holder] -->    const priorityCount = document.getElementById('priorityCountApp').value;<!-- [et_pb_line_break_holder] -->    const priorityDate = document.getElementById('priorityDateApp').value;<!-- [et_pb_line_break_holder] -->    const claims = document.getElementById('claimsApp').value;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    if (!patentType) {<!-- [et_pb_line_break_holder] -->        document.getElementById('patentTypeApp').classList.add('error');<!-- [et_pb_line_break_holder] -->        document.getElementById('patentTypeAppError').style.display = 'block';<!-- [et_pb_line_break_holder] -->        document.getElementById('patentTypeApp').focus();<!-- [et_pb_line_break_holder] -->        return;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    if (!hasPriority) {<!-- [et_pb_line_break_holder] -->        document.getElementById('priorityApp').classList.add('error');<!-- [et_pb_line_break_holder] -->        document.getElementById('priorityAppError').style.display = 'block';<!-- [et_pb_line_break_holder] -->        document.getElementById('priorityApp').focus();<!-- [et_pb_line_break_holder] -->        return;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    if (hasPriority === 'yes') {<!-- [et_pb_line_break_holder] -->        if (!priorityCount || priorityCount < 1) {<!-- [et_pb_line_break_holder] -->            document.getElementById('priorityCountApp').classList.add('error');<!-- [et_pb_line_break_holder] -->            document.getElementById('priorityCountAppError').style.display = 'block';<!-- [et_pb_line_break_holder] -->            document.getElementById('priorityCountApp').focus();<!-- [et_pb_line_break_holder] -->            return;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->        if (!priorityDate) {<!-- [et_pb_line_break_holder] -->            document.getElementById('priorityDateApp').classList.add('error');<!-- [et_pb_line_break_holder] -->            document.getElementById('priorityDateAppError').style.display = 'block';<!-- [et_pb_line_break_holder] -->            document.getElementById('priorityDateApp').focus();<!-- [et_pb_line_break_holder] -->            return;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] -->    if (patentType !== 'design' && (!claims || claims < 1)) {<!-- [et_pb_line_break_holder] -->        document.getElementById('claimsApp').classList.add('error');<!-- [et_pb_line_break_holder] -->        document.getElementById('claimsAppError').style.display = 'block';<!-- [et_pb_line_break_holder] -->        document.getElementById('claimsApp').focus();<!-- [et_pb_line_break_holder] -->        return;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    const today = normalizeDate(new Date());<!-- [et_pb_line_break_holder] -->    const exchangeRate = 0.1376;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    let baseFee = 0, additionalClaimsFee = patentType !== 'design' && claims > 10 ? (claims - 10) * 150 : 0, publicationFee = 0, priorityFee = hasPriority === 'yes' ? priorityCount * 80 : 0, examFee = 0, gracePeriodFee = 0;<!-- [et_pb_line_break_holder] -->    let warningMessage = '', deadlineRemark = '', examFeeDeadlineRemark = '';<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    switch(patentType) {<!-- [et_pb_line_break_holder] -->        case 'invention': case 'pct_invention':<!-- [et_pb_line_break_holder] -->            baseFee = 900; publicationFee = 50; examFee = 2500; break;<!-- [et_pb_line_break_holder] -->        case 'utility': case 'pct_utility':<!-- [et_pb_line_break_holder] -->            baseFee = 500; break;<!-- [et_pb_line_break_holder] -->        case 'design':<!-- [et_pb_line_break_holder] -->            baseFee = 500; break;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    if (hasPriority === 'yes' && priorityDate) {<!-- [et_pb_line_break_holder] -->        const formatDate = date => date.toLocaleDateString('en-US', { year: 'numeric', month: 'short', day: '2-digit' }).replace(\/(d+) (w+) (d+)\/, '$1-$2-$3');<!-- [et_pb_line_break_holder] -->        const calculateDeadline = (baseDate, months) => {<!-- [et_pb_line_break_holder] -->            const newDate = new Date(baseDate);<!-- [et_pb_line_break_holder] -->            newDate.setMonth(newDate.getMonth() + months);<!-- [et_pb_line_break_holder] -->            if (newDate.getDate() !== baseDate.getDate()) newDate.setDate(0);<!-- [et_pb_line_break_holder] -->            return normalizeDate(newDate);<!-- [et_pb_line_break_holder] -->        };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        const priorityDateNormalized = normalizeDate(new Date(priorityDate));<!-- [et_pb_line_break_holder] -->        const priority12Month = calculateDeadline(priorityDateNormalized, 12);<!-- [et_pb_line_break_holder] -->        const priority14Month = calculateDeadline(priorityDateNormalized, 14);<!-- [et_pb_line_break_holder] -->        const priority30Month = calculateDeadline(priorityDateNormalized, 30);<!-- [et_pb_line_break_holder] -->        const priority32Month = calculateDeadline(priorityDateNormalized, 32);<!-- [et_pb_line_break_holder] -->        const priority6Month = calculateDeadline(priorityDateNormalized, 6);<!-- [et_pb_line_break_holder] -->        const priority8Month = calculateDeadline(priorityDateNormalized, 8);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        if (examFee > 0) {<!-- [et_pb_line_break_holder] -->            const examFeeDeadline = new Date(priorityDateNormalized);<!-- [et_pb_line_break_holder] -->            examFeeDeadline.setFullYear(examFeeDeadline.getFullYear() + 3);<!-- [et_pb_line_break_holder] -->            if (examFeeDeadline.getDate() !== priorityDateNormalized.getDate()) examFeeDeadline.setDate(0);<!-- [et_pb_line_break_holder] -->            examFeeDeadlineRemark = `<\/p>\n<div class=\"note\"${today > normalizeDate(examFeeDeadline) ? ' style=\"color: red;\"' : ''}>Exam Fee Deadline: ${formatDate(examFeeDeadline)}<\/div>\n<p>`;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        if (patentType === 'invention' || patentType === 'utility') {<!-- [et_pb_line_break_holder] -->            deadlineRemark = `<\/p>\n<div class=\"note\"${today > priority12Month ? ' style=\"color: red;\"' : ''}>Priority Deadline: ${formatDate(priority12Month)}<\/div>\n<p>`;<!-- [et_pb_line_break_holder] -->            if (today > priority12Month && today <= priority14Month) gracePeriodFee = 1000;<!-- [et_pb_line_break_holder] -->            else if (today > priority14Month) warningMessage = `<\/p>\n<div class=\"note\" style=\"color: red;\">Priority period exceeded (14 months).<\/div>\n<p>`;<!-- [et_pb_line_break_holder] -->        } else if (patentType === 'pct_invention' || patentType === 'pct_utility') {<!-- [et_pb_line_break_holder] -->            deadlineRemark = `<\/p>\n<div class=\"note\"${today > priority30Month ? ' style=\"color: red;\"' : ''}>PCT Entry Deadline: ${formatDate(priority30Month)}<\/div>\n<p>`;<!-- [et_pb_line_break_holder] -->            if (today > priority30Month && today <= priority32Month) gracePeriodFee = 1000;<!-- [et_pb_line_break_holder] -->            else if (today > priority32Month) {<!-- [et_pb_line_break_holder] -->                document.getElementById('resultApp').innerHTML = `<\/p>\n<div class=\"result\" style=\"color: red;\">PCT 32-month deadline exceeded.<\/div>\n<div class=\"note\">Email: contact@gbaiplawyer.com<\/div>\n<p>`;<!-- [et_pb_line_break_holder] -->                document.getElementById('resultApp').style.display = 'block';<!-- [et_pb_line_break_holder] -->                return;<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] -->        } else if (patentType === 'design') {<!-- [et_pb_line_break_holder] -->            deadlineRemark = `<\/p>\n<div class=\"note\"${today > priority6Month ? ' style=\"color: red;\"' : ''}>Priority Deadline: ${formatDate(priority6Month)}<\/div>\n<p>`;<!-- [et_pb_line_break_holder] -->            if (today > priority6Month && today <= priority8Month) gracePeriodFee = 1000;<!-- [et_pb_line_break_holder] -->            else if (today > priority8Month) warningMessage = `<\/p>\n<div class=\"note\" style=\"color: red;\">Priority period exceeded (8 months).<\/div>\n<p>`;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->    } else if (examFee > 0) {<!-- [et_pb_line_break_holder] -->        examFeeDeadlineRemark = `<\/p>\n<div class=\"note\">Exam Fee Deadline: 3 years from filing date.<\/div>\n<p>`;<!-- [et_pb_line_break_holder] -->    }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    const totalAmount = baseFee + additionalClaimsFee + publicationFee + priorityFee + gracePeriodFee + examFee;<!-- [et_pb_line_break_holder] -->    const formatFee = fee => `\u00a5${fee.toLocaleString()} ($${Math.round(fee * exchangeRate)})`;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    let feeBreakdown = '';<!-- [et_pb_line_break_holder] -->    if (baseFee) feeBreakdown += `<pee>Base Filing Fee: ${formatFee(baseFee)}<\/pee>`;<!-- [et_pb_line_break_holder] -->    if (additionalClaimsFee) feeBreakdown += `<pee>Additional Claims Fee: ${formatFee(additionalClaimsFee)}<\/pee>`;<!-- [et_pb_line_break_holder] -->    if (publicationFee) feeBreakdown += `<pee>Publication Fee: ${formatFee(publicationFee)}<\/pee>`;<!-- [et_pb_line_break_holder] -->    if (priorityFee) feeBreakdown += `<pee>Priority Fee: ${formatFee(priorityFee)}<\/pee>`;<!-- [et_pb_line_break_holder] -->    if (gracePeriodFee) feeBreakdown += `<pee>Grace Period Fee: ${formatFee(gracePeriodFee)}<\/pee>`;<!-- [et_pb_line_break_holder] -->    if (examFee) feeBreakdown += `<pee>Exam Fee: ${formatFee(examFee)}<\/pee>`;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->    document.getElementById('resultApp').innerHTML = `<!-- [et_pb_line_break_holder] -->        <\/p>\n<h4>Fee Summary<\/h4>\n<p><!-- [et_pb_line_break_holder] -->        ${feeBreakdown}<!-- [et_pb_line_break_holder] -->        <pee><strong>Total: ${formatFee(totalAmount)}<\/strong><\/pee><!-- [et_pb_line_break_holder] -->        ${deadlineRemark}<!-- [et_pb_line_break_holder] -->        ${examFeeDeadlineRemark}<!-- [et_pb_line_break_holder] -->        ${warningMessage}<!-- [et_pb_line_break_holder] -->        <\/p>\n<div class=\"note\">The total fee do not cover the registration stage.<\/div>\n<p><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"note\">Rate: \u00a51 = $${exchangeRate}<\/div>\n<p><!-- [et_pb_line_break_holder] -->    `;<!-- [et_pb_line_break_holder] -->    document.getElementById('resultApp').style.display = 'block';<!-- [et_pb_line_break_holder] -->}<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/ Patent Maintenance Fee Calculator<!-- [et_pb_line_break_holder] -->        function calculatePatentMaintFee() {<!-- [et_pb_line_break_holder] -->            clearErrors('patentMaint');<!-- [et_pb_line_break_holder] -->            const patentType = document.getElementById('patentTypeMaint').value;<!-- [et_pb_line_break_holder] -->            const applicationDate = document.getElementById('applicationDateMaint').value;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            if (!patentType) {<!-- [et_pb_line_break_holder] -->                document.getElementById('patentTypeMaint').classList.add('error');<!-- [et_pb_line_break_holder] -->                document.getElementById('patentTypeMaintError').style.display = 'block';<!-- [et_pb_line_break_holder] -->                document.getElementById('patentTypeMaint').focus();<!-- [et_pb_line_break_holder] -->                return;<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] -->            if (!applicationDate) {<!-- [et_pb_line_break_holder] -->                document.getElementById('applicationDateMaint').classList.add('error');<!-- [et_pb_line_break_holder] -->                document.getElementById('applicationDateMaintError').style.display = 'block';<!-- [et_pb_line_break_holder] -->                document.getElementById('applicationDateMaint').focus();<!-- [et_pb_line_break_holder] -->                return;<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            const today = normalizeDate(new Date());<!-- [et_pb_line_break_holder] -->            const normalizedApplicationDate = normalizeDate(new Date(applicationDate));<!-- [et_pb_line_break_holder] -->            const exchangeRate = 0.1376;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            if (isNaN(normalizedApplicationDate)) {<!-- [et_pb_line_break_holder] -->                document.getElementById('resultMaint').innerHTML = \"Please enter a valid application date!<!\u2013- [et_pb_br_holder] -\u2013><\/p>\n<div class='note'>Email: contact@gbaiplawyer.com<\/div>\n<p>\";<!-- [et_pb_line_break_holder] -->                return;<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            const feeTables = {<!-- [et_pb_line_break_holder] -->                invention: { 1: 900, 2: 900, 3: 900, 4: 1200, 5: 1200, 6: 1200, 7: 2000, 8: 2000, 9: 2000, 10: 2000, 11: 4000, 12: 4000, 13: 4000, 14: 4000, 15: 4000, 16: 6000, 17: 6000, 18: 6000, 19: 6000, 20: 8000 },<!-- [et_pb_line_break_holder] -->                utility: { 1: 600, 2: 600, 3: 600, 4: 900, 5: 900, 6: 1200, 7: 1200, 8: 1200, 9: 2000, 10: 2000 },<!-- [et_pb_line_break_holder] -->                design: { 1: 600, 2: 600, 3: 600, 4: 900, 5: 900, 6: 1200, 7: 1200, 8: 1200, 9: 2000, 10: 2000, 11: 3000, 12: 3000, 13: 3000, 14: 3000, 15: 3000 }<!-- [et_pb_line_break_holder] -->            };<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            const maxYear = patentType === 'invention' ? 20 : patentType === 'utility' ? 10 : 15;<!-- [et_pb_line_break_holder] -->            const yearsSinceApplication = today.getFullYear() - normalizedApplicationDate.getFullYear();<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            if (yearsSinceApplication < 0) {<!-- [et_pb_line_break_holder] -->                document.getElementById('resultMaint').innerHTML = \"Application date is in the future!<!\u2013- [et_pb_br_holder] -\u2013><\/p>\n<div class='note'>Email: contact@gbaiplawyer.com<\/div>\n<p>\";<!-- [et_pb_line_break_holder] -->                return;<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            const expirationDate = new Date(normalizedApplicationDate);<!-- [et_pb_line_break_holder] -->            expirationDate.setFullYear(normalizedApplicationDate.getFullYear() + maxYear);<!-- [et_pb_line_break_holder] -->            expirationDate.setHours(0, 0, 0, 0);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            if (today > expirationDate) {<!-- [et_pb_line_break_holder] -->                document.getElementById('resultMaint').innerHTML = `<!-- [et_pb_line_break_holder] -->                    <pee>Patent rights have terminated.<\/pee><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div class=\"note\">Email: contact@gbaiplawyer.com<\/div>\n<p><!-- [et_pb_line_break_holder] -->                `;<!-- [et_pb_line_break_holder] -->                return;<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            let nextPatentYear = yearsSinceApplication < 1 ? 2 : Math.floor((today - normalizedApplicationDate) \/ (1000 * 60 * 60 * 24 * 365)) + 2;<!-- [et_pb_line_break_holder] -->            if (nextPatentYear > maxYear) nextPatentYear = maxYear;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            const dueDate = new Date(normalizedApplicationDate);<!-- [et_pb_line_break_holder] -->            dueDate.setFullYear(normalizedApplicationDate.getFullYear() + nextPatentYear - 1);<!-- [et_pb_line_break_holder] -->            dueDate.setHours(0, 0, 0, 0);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            if (nextPatentYear === maxYear && today >= dueDate) {<!-- [et_pb_line_break_holder] -->                const formatDate = expirationDate.toLocaleDateString('en-US', { year: 'numeric', month: 'short', day: '2-digit' });<!-- [et_pb_line_break_holder] -->                document.getElementById('resultMaint').innerHTML = `<!-- [et_pb_line_break_holder] -->                    <pee>No coming maintenance fee due.<\/pee><!-- [et_pb_line_break_holder] -->                    <pee>Patent will terminate on ${formatDate}.<\/pee><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div class=\"note\">Email: contact@gbaiplawyer.com<\/div>\n<p><!-- [et_pb_line_break_holder] -->                `;<!-- [et_pb_line_break_holder] -->                return;<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            const baseFee = feeTables[patentType][nextPatentYear];<!-- [et_pb_line_break_holder] -->            const formatFee = fee => `\u00a5${fee.toLocaleString()} ($${Math.round(fee * exchangeRate)})`;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            document.getElementById('resultMaint').innerHTML = `<!-- [et_pb_line_break_holder] -->                <\/p>\n<h4>Upcoming Maintenance Fee<\/h4>\n<p><!-- [et_pb_line_break_holder] -->                <pee>Annuity Year ${nextPatentYear}: ${formatFee(baseFee)}<\/pee><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"note\">Due Date: ${dueDate.toLocaleDateString('en-US', { year: 'numeric', month: 'short', day: '2-digit' })}<\/div>\n<p><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"note\">Rate: \u00a51 = $${exchangeRate}<\/div>\n<p><!-- [et_pb_line_break_holder] -->            `;<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        \/\/ Trademark Application Fee Calculator<!-- [et_pb_line_break_holder] -->        function initTrademarkClasses() {<!-- [et_pb_line_break_holder] -->            let container = document.getElementById('classSelection');<!-- [et_pb_line_break_holder] -->            if (container.innerHTML) return;<!-- [et_pb_line_break_holder] -->            for (let i = 1; i <= 45; i++) {<!-- [et_pb_line_break_holder] -->                let label = document.createElement('label');<!-- [et_pb_line_break_holder] -->                let checkbox = document.createElement('input');<!-- [et_pb_line_break_holder] -->                checkbox.type = 'checkbox';<!-- [et_pb_line_break_holder] -->                checkbox.value = i;<!-- [et_pb_line_break_holder] -->                label.appendChild(checkbox);<!-- [et_pb_line_break_holder] -->                label.appendChild(document.createTextNode(` ${i}`));<!-- [et_pb_line_break_holder] -->                container.appendChild(label);<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        function generateTrademarkInputs() {<!-- [et_pb_line_break_holder] -->            clearErrors('trademark');<!-- [et_pb_line_break_holder] -->            let selectedClasses = Array.from(document.querySelectorAll('#classSelection input:checked')).map(cb => cb.value);<!-- [et_pb_line_break_holder] -->            let inputFields = document.getElementById('inputFields');<!-- [et_pb_line_break_holder] -->            inputFields.innerHTML = '';<!-- [et_pb_line_break_holder] -->            selectedClasses.forEach(cls => {<!-- [et_pb_line_break_holder] -->                inputFields.innerHTML += `<!-- [et_pb_line_break_holder] -->                    <label for=\"count_${cls}\" class=\"required\">Class ${cls} Number of Goods\/Services:<\/label><!-- [et_pb_line_break_holder] -->                    <input type=\"number\" id=\"count_${cls}\" min=\"1\" value=\"10\"><!-- [et_pb_line_break_holder] -->                    <\/p>\n<div id=\"count_${cls}_error\" class=\"error-message\">Please enter a valid number.<\/div>\n<p><!-- [et_pb_line_break_holder] -->                `;<!-- [et_pb_line_break_holder] -->            });<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->        function calculateTrademarkFee() {<!-- [et_pb_line_break_holder] -->            clearErrors('trademark');<!-- [et_pb_line_break_holder] -->            let selectedClasses = Array.from(document.querySelectorAll('#classSelection input:checked')).map(cb => cb.value);<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            if (selectedClasses.length === 0) {<!-- [et_pb_line_break_holder] -->                document.getElementById('classSelectionError').style.display = 'block';<!-- [et_pb_line_break_holder] -->                document.querySelector('#classSelection input').focus();<!-- [et_pb_line_break_holder] -->                return;<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            for (let cls of selectedClasses) {<!-- [et_pb_line_break_holder] -->                let countElement = document.getElementById(`count_${cls}`);<!-- [et_pb_line_break_holder] -->                if (!countElement || !countElement.value || countElement.value < 1) {<!-- [et_pb_line_break_holder] -->                    countElement.classList.add('error');<!-- [et_pb_line_break_holder] -->                    document.getElementById(`count_${cls}_error`).style.display = 'block';<!-- [et_pb_line_break_holder] -->                    countElement.focus();<!-- [et_pb_line_break_holder] -->                    return;<!-- [et_pb_line_break_holder] -->                }<!-- [et_pb_line_break_holder] -->            }<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            let totalBaseFee = 0, totalAdditionalFee = 0;<!-- [et_pb_line_break_holder] -->            const exchangeRate = 0.1376;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            selectedClasses.forEach(cls => {<!-- [et_pb_line_break_holder] -->                let count = parseInt(document.getElementById(`count_${cls}`).value) || 10;<!-- [et_pb_line_break_holder] -->                totalBaseFee += 300;<!-- [et_pb_line_break_holder] -->                if (count > 10) totalAdditionalFee += (count - 10) * 30;<!-- [et_pb_line_break_holder] -->            });<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            const totalFee = totalBaseFee + totalAdditionalFee;<!-- [et_pb_line_break_holder] -->            const formatFee = fee => `\u00a5${fee.toLocaleString()} ($${Math.round(fee * exchangeRate)})`;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            let feeBreakdown = `<pee>Base Fee (${selectedClasses.length} classes): ${formatFee(totalBaseFee)}<\/pee>`;<!-- [et_pb_line_break_holder] -->            if (totalAdditionalFee) feeBreakdown += `<pee>Additional Items Fee: ${formatFee(totalAdditionalFee)}<\/pee>`;<!-- [et_pb_line_break_holder] --><!-- [et_pb_line_break_holder] -->            document.getElementById('resultTrademark').innerHTML = `<!-- [et_pb_line_break_holder] -->                <\/p>\n<h4>Fee Summary<\/h4>\n<p><!-- [et_pb_line_break_holder] -->                ${feeBreakdown}<!-- [et_pb_line_break_holder] -->                <pee><strong>Total: ${formatFee(totalFee)}<\/strong><\/pee><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"note\">Classes Selected: ${selectedClasses.length} | 10% discount for e-filing<\/div>\n<p><!-- [et_pb_line_break_holder] -->                <\/p>\n<div class=\"note\">Rate: \u00a51 = $${exchangeRate}<\/div>\n<p><!-- [et_pb_line_break_holder] -->            `;<!-- [et_pb_line_break_holder] -->            document.getElementById('resultTrademark').style.display = 'block';<!-- [et_pb_line_break_holder] -->        }<!-- [et_pb_line_break_holder] -->    <\/script><!-- [et_pb_line_break_holder] --><\/body><!-- [et_pb_line_break_holder] --><\/html>[\/et_pb_code][et_pb_text _builder_version=\"4.27.4\u2033 _module_preset=\"default\" global_colors_info=\"{}\"]<\/p>\n<p>\uae08\uc561\uc774 \ud655\uc2e4\ud558\uc9c0 \uc54a\uc740 \uacbd\uc6b0 \uc5f0\ud68c\ube44\ub97c \uacc4\uc0b0\ud558\ub294 \ub370 \ub3c4\uc6c0\uc774 \ub418\ub294 \ub3c4\uad6c\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4.<\/p>\n<p>\ub610\ud55c \uacc4\uc0b0\uae30\ub294 \ud2b9\uc815 \uc0c1\ud669\uacfc \ud544\uc694\uc5d0 \ub530\ub77c \ud2b9\ud5c8\/\uc0c1\ud45c \ucd9c\uc6d0 \uc218\uc218\ub8cc\uc5d0 \ub300\ud55c \uc790\uc138\ud55c \ubd84\uc11d\uc744 \uc989\uc2dc \uc81c\uacf5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n<p>\ub2e4\uc74c\uc5d0 \ub300\ud55c \uc804\uccb4 \uc694\uae08\ud45c\ub97c \uc790\uc138\ud788 \uc77d\uc5b4\ubcf4\uc138\uc694. <a href=\"https:\/\/www.gbaiplawyer.com\/ko\/tm-official-fee\/\">\uc0c1\ud45c<\/a> \uadf8\ub9ac\uace0 <a href=\"https:\/\/www.gbaiplawyer.com\/ko\/patent-official-fee\/\">\ud2b9\ud5c8<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<p>[\/et_pb_text][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>","protected":false},"excerpt":{"rendered":"<p>\uc911\uad6d \ud2b9\ud5c8\uc758 \uac31\uc2e0 \uc218\uc218\ub8cc\ub97c \uacc4\uc0b0\ud558\uace0 \ubb34\ub8cc\ub85c \ubbf8\ub9ac \uc5f0\uac04 \ub0a9\ubd80 \uc54c\ub9bc\uc744 \uc124\uc815\ud558\uc5ec \uae30\ud55c\uc744 \ub193\uce58\ub294 \uc77c\uc774 \uc5c6\ub3c4\ub85d \ud558\uc138\uc694.<\/p>","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"<!-- wp:columns -->\n<div class=\"wp-block-columns\"><!-- wp:column {\"width\":\"50%\"} -->\n<div class=\"wp-block-column\" style=\"flex-basis:50%\"><\/div>\n<!-- \/wp:column -->\n\n<!-- wp:column {\"width\":\"50%\"} -->\n<div class=\"wp-block-column\" style=\"flex-basis:50%\"><!-- wp:html -->\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>China IP Official Fee Calculator (Fixed)<\/title>\n    <style>\n        .calculator-container {\n            font-family: Arial, sans-serif;\n            padding: 15px;\n            max-width: 500px;\n            margin: 0 auto;\n            border: 1px solid #ddd;\n            border-radius: 5px;\n            background: #f9f9f9;\n            box-shadow: 2px 2px 5px rgba(0,0,0,0.1);\n        }\n        .calculator-container h1 {\n            font-size: 20px;\n            text-align: center;\n            margin-bottom: 5px;\n        }\n        .calculator-container .subtitle {\n            font-size: 14px;\n            text-align: center;\n            margin-bottom: 15px;\n            color: #555;\n        }\n        .calculator-container select,\n        .calculator-container input,\n        .calculator-container button {\n            width: 100%;\n            padding: 8px;\n            margin: 5px 0;\n            border: 1px solid #ccc;\n            border-radius: 4px;\n            box-sizing: border-box;\n        }\n        .calculator-container select {\n            height: 40px;\n        }\n        .calculator-container button {\n            background: #007bff;\n            color: white;\n            cursor: pointer;\n        }\n        .calculator-container button:hover {\n            background: #0056b3;\n        }\n        .calculator-container .calculator-section {\n            display: none;\n            margin-top: 15px;\n        }\n        .calculator-container .checkbox-group {\n            display: flex;\n            flex-wrap: wrap;\n            max-height: 150px;\n            overflow-y: auto;\n            margin-bottom: 10px;\n        }\n        .calculator-container .checkbox-group label {\n            display: inline-flex;\n            align-items: center;\n            width: 30%;\n            padding: 10px 0;\n        }\n        .calculator-container .result {\n            margin-top: 10px;\n            font-weight: bold;\n            text-align: center;\n        }\n        .calculator-container .note {\n            font-size: 12px;\n            color: gray;\n            text-align: left;\n            margin-top: 5px;\n        }\n        .calculator-container ul {\n            padding-left: 20px;\n            margin: 5px 0;\n        }\n        .required::after {\n            content: \" *\";\n            color: red;\n        }\n        .error {\n            border-color: red;\n        }\n        .error-message {\n            color: red;\n            font-size: 12px;\n            margin-top: -5px;\n            margin-bottom: 5px;\n            display: none;\n        }\n    <\/style>\n<\/head>\n<body>\n    <div class=\"calculator-container\">\n        <h1>China IP Official Fee Calculator<\/h1>\n        <div class=\"subtitle\">www.gbaiplawyer.com<\/div>\n        <label for=\"calculatorType\" class=\"required\">Select Calculator:<\/label>\n        <select id=\"calculatorType\" onchange=\"showCalculator()\">\n            <option value=\"\">-- Select One --<\/option>\n            <option value=\"patentApp\">Patent Application Fee<\/option>\n            <option value=\"patentMaint\">Patent Maintenance Fee<\/option>\n            <option value=\"trademark\">Trademark Application Fee<\/option>\n        <\/select>\n\n        <!-- Patent Application Fee Calculator -->\n        <div id=\"patentApp\" class=\"calculator-section\">\n            <label for=\"patentTypeApp\" class=\"required\">Patent Type:<\/label>\n            <select id=\"patentTypeApp\" required onchange=\"toggleClaimsInput()\">\n                <option value=\"\">Select Patent Type<\/option>\n                <option value=\"invention\">Domestic Invention<\/option>\n                <option value=\"utility\">Domestic Utility Model<\/option>\n                <option value=\"design\">Domestic Design<\/option>\n                <option value=\"pct_invention\">PCT National Phase Entry in China (Invention)<\/option>\n                <option value=\"pct_utility\">PCT National Phase Entry in China (Utility Model)<\/option>\n            <\/select>\n            <div id=\"patentTypeAppError\" class=\"error-message\">Please select a patent type.<\/div>\n            <label for=\"priorityApp\" class=\"required\">Claim Priority?<\/label>\n            <select id=\"priorityApp\" required onchange=\"togglePriorityInputs()\">\n                <option value=\"\">Select Option<\/option>\n                <option value=\"no\">No<\/option>\n                <option value=\"yes\">Yes<\/option>\n            <\/select>\n            <div id=\"priorityAppError\" class=\"error-message\">Please select an option.<\/div>\n            <div id=\"priorityCountDivApp\" style=\"display: none;\">\n                <label for=\"priorityCountApp\" class=\"required\">Number of Priorities:<\/label>\n                <input type=\"number\" id=\"priorityCountApp\" min=\"1\" value=\"1\">\n                <div id=\"priorityCountAppError\" class=\"error-message\">Please enter a valid number.<\/div>\n            <\/div>\n            <div id=\"priorityDateDivApp\" style=\"display: none;\">\n                <label for=\"priorityDateApp\" class=\"required\">First Priority Date:<\/label>\n                <input type=\"date\" id=\"priorityDateApp\" required>\n                <div id=\"priorityDateAppError\" class=\"error-message\">Please select a date.<\/div>\n            <\/div>\n            <div id=\"claimsDivApp\">\n                <label for=\"claimsApp\" class=\"required\">Number of Claims:<\/label>\n                <input type=\"number\" id=\"claimsApp\" min=\"1\" required value=\"1\">\n                <div id=\"claimsAppError\" class=\"error-message\">Please enter a valid number.<\/div>\n            <\/div>\n            <button onclick=\"calculatePatentAppFees()\">Calculate<\/button>\n            <div id=\"resultApp\" class=\"result\" style=\"display: none;\"><\/div>\n        <\/div>\n\n        <!-- Patent Maintenance Fee Calculator -->\n        <div id=\"patentMaint\" class=\"calculator-section\">\n            <label for=\"patentTypeMaint\" class=\"required\">Patent Type:<\/label>\n            <select id=\"patentTypeMaint\" required>\n                <option value=\"\">Select Patent Type<\/option>\n                <option value=\"invention\">Invention Patent<\/option>\n                <option value=\"utility\">Utility Model Patent<\/option>\n                <option value=\"design\">Design Patent<\/option>\n            <\/select>\n            <div id=\"patentTypeMaintError\" class=\"error-message\">Please select a patent type.<\/div>\n            <label for=\"applicationDateMaint\" class=\"required\">Filing Date (international filing date if from PCT):<\/label>\n            <input type=\"date\" id=\"applicationDateMaint\" required>\n            <div id=\"applicationDateMaintError\" class=\"error-message\">Please select a date.<\/div>\n            <button onclick=\"calculatePatentMaintFee()\">Calculate Fee<\/button>\n            <div id=\"resultMaint\" class=\"result\"><\/div>\n        <\/div>\n\n        <!-- Trademark Application Fee Calculator -->\n        <div id=\"trademark\" class=\"calculator-section\">\n            <label class=\"required\">Select Nice Classifications:<\/label>\n            <div class=\"checkbox-group\" id=\"classSelection\"><\/div>\n            <div id=\"classSelectionError\" class=\"error-message\">Please select at least one class.<\/div>\n            <button onclick=\"generateTrademarkInputs()\">Confirm Selection<\/button>\n            <div id=\"inputFields\"><\/div>\n            <button onclick=\"calculateTrademarkFee()\">Calculate Fee<\/button>\n            <div id=\"resultTrademark\" class=\"result\"><\/div>\n        <\/div>\n    <\/div>\n\n    <script>\n        \/\/ Normalize date to avoid time zone issues\n        function normalizeDate(date) {\n            const newDate = new Date(date);\n            newDate.setHours(0, 0, 0, 0);\n            return newDate;\n        }\n\n        \/\/ Show selected calculator\n        function showCalculator() {\n            const type = document.getElementById('calculatorType').value;\n            document.getElementById('patentApp').style.display = 'none';\n            document.getElementById('patentMaint').style.display = 'none';\n            document.getElementById('trademark').style.display = 'none';\n            if (type) {\n                document.getElementById(type).style.display = 'block';\n                if (type === 'trademark') initTrademarkClasses();\n                if (type === 'patentApp') {\n                    toggleClaimsInput();\n                    togglePriorityInputs();\n                }\n            }\n        }\n\n        \/\/ Toggle priority inputs\n        function togglePriorityInputs() {\n            const hasPriority = document.getElementById('priorityApp').value === 'yes';\n            document.getElementById('priorityCountDivApp').style.display = hasPriority ? 'block' : 'none';\n            document.getElementById('priorityDateDivApp').style.display = hasPriority ? 'block' : 'none';\n        }\n\n        \/\/ Toggle claims input\n        function toggleClaimsInput() {\n            const patentType = document.getElementById('patentTypeApp').value;\n            const claimsDiv = document.getElementById('claimsDivApp');\n            if (patentType === 'design') {\n                claimsDiv.style.display = 'none';\n                document.getElementById('claimsApp').removeAttribute('required');\n            } else {\n                claimsDiv.style.display = 'block';\n                document.getElementById('claimsApp').setAttribute('required', '');\n            }\n        }\n\n        \/\/ Clear error states\n        function clearErrors(sectionId) {\n            const section = document.getElementById(sectionId);\n            const errors = section.getElementsByClassName('error-message');\n            const inputs = section.getElementsByTagName('input');\n            const selects = section.getElementsByTagName('select');\n            for (let error of errors) error.style.display = 'none';\n            for (let input of inputs) input.classList.remove('error');\n            for (let select of selects) select.classList.remove('error');\n        }\n\n\/\/ Patent Application Fee Calculator\nfunction calculatePatentAppFees() {\n    clearErrors('patentApp');\n    const patentType = document.getElementById('patentTypeApp').value;\n    const hasPriority = document.getElementById('priorityApp').value;\n    const priorityCount = document.getElementById('priorityCountApp').value;\n    const priorityDate = document.getElementById('priorityDateApp').value;\n    const claims = document.getElementById('claimsApp').value;\n\n    if (!patentType) {\n        document.getElementById('patentTypeApp').classList.add('error');\n        document.getElementById('patentTypeAppError').style.display = 'block';\n        document.getElementById('patentTypeApp').focus();\n        return;\n    }\n    if (!hasPriority) {\n        document.getElementById('priorityApp').classList.add('error');\n        document.getElementById('priorityAppError').style.display = 'block';\n        document.getElementById('priorityApp').focus();\n        return;\n    }\n    if (hasPriority === 'yes') {\n        if (!priorityCount || priorityCount < 1) {\n            document.getElementById('priorityCountApp').classList.add('error');\n            document.getElementById('priorityCountAppError').style.display = 'block';\n            document.getElementById('priorityCountApp').focus();\n            return;\n        }\n        if (!priorityDate) {\n            document.getElementById('priorityDateApp').classList.add('error');\n            document.getElementById('priorityDateAppError').style.display = 'block';\n            document.getElementById('priorityDateApp').focus();\n            return;\n        }\n    }\n    if (patentType !== 'design' && (!claims || claims < 1)) {\n        document.getElementById('claimsApp').classList.add('error');\n        document.getElementById('claimsAppError').style.display = 'block';\n        document.getElementById('claimsApp').focus();\n        return;\n    }\n\n    const today = normalizeDate(new Date());\n    const exchangeRate = 0.1376;\n\n    let baseFee = 0, additionalClaimsFee = patentType !== 'design' && claims > 10 ? (claims - 10) * 150 : 0, publicationFee = 0, priorityFee = hasPriority === 'yes' ? priorityCount * 80 : 0, examFee = 0, gracePeriodFee = 0;\n    let warningMessage = '', deadlineRemark = '', examFeeDeadlineRemark = '';\n\n    switch(patentType) {\n        case 'invention': case 'pct_invention':\n            baseFee = 900; publicationFee = 50; examFee = 2500; break;\n        case 'utility': case 'pct_utility':\n            baseFee = 500; break;\n        case 'design':\n            baseFee = 500; break;\n    }\n\n    if (hasPriority === 'yes' && priorityDate) {\n        const formatDate = date => date.toLocaleDateString('en-US', { year: 'numeric', month: 'short', day: '2-digit' }).replace(\/(d+) (w+) (d+)\/, '$1-$2-$3');\n        const calculateDeadline = (baseDate, months) => {\n            const newDate = new Date(baseDate);\n            newDate.setMonth(newDate.getMonth() + months);\n            if (newDate.getDate() !== baseDate.getDate()) newDate.setDate(0);\n            return normalizeDate(newDate);\n        };\n\n        const priorityDateNormalized = normalizeDate(new Date(priorityDate));\n        const priority12Month = calculateDeadline(priorityDateNormalized, 12);\n        const priority14Month = calculateDeadline(priorityDateNormalized, 14);\n        const priority30Month = calculateDeadline(priorityDateNormalized, 30);\n        const priority32Month = calculateDeadline(priorityDateNormalized, 32);\n        const priority6Month = calculateDeadline(priorityDateNormalized, 6);\n        const priority8Month = calculateDeadline(priorityDateNormalized, 8);\n\n        if (examFee > 0) {\n            const examFeeDeadline = new Date(priorityDateNormalized);\n            examFeeDeadline.setFullYear(examFeeDeadline.getFullYear() + 3);\n            if (examFeeDeadline.getDate() !== priorityDateNormalized.getDate()) examFeeDeadline.setDate(0);\n            examFeeDeadlineRemark = `<div class=\"note\"${today > normalizeDate(examFeeDeadline) ? ' style=\"color: red;\"' : ''}>Exam Fee Deadline: ${formatDate(examFeeDeadline)}<\/div>`;\n        }\n\n        if (patentType === 'invention' || patentType === 'utility') {\n            deadlineRemark = `<div class=\"note\"${today > priority12Month ? ' style=\"color: red;\"' : ''}>Priority Deadline: ${formatDate(priority12Month)}<\/div>`;\n            if (today > priority12Month && today <= priority14Month) gracePeriodFee = 1000;\n            else if (today > priority14Month) warningMessage = `<div class=\"note\" style=\"color: red;\">Priority period exceeded (14 months).<\/div>`;\n        } else if (patentType === 'pct_invention' || patentType === 'pct_utility') {\n            deadlineRemark = `<div class=\"note\"${today > priority30Month ? ' style=\"color: red;\"' : ''}>PCT Deadline: ${formatDate(priority30Month)}<\/div>`;\n            if (today > priority30Month && today <= priority32Month) gracePeriodFee = 1000;\n            else if (today > priority32Month) {\n                document.getElementById('resultApp').innerHTML = `<div class=\"result\" style=\"color: red;\">PCT 32-month deadline exceeded.<\/div><div class=\"note\">Email: contact@gbaiplawyer.com<\/div>`;\n                document.getElementById('resultApp').style.display = 'block';\n                return;\n            }\n        } else if (patentType === 'design') {\n            deadlineRemark = `<div class=\"note\"${today > priority6Month ? ' style=\"color: red;\"' : ''}>Priority Deadline: ${formatDate(priority6Month)}<\/div>`;\n            if (today > priority6Month && today <= priority8Month) gracePeriodFee = 1000;\n            else if (today > priority8Month) warningMessage = `<div class=\"note\" style=\"color: red;\">Priority period exceeded (8 months).<\/div>`;\n        }\n    } else if (examFee > 0) {\n        examFeeDeadlineRemark = `<div class=\"note\">Exam Fee Deadline: 3 years from filing date.<\/div>`;\n    }\n\n    const totalAmount = baseFee + additionalClaimsFee + publicationFee + priorityFee + gracePeriodFee + examFee;\n    const formatFee = fee => `\u00a5${fee.toLocaleString()} ($${Math.round(fee * exchangeRate)})`;\n\n    let feeBreakdown = '';\n    if (baseFee) feeBreakdown += `<p>Base Filing Fee: ${formatFee(baseFee)}<\/p>`;\n    if (additionalClaimsFee) feeBreakdown += `<p>Additional Claims Fee: ${formatFee(additionalClaimsFee)}<\/p>`;\n    if (publicationFee) feeBreakdown += `<p>Publication Fee: ${formatFee(publicationFee)}<\/p>`;\n    if (priorityFee) feeBreakdown += `<p>Priority Fee: ${formatFee(priorityFee)}<\/p>`;\n    if (gracePeriodFee) feeBreakdown += `<p>Grace Period Fee: ${formatFee(gracePeriodFee)}<\/p>`;\n    if (examFee) feeBreakdown += `<p>Exam Fee: ${formatFee(examFee)}<\/p>`;\n\n    document.getElementById('resultApp').innerHTML = `\n        <h4>Fee Summary<\/h4>\n        ${feeBreakdown}\n        <p><strong>Total: ${formatFee(totalAmount)}<\/strong><\/p>\n        ${deadlineRemark}\n        ${examFeeDeadlineRemark}\n        ${warningMessage}\n        <div class=\"note\">The total fee do not cover the registration stage.<\/div>\n                <div class=\"note\">Rate: \u00a51 = $${exchangeRate}<\/div>\n    `;\n    document.getElementById('resultApp').style.display = 'block';\n}\n\n        \/\/ Patent Maintenance Fee Calculator\n        function calculatePatentMaintFee() {\n            clearErrors('patentMaint');\n            const patentType = document.getElementById('patentTypeMaint').value;\n            const applicationDate = document.getElementById('applicationDateMaint').value;\n\n            if (!patentType) {\n                document.getElementById('patentTypeMaint').classList.add('error');\n                document.getElementById('patentTypeMaintError').style.display = 'block';\n                document.getElementById('patentTypeMaint').focus();\n                return;\n            }\n            if (!applicationDate) {\n                document.getElementById('applicationDateMaint').classList.add('error');\n                document.getElementById('applicationDateMaintError').style.display = 'block';\n                document.getElementById('applicationDateMaint').focus();\n                return;\n            }\n\n            const today = normalizeDate(new Date());\n            const normalizedApplicationDate = normalizeDate(new Date(applicationDate));\n            const exchangeRate = 0.1376;\n\n            if (isNaN(normalizedApplicationDate)) {\n                document.getElementById('resultMaint').innerHTML = \"Please enter a valid application date!<br><div class='note'>Email: contact@gbaiplawyer.com<\/div>\";\n                return;\n            }\n\n            const feeTables = {\n                invention: { 1: 900, 2: 900, 3: 900, 4: 1200, 5: 1200, 6: 1200, 7: 2000, 8: 2000, 9: 2000, 10: 2000, 11: 4000, 12: 4000, 13: 4000, 14: 4000, 15: 4000, 16: 6000, 17: 6000, 18: 6000, 19: 6000, 20: 8000 },\n                utility: { 1: 600, 2: 600, 3: 600, 4: 900, 5: 900, 6: 900, 7: 1200, 8: 1200, 9: 1200, 10: 1200 },\n                design: { 1: 500, 2: 500, 3: 500, 4: 800, 5: 800, 6: 800, 7: 1000, 8: 1000, 9: 1000, 10: 1000, 11: 1500, 12: 1500, 13: 1500, 14: 1500, 15: 2000 }\n            };\n\n            const maxYear = patentType === 'invention' ? 20 : patentType === 'utility' ? 10 : 15;\n            const yearsSinceApplication = today.getFullYear() - normalizedApplicationDate.getFullYear();\n\n            if (yearsSinceApplication < 0) {\n                document.getElementById('resultMaint').innerHTML = \"Application date is in the future!<br><div class='note'>Email: contact@gbaiplawyer.com<\/div>\";\n                return;\n            }\n\n            const expirationDate = new Date(normalizedApplicationDate);\n            expirationDate.setFullYear(normalizedApplicationDate.getFullYear() + maxYear);\n            expirationDate.setHours(0, 0, 0, 0);\n\n            if (today > expirationDate) {\n                document.getElementById('resultMaint').innerHTML = `\n                    <p>Patent rights have terminated.<\/p>\n                    <div class=\"note\">Email: contact@gbaiplawyer.com<\/div>\n                `;\n                return;\n            }\n\n            let nextPatentYear = yearsSinceApplication < 1 ? 2 : Math.floor((today - normalizedApplicationDate) \/ (1000 * 60 * 60 * 24 * 365)) + 2;\n            if (nextPatentYear > maxYear) nextPatentYear = maxYear;\n\n            const dueDate = new Date(normalizedApplicationDate);\n            dueDate.setFullYear(normalizedApplicationDate.getFullYear() + nextPatentYear - 1);\n            dueDate.setHours(0, 0, 0, 0);\n\n            if (nextPatentYear === maxYear && today >= dueDate) {\n                const formatDate = expirationDate.toLocaleDateString('en-US', { year: 'numeric', month: 'short', day: '2-digit' });\n                document.getElementById('resultMaint').innerHTML = `\n                    <p>No coming maintenance fee due.<\/p>\n                    <p>Patent will terminate on ${formatDate}.<\/p>\n                    <div class=\"note\">Email: contact@gbaiplawyer.com<\/div>\n                `;\n                return;\n            }\n\n            const baseFee = feeTables[patentType][nextPatentYear];\n            const formatFee = fee => `\u00a5${fee.toLocaleString()} ($${Math.round(fee * exchangeRate)})`;\n\n            document.getElementById('resultMaint').innerHTML = `\n                <h4>Upcoming Maintenance Fee<\/h4>\n                <p>Annuity Year ${nextPatentYear}: ${formatFee(baseFee)}<\/p>\n                <div class=\"note\">Due Date: ${dueDate.toLocaleDateString('en-US', { year: 'numeric', month: 'short', day: '2-digit' })}<\/div>\n                <div class=\"note\">Rate: \u00a51 = $${exchangeRate}<\/div>\n            `;\n        }\n\n        \/\/ Trademark Application Fee Calculator\n        function initTrademarkClasses() {\n            let container = document.getElementById('classSelection');\n            if (container.innerHTML) return;\n            for (let i = 1; i <= 45; i++) {\n                let label = document.createElement('label');\n                let checkbox = document.createElement('input');\n                checkbox.type = 'checkbox';\n                checkbox.value = i;\n                label.appendChild(checkbox);\n                label.appendChild(document.createTextNode(` ${i}`));\n                container.appendChild(label);\n            }\n        }\n\n        function generateTrademarkInputs() {\n            clearErrors('trademark');\n            let selectedClasses = Array.from(document.querySelectorAll('#classSelection input:checked')).map(cb => cb.value);\n            let inputFields = document.getElementById('inputFields');\n            inputFields.innerHTML = '';\n            selectedClasses.forEach(cls => {\n                inputFields.innerHTML += `\n                    <label for=\"count_${cls}\" class=\"required\">Class ${cls} Number of Goods\/Services:<\/label>\n                    <input type=\"number\" id=\"count_${cls}\" min=\"1\" value=\"10\">\n                    <div id=\"count_${cls}_error\" class=\"error-message\">Please enter a valid number.<\/div>\n                `;\n            });\n        }\n\n        function calculateTrademarkFee() {\n            clearErrors('trademark');\n            let selectedClasses = Array.from(document.querySelectorAll('#classSelection input:checked')).map(cb => cb.value);\n\n            if (selectedClasses.length === 0) {\n                document.getElementById('classSelectionError').style.display = 'block';\n                document.querySelector('#classSelection input').focus();\n                return;\n            }\n\n            for (let cls of selectedClasses) {\n                let countElement = document.getElementById(`count_${cls}`);\n                if (!countElement || !countElement.value || countElement.value < 1) {\n                    countElement.classList.add('error');\n                    document.getElementById(`count_${cls}_error`).style.display = 'block';\n                    countElement.focus();\n                    return;\n                }\n            }\n\n            let totalBaseFee = 0, totalAdditionalFee = 0;\n            const exchangeRate = 0.1376;\n\n            selectedClasses.forEach(cls => {\n                let count = parseInt(document.getElementById(`count_${cls}`).value) || 10;\n                totalBaseFee += 300;\n                if (count > 10) totalAdditionalFee += (count - 10) * 30;\n            });\n\n            const totalFee = totalBaseFee + totalAdditionalFee;\n            const formatFee = fee => `\u00a5${fee.toLocaleString()} ($${Math.round(fee * exchangeRate)})`;\n\n            let feeBreakdown = `<p>Base Fee (${selectedClasses.length} classes): ${formatFee(totalBaseFee)}<\/p>`;\n            if (totalAdditionalFee) feeBreakdown += `<p>Additional Items Fee: ${formatFee(totalAdditionalFee)}<\/p>`;\n\n            document.getElementById('resultTrademark').innerHTML = `\n                <h4>Fee Summary<\/h4>\n                ${feeBreakdown}\n                <p><strong>Total: ${formatFee(totalFee)}<\/strong><\/p>\n                <div class=\"note\">Classes Selected: ${selectedClasses.length} | 10% discount for e-filing<\/div>\n                <div class=\"note\">Rate: \u00a51 = $${exchangeRate}<\/div>\n            `;\n            document.getElementById('resultTrademark').style.display = 'block';\n        }\n    <\/script>\n<\/body>\n<\/html>\n<!-- \/wp:html --><\/div>\n<!-- \/wp:column --><\/div>\n<!-- \/wp:columns -->","_et_gb_content_width":"","_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"class_list":["post-3359","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>China Patent Fee Calculator &amp; Renewal Reminder | GBA IP LAWYER<\/title>\n<meta name=\"description\" content=\"Calculate China patent and IP official fees and set patent renewal reminders with our online tools for managing China intellectual property deadlines and costs.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.gbaiplawyer.com\/ko\/chinese-patent-renewal-reminder-ip-official-fee-calculator\/\" \/>\n<meta property=\"og:locale\" content=\"ko_KR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"China Patent Fee Calculator &amp; Renewal Reminder | GBA IP LAWYER\" \/>\n<meta property=\"og:description\" content=\"Calculate China patent and IP official fees and set patent renewal reminders with our online tools for managing China intellectual property deadlines and costs.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.gbaiplawyer.com\/ko\/chinese-patent-renewal-reminder-ip-official-fee-calculator\/\" \/>\n<meta property=\"og:site_name\" content=\"GBA IP LAWYER\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-22T17:56:39+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.gbaiplawyer.com\/wp-content\/uploads\/2022\/11\/cropped-\u56fe\u72471-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"512\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04\" \/>\n\t<meta name=\"twitter:data1\" content=\"3\ubd84\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.gbaiplawyer.com\\\/chinese-patent-renewal-reminder-ip-official-fee-calculator\\\/\",\"url\":\"https:\\\/\\\/www.gbaiplawyer.com\\\/chinese-patent-renewal-reminder-ip-official-fee-calculator\\\/\",\"name\":\"China Patent Fee Calculator & Renewal Reminder | GBA IP LAWYER\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.gbaiplawyer.com\\\/#website\"},\"datePublished\":\"2025-06-11T07:19:14+00:00\",\"dateModified\":\"2026-08-22T17:56:39+00:00\",\"description\":\"Calculate China patent and IP official fees and set patent renewal reminders with our online tools for managing China intellectual property deadlines and costs.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.gbaiplawyer.com\\\/chinese-patent-renewal-reminder-ip-official-fee-calculator\\\/#breadcrumb\"},\"inLanguage\":\"ko-KR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.gbaiplawyer.com\\\/chinese-patent-renewal-reminder-ip-official-fee-calculator\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.gbaiplawyer.com\\\/chinese-patent-renewal-reminder-ip-official-fee-calculator\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.gbaiplawyer.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Chinese Patent Renewal Reminder &amp; IP Official Fee Calculator\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.gbaiplawyer.com\\\/#website\",\"url\":\"https:\\\/\\\/www.gbaiplawyer.com\\\/\",\"name\":\"GBA IP LAWYER\",\"description\":\"China IP Lawyer | Trademark, Patent &amp; Copyright\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.gbaiplawyer.com\\\/#organization\"},\"alternateName\":\"GBA IP Lawyer\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.gbaiplawyer.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ko-KR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.gbaiplawyer.com\\\/#organization\",\"name\":\"Guangdong Pingo Law Firm\",\"alternateName\":\"Pingo\",\"url\":\"https:\\\/\\\/www.gbaiplawyer.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ko-KR\",\"@id\":\"https:\\\/\\\/www.gbaiplawyer.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.gbaiplawyer.com\\\/wp-content\\\/uploads\\\/2022\\\/11\\\/cropped-\u56fe\u72471-1.png\",\"contentUrl\":\"https:\\\/\\\/www.gbaiplawyer.com\\\/wp-content\\\/uploads\\\/2022\\\/11\\\/cropped-\u56fe\u72471-1.png\",\"width\":512,\"height\":512,\"caption\":\"Guangdong Pingo Law Firm\"},\"image\":{\"@id\":\"https:\\\/\\\/www.gbaiplawyer.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/company\\\/gbaiplawyer\\\/\",\"https:\\\/\\\/credit.acla.org.cn\\\/credit\\\/lawFirm\\\/c1eba4df3b67d2905ff60b0966e963d1ce04e9c3cc53063060118b98c198d6f10f38c36e07b9092f81dd95e39850fb6d\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\uc911\uad6d \ud2b9\ud5c8 \uc218\uc218\ub8cc \uacc4\uc0b0\uae30 \ubc0f \uac31\uc2e0 \uc54c\ub9bc | GBA IP LAWYER","description":"\ub2f9\uc0ac\uc758 \uc628\ub77c\uc778 \ub3c4\uad6c\ub97c \ud65c\uc6a9\ud558\uc5ec \uc911\uad6d \ud2b9\ud5c8 \ubc0f \uc9c0\uc801\uc7ac\uc0b0\uad8c(IP) \uacf5\uc2dd \uc218\uc218\ub8cc\ub97c \uacc4\uc0b0\ud558\uace0, \uc911\uad6d \uc9c0\uc801\uc7ac\uc0b0\uad8c \uad00\ub828 \uae30\ud55c \ubc0f \ube44\uc6a9\uc744 \uad00\ub9ac\ud558\uba70 \ud2b9\ud5c8 \uac31\uc2e0 \uc54c\ub9bc\uc744 \uc124\uc815\ud558\uc138\uc694.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.gbaiplawyer.com\/ko\/chinese-patent-renewal-reminder-ip-official-fee-calculator\/","og_locale":"ko_KR","og_type":"article","og_title":"China Patent Fee Calculator & Renewal Reminder | GBA IP LAWYER","og_description":"Calculate China patent and IP official fees and set patent renewal reminders with our online tools for managing China intellectual property deadlines and costs.","og_url":"https:\/\/www.gbaiplawyer.com\/ko\/chinese-patent-renewal-reminder-ip-official-fee-calculator\/","og_site_name":"GBA IP LAWYER","article_modified_time":"2026-08-22T17:56:39+00:00","og_image":[{"width":512,"height":512,"url":"https:\/\/www.gbaiplawyer.com\/wp-content\/uploads\/2022\/11\/cropped-\u56fe\u72471-1.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"\uc608\uc0c1 \ub418\ub294 \ud310\ub3c5 \uc2dc\uac04":"3\ubd84"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.gbaiplawyer.com\/chinese-patent-renewal-reminder-ip-official-fee-calculator\/","url":"https:\/\/www.gbaiplawyer.com\/chinese-patent-renewal-reminder-ip-official-fee-calculator\/","name":"\uc911\uad6d \ud2b9\ud5c8 \uc218\uc218\ub8cc \uacc4\uc0b0\uae30 \ubc0f \uac31\uc2e0 \uc54c\ub9bc | GBA IP LAWYER","isPartOf":{"@id":"https:\/\/www.gbaiplawyer.com\/#website"},"datePublished":"2025-06-11T07:19:14+00:00","dateModified":"2026-08-22T17:56:39+00:00","description":"\ub2f9\uc0ac\uc758 \uc628\ub77c\uc778 \ub3c4\uad6c\ub97c \ud65c\uc6a9\ud558\uc5ec \uc911\uad6d \ud2b9\ud5c8 \ubc0f \uc9c0\uc801\uc7ac\uc0b0\uad8c(IP) \uacf5\uc2dd \uc218\uc218\ub8cc\ub97c \uacc4\uc0b0\ud558\uace0, \uc911\uad6d \uc9c0\uc801\uc7ac\uc0b0\uad8c \uad00\ub828 \uae30\ud55c \ubc0f \ube44\uc6a9\uc744 \uad00\ub9ac\ud558\uba70 \ud2b9\ud5c8 \uac31\uc2e0 \uc54c\ub9bc\uc744 \uc124\uc815\ud558\uc138\uc694.","breadcrumb":{"@id":"https:\/\/www.gbaiplawyer.com\/chinese-patent-renewal-reminder-ip-official-fee-calculator\/#breadcrumb"},"inLanguage":"ko-KR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.gbaiplawyer.com\/chinese-patent-renewal-reminder-ip-official-fee-calculator\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.gbaiplawyer.com\/chinese-patent-renewal-reminder-ip-official-fee-calculator\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.gbaiplawyer.com\/"},{"@type":"ListItem","position":2,"name":"Chinese Patent Renewal Reminder &amp; IP Official Fee Calculator"}]},{"@type":"WebSite","@id":"https:\/\/www.gbaiplawyer.com\/#website","url":"https:\/\/www.gbaiplawyer.com\/","name":"GBA IP \ubcc0\ud638\uc0ac","description":"\uc911\uad6d \uc9c0\uc801\uc7ac\uc0b0\uad8c \ubcc0\ud638\uc0ac | \uc0c1\ud45c, \ud2b9\ud5c8 \ubc0f \uc800\uc791\uad8c","publisher":{"@id":"https:\/\/www.gbaiplawyer.com\/#organization"},"alternateName":"GBA IP Lawyer","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.gbaiplawyer.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ko-KR"},{"@type":"Organization","@id":"https:\/\/www.gbaiplawyer.com\/#organization","name":"\uad11\ub3d9 \ud551\uace0 \ubc95\ub960 \uc0ac\ubb34\uc18c","alternateName":"Pingo","url":"https:\/\/www.gbaiplawyer.com\/","logo":{"@type":"ImageObject","inLanguage":"ko-KR","@id":"https:\/\/www.gbaiplawyer.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.gbaiplawyer.com\/wp-content\/uploads\/2022\/11\/cropped-\u56fe\u72471-1.png","contentUrl":"https:\/\/www.gbaiplawyer.com\/wp-content\/uploads\/2022\/11\/cropped-\u56fe\u72471-1.png","width":512,"height":512,"caption":"Guangdong Pingo Law Firm"},"image":{"@id":"https:\/\/www.gbaiplawyer.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.linkedin.com\/company\/gbaiplawyer\/","https:\/\/credit.acla.org.cn\/credit\/lawFirm\/c1eba4df3b67d2905ff60b0966e963d1ce04e9c3cc53063060118b98c198d6f10f38c36e07b9092f81dd95e39850fb6d"]}]}},"jetpack-related-posts":[{"id":8,"url":"https:\/\/www.gbaiplawyer.com\/ko\/","url_meta":{"origin":3359,"position":0},"title":"\ud648","author":"Jimmy Yang","date":"2022-08-08","format":false,"excerpt":"\uc6b0\ub9ac\ub294 \uc911\uad6d \ud3ec\uc0b0\uc5d0 \uc704\uce58\ud55c \uc9c0\uc801 \uc7ac\uc0b0\uad8c \uc804\ubb38 \ubcc0\ud638\uc0ac\ub85c, \uae00\ub85c\ubc8c \uace0\uac1d\uc5d0\uac8c \ud2b9\ud5c8, \uc0c1\ud45c, \ub514\uc790\uc778, \uc800\uc791\uad8c \ub4f1\ub85d \ubc0f \uc9d1\ud589 \uc11c\ube44\uc2a4\ub97c \uc81c\uacf5\ud569\ub2c8\ub2e4.","rel":"","context":"\uc720\uc0ac\ud55c \uae00","block_context":{"text":"\uc720\uc0ac\ud55c \uae00","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3068,"url":"https:\/\/www.gbaiplawyer.com\/ko\/download-template\/","url_meta":{"origin":3359,"position":1},"title":"\uc911\uad6d \uc9c0\uc801\uc7ac\uc0b0\uad8c \uad00\ub828 \ubc95\uc801 \uc591\uc2dd","author":"Jimmy Yang","date":"2025-03-21","format":false,"excerpt":"\uc911\uad6d\uacfc \uad00\ub828\ub41c \uc5c5\ubb34\ub97c \uc218\ud589\ud558\ub294 \uae30\uc5c5, \ubc1c\uba85\uac00 \ubc0f \uc9c0\uc801\uc7ac\uc0b0\uad8c \uc804\ubb38\uac00\ub97c \uc704\ud55c \uc2e4\uc6a9\uc801\uc778 \uc9c0\uc801\uc7ac\uc0b0\uad8c \ubc0f \ubc95\ub960 \uc591\uc2dd\uc744 \uc0b4\ud3b4\ubcf4\uc138\uc694. \uc774 \uc591\uc2dd\ub4e4\uc740 \uc0c1\ud45c \ubc0f \ud2b9\ud5c8 \ub4f1\ub85d, \uc800\uc791\uad8c \ub4f1\ub85d, \uad00\uc138 \ubcf4\ud638, \uc9c0\uc801\uc7ac\uc0b0\uad8c \uc18c\uc1a1 \ubc0f \uad00\ub828 \ubc95\uc801 \uc808\ucc28 \ub4f1 \uc77c\ubc18\uc801\uc778 \uc0ac\uc548\uc744 \ub2e4\ub8f9\ub2c8\ub2e4. \uc774 \uc591\uc2dd\ub4e4\uc740 \uc77c\ubc18\uc801\uc778 \ucc38\uace0 \ubc0f \uc2e4\uc6a9\uc801\uc778 \uc6a9\ub3c4\ub85c \uc81c\uacf5\ub429\ub2c8\ub2e4. \u2026\uc5d0 \ub300\ud55c \uc704\uc784\uc7a5(POA)","rel":"","context":"\uc720\uc0ac\ud55c \uae00","block_context":{"text":"\uc720\uc0ac\ud55c \uae00","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3086,"url":"https:\/\/www.gbaiplawyer.com\/ko\/download-sample\/","url_meta":{"origin":3359,"position":2},"title":"\uc0d8\ud50c \ub2e4\uc6b4\ub85c\ub4dc","author":"Jimmy Yang","date":"2025-03-21","format":false,"excerpt":"Browse sample legal documents for China-related business and intellectual property matters. These samples are provided for reference and may help foreign businesses understand the structure and key provisions of common legal documents used in China. patent drafting patent drawings OA response amended claims with makeup C&D letter Civil Complaint","rel":"","context":"\uc720\uc0ac\ud55c \uae00","block_context":{"text":"\uc720\uc0ac\ud55c \uae00","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4651,"url":"https:\/\/www.gbaiplawyer.com\/ko\/global-ip-deadline-reminder\/","url_meta":{"origin":3359,"position":3},"title":"\uae00\ub85c\ubc8c IP \ub9c8\uac10\uc77c \uc54c\ub9bc","author":"jack","date":"2026-09-14","format":false,"excerpt":"[et_pb_column type=\"4_4\" _builder_version=\"4.27.4\"\u2026","rel":"","context":"\uc720\uc0ac\ud55c \uae00","block_context":{"text":"\uc720\uc0ac\ud55c \uae00","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gbaiplawyer.com\/ko\/wp-json\/wp\/v2\/pages\/3359","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gbaiplawyer.com\/ko\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.gbaiplawyer.com\/ko\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.gbaiplawyer.com\/ko\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gbaiplawyer.com\/ko\/wp-json\/wp\/v2\/comments?post=3359"}],"version-history":[{"count":25,"href":"https:\/\/www.gbaiplawyer.com\/ko\/wp-json\/wp\/v2\/pages\/3359\/revisions"}],"predecessor-version":[{"id":4603,"href":"https:\/\/www.gbaiplawyer.com\/ko\/wp-json\/wp\/v2\/pages\/3359\/revisions\/4603"}],"wp:attachment":[{"href":"https:\/\/www.gbaiplawyer.com\/ko\/wp-json\/wp\/v2\/media?parent=3359"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}