From f1fcf0d4c8035e0479ba135ec5b33a8a6867f619 Mon Sep 17 00:00:00 2001 From: lobsam Date: Wed, 18 Dec 2024 11:59:07 +0530 Subject: [PATCH 01/12] project setup --- .github/workflows/CI.yml | 10 +++++----- .pre-commit-config.yaml | 5 ----- README.md | 18 ++++++++---------- pyproject.toml | 4 ++-- .../__init__.py | 0 .../example.py | 0 tests/test_example.py | 2 +- 7 files changed, 16 insertions(+), 23 deletions(-) rename src/{project_name => pecha_uploader}/__init__.py (100%) rename src/{project_name => pecha_uploader}/example.py (100%) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index bdd06bd..1dbaeb1 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -16,20 +16,20 @@ jobs: steps: - uses: actions/checkout@v3 - + - name: Set up Python 3.8 uses: actions/setup-python@v3 with: python-version: "3.8" - + - name: Install dependencies run: | pip install -U pip pip install . pip install .[dev] - + - name: Test with pytest run: PYTHONPATH=src pytest - + - name: Test Coverage - run: PYTHONPATH=src pytest --cov project_name + run: PYTHONPATH=src pytest --cov pecha_uploader diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 55e4b03..a3c0cb8 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -31,11 +31,6 @@ repos: args: ["--config=setup.cfg"] additional_dependencies: [flake8-isort] - - repo: https://github.com/pre-commit/mirrors-mypy - rev: v0.982 - hooks: - - id: mypy - additional_dependencies: [types-all] # sets up .pre-commit-ci.yaml to ensure pre-commit dependencies stay up to date ci: diff --git a/README.md b/README.md index 9db2d93..780b98b 100644 --- a/README.md +++ b/README.md @@ -9,14 +9,12 @@ ## _Project Name_ -_The project name should match its code's capability so that new users can easily understand what it does._ +_Pecha Uploader_ ## Owner(s) _Change to the owner(s) of the new repo. (This template's owners are:)_ -- [@ngawangtrinley](https://github.com/ngawangtrinley) -- [@mikkokotila](https://github.com/mikkokotila) -- [@evanyerburgh](https://github.com/evanyerburgh) +- [@sandup](https://github.com/lobsam) ## Table of contents @@ -56,16 +54,16 @@ Get started with _Project Name_ by _(write the first step a user needs to start ### Install _Project Name_ -1. _Write the step here._ +1. _Write the step here._ + + _Explanatory text here_ - _Explanatory text here_ - _(Optional: Include a code sample or screenshot that helps your users complete this step.)_ 2. _Write the step here._ - - a. _Substep 1_ - + + a. _Substep 1_ + b. _Substep 2_ diff --git a/pyproject.toml b/pyproject.toml index a4cf13f..51034ad 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,12 +3,12 @@ requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" [project] -name = "project_name" +name = "pecha_uploader" version = "0.0.1" authors = [ { name="OpenPecha", email="dev@openpecha.org" }, ] -description = "A small example package" +description = "This project handles the pecha api in order to upload text/pecha to pecha.org" readme = "README.md" requires-python = ">=3.8" classifiers = [ diff --git a/src/project_name/__init__.py b/src/pecha_uploader/__init__.py similarity index 100% rename from src/project_name/__init__.py rename to src/pecha_uploader/__init__.py diff --git a/src/project_name/example.py b/src/pecha_uploader/example.py similarity index 100% rename from src/project_name/example.py rename to src/pecha_uploader/example.py diff --git a/tests/test_example.py b/tests/test_example.py index be899fd..7b3e63f 100644 --- a/tests/test_example.py +++ b/tests/test_example.py @@ -1,4 +1,4 @@ -from project_name.example import add_one +from pecha_uploader.example import add_one def test_add_one(): From ef310c222cdad4fed0a1b897167a91da83be7021 Mon Sep 17 00:00:00 2001 From: lobsam Date: Wed, 18 Dec 2024 15:17:46 +0530 Subject: [PATCH 02/12] add preprocess --- src/pecha_uploader/config.py | 13 +++++++ src/pecha_uploader/preprocess.py | 61 ++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100644 src/pecha_uploader/config.py create mode 100644 src/pecha_uploader/preprocess.py diff --git a/src/pecha_uploader/config.py b/src/pecha_uploader/config.py new file mode 100644 index 0000000..2f71b81 --- /dev/null +++ b/src/pecha_uploader/config.py @@ -0,0 +1,13 @@ +import os + +PECHA_API_KEY = os.getenv("PECHA_API_KEY") +if not PECHA_API_KEY: + raise ValueError("Please set PECHA_API_KEY environment variable") + +headers = { + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" # noqa +} +BASEPATH = os.path.dirname(os.path.abspath(__file__)) # path to `Pecha.org/tools` + +# baseURL = "https://staging.pecha.org/" +baseURL = "http://127.0.0.1:8000/" diff --git a/src/pecha_uploader/preprocess.py b/src/pecha_uploader/preprocess.py new file mode 100644 index 0000000..097654b --- /dev/null +++ b/src/pecha_uploader/preprocess.py @@ -0,0 +1,61 @@ +import json +import urllib +from urllib.error import HTTPError + +from pecha_uploader.config import PECHA_API_KEY, baseURL, headers + + +def get_term(term: str): + """ + Get term values for variable `term_str`. + `term`: str, term name + """ + url = baseURL + "api/terms/" + urllib.parse.quote(term) + req = urllib.request.Request(url, headers=headers) + try: + response = urllib.request.urlopen(req) + print(response.read().decode("utf-8")) + except HTTPError as e: + print("Error code: ", e.code) + print(e.read().decode("utf-8")) + + +def post_term(term_en: str, term_bo: str): + """ + Post term for category in different language. + You MUST post term before posting any category. + `term_en`: str, primary `en` term (chinese), + `term_bo`: str, primary `he` term (བོད་ཡིག) + """ + url = baseURL + "api/terms/" + urllib.parse.quote(term_en) + input_json = json.dumps( + { + "name": term_en, + "titles": [ + {"text": term_en, "lang": "en", "primary": True}, + {"text": term_bo, "lang": "he", "primary": True}, + ], + } + ) + values = { + "json": input_json, + "apikey": PECHA_API_KEY, + "update": True, + } + data = urllib.parse.urlencode(values) + binary_data = data.encode("ascii") + req = urllib.request.Request(url, binary_data, method="POST", headers=headers) + try: + response = urllib.request.urlopen(req) + res = response.read().decode("utf-8") + # term conflict + if ( + "error" in res + and "A Term with the title" in res + and "in it already exists" in res + ): + return {"status": False, "term_conflict": res} + return {"status": True} + except HTTPError as e: + print("[term] Error code: ", e.code) + return {"status": False, "error": e.read()} From c44b21c7521146e55f1d7480e85143b15b038b56 Mon Sep 17 00:00:00 2001 From: lobsam Date: Wed, 18 Dec 2024 15:29:09 +0530 Subject: [PATCH 03/12] added category --- src/pecha_uploader/category/extract.py | 27 +++++++++++++++ src/pecha_uploader/category/upload.py | 46 ++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 src/pecha_uploader/category/extract.py create mode 100644 src/pecha_uploader/category/upload.py diff --git a/src/pecha_uploader/category/extract.py b/src/pecha_uploader/category/extract.py new file mode 100644 index 0000000..328d1eb --- /dev/null +++ b/src/pecha_uploader/category/extract.py @@ -0,0 +1,27 @@ +import urllib +from urllib.error import HTTPError + +from pecha_uploader.config import baseURL, headers + + +def get_category(category_name: str): + """ + Check full category path for variable `category_name`. + `category_name`: str, example: "Indian Treatises/Madyamika/The way of the bodhisattvas" + """ + url = baseURL + "api/category/" + urllib.parse.quote(category_name) + req = urllib.request.Request(url, method="GET", headers=headers) + + try: + response = urllib.request.urlopen(req) + res = response.read().decode("utf-8") + print(res) + if "error" not in res: + return True + elif "already exists" in res["error"]: + return True + return False + except HTTPError as e: + print("[categories] Error code: ", e.code) + print(e.read()) + return False diff --git a/src/pecha_uploader/category/upload.py b/src/pecha_uploader/category/upload.py new file mode 100644 index 0000000..a69cea3 --- /dev/null +++ b/src/pecha_uploader/category/upload.py @@ -0,0 +1,46 @@ +import json +import urllib +from typing import List +from urllib.error import HTTPError + +from pecha_uploader.config import PECHA_API_KEY, baseURL, headers + + +def post_category(en_category_list: List[str], bo_category_list: List[str]): + """ + Post path for article categorizing. + You MUST use post_term() before using post_category(). + `pathLIST`: list of str, + if you want to post path = "Indian Treatises/Madyamika/The way of the bodhisattvas" + => post_category(["Indian Treatises"]) + => post_category(["Indian Treatises", "Madyamika"]) + => post_category(["Indian Treatises", "Madyamika", "The way of the bodhisattvas"]) + """ + url = baseURL + "api/category" + category = { + "sharedTitle": list(map(lambda x: x["name"], en_category_list))[-1], + "path": list(map(lambda x: x["name"], en_category_list)), + "enDesc": list(map(lambda x: x["enDesc"], en_category_list))[-1], + "heDesc": list(map(lambda x: x["heDesc"], bo_category_list))[-1], + "enShortDesc": list(map(lambda x: x["enShortDesc"], en_category_list))[-1], + "heShortDesc": list(map(lambda x: x["heShortDesc"], bo_category_list))[-1], + } + input_json = json.dumps(category) + values = {"json": input_json, "apikey": PECHA_API_KEY} + + data = urllib.parse.urlencode(values) + binary_data = data.encode("ascii") + req = urllib.request.Request(url, binary_data, headers=headers) + + try: + response = urllib.request.urlopen(req) + res = response.read().decode("utf-8") + print("categories response: ", res) + if "error" not in res: + return True + elif "already exists" in res: + return True + return False + except HTTPError as e: + print("Error code: ", e) + return False From 1078bff14a12a5bfa4ade6c80d19641d1dbd716d Mon Sep 17 00:00:00 2001 From: lobsam Date: Wed, 18 Dec 2024 15:45:22 +0530 Subject: [PATCH 04/12] added index --- src/pecha_uploader/index/extract.py | 22 +++++++++++ src/pecha_uploader/index/upload.py | 61 +++++++++++++++++++++++++++++ 2 files changed, 83 insertions(+) create mode 100644 src/pecha_uploader/index/extract.py create mode 100644 src/pecha_uploader/index/upload.py diff --git a/src/pecha_uploader/index/extract.py b/src/pecha_uploader/index/extract.py new file mode 100644 index 0000000..a97dc13 --- /dev/null +++ b/src/pecha_uploader/index/extract.py @@ -0,0 +1,22 @@ +import json +import urllib +from urllib.error import HTTPError + +from pecha_uploader.config import baseURL, headers + + +def get_index(index: str): + """ + Get Index information for article name `index`. + `index`: str, article en name + """ + index_url = baseURL + "api/v2/raw/index" + prepare_index_str = index.replace(" ", "_") + url = f"{index_url}/{prepare_index_str}?with_content_counts=1" + req = urllib.request.Request(url, method="GET", headers=headers) + try: + response = urllib.request.urlopen(req) + print(json.loads(response.read().decode("utf-8"))) + except HTTPError as e: + print("Error code: ", e.code) + print(e.read().decode("utf-8")) diff --git a/src/pecha_uploader/index/upload.py b/src/pecha_uploader/index/upload.py new file mode 100644 index 0000000..1de568e --- /dev/null +++ b/src/pecha_uploader/index/upload.py @@ -0,0 +1,61 @@ +import json +import urllib +from typing import Dict, List +from urllib.error import HTTPError + +from pecha_uploader.config import PECHA_API_KEY, baseURL, headers + + +def post_index(index: str, category_list: List[str], nodes: Dict): + """ " + Post index value for article settings. + `index`: str, article title, + `catLIST`: list of str, category list (see post_category() for example), + `titleLIST`: list of json, title name in different language, + titleLIST = { + "lang": "en/he", + "text": "Your en/he title", + "primary": True (You must have a primary title for each language) + } + """ + url = baseURL + "api/v2/raw/index/" + urllib.parse.quote(index.replace(" ", "_")) + + # "titles" : titleLIST, + # "key" : index, + # "nodeType" : "JaggedArrayNode", + # # "lengths" : [4, 50], + # "depth" : 2, + # "sections" : ["Chapter", "Verse"], + # "addressTypes" : ["Integer", "Integer"], + + index = {"title": "", "categories": [], "schema": {}} + index["title"] = index + index["categories"] = list(map(lambda x: x["name"], category_list)) + index["schema"] = nodes + + # if text is commentary + if "base_text_mapping" in category_list[-1].keys(): + index["base_text_titles"] = category_list[-1]["base_text_titles"] + index["base_text_mapping"] = category_list[-1]["base_text_mapping"] + index["collective_title"] = index + index["dependence"] = category_list[-1]["link"] + + input_json = json.dumps(index, indent=4, ensure_ascii=False) + values = { + "json": input_json, + "apikey": PECHA_API_KEY, + } + data = urllib.parse.urlencode(values) + binary_data = data.encode("ascii") + req = urllib.request.Request(url, binary_data, headers=headers) + try: + response = urllib.request.urlopen(req) + res = response.read().decode("utf-8") + print(res) + if "error" in res and "already exists." not in res: + return False + return True + except HTTPError as e: + print("Error code: ", e.code) + print(e.read()) + return False From ce5ef6f43f352c00d3b35556ce8739867424d460 Mon Sep 17 00:00:00 2001 From: lobsam Date: Wed, 18 Dec 2024 15:57:07 +0530 Subject: [PATCH 05/12] added text --- src/pecha_uploader/text/extract.py | 22 ++++++++++++ src/pecha_uploader/text/upload.py | 56 ++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 src/pecha_uploader/text/extract.py create mode 100644 src/pecha_uploader/text/upload.py diff --git a/src/pecha_uploader/text/extract.py b/src/pecha_uploader/text/extract.py new file mode 100644 index 0000000..fb3466d --- /dev/null +++ b/src/pecha_uploader/text/extract.py @@ -0,0 +1,22 @@ +import urllib +from urllib.error import HTTPError + +from pecha_uploader.config import baseURL, headers + + +def get_text(text_name: str): + """ + Get text value for article `text_name`. + `text_name`: str, article name + """ + text_url = baseURL + "api/texts" + prepare_text_str = urllib.parse.quote(text_name) + + url = f"{text_url}/{prepare_text_str}?pad=0" + req = urllib.request.Request(url, method="GET", headers=headers) + try: + response = urllib.request.urlopen(req) + print(response.read().decode("utf-8")) + except HTTPError as e: + print("Error code: ", e.code) + print(e.read().decode("utf-8")) diff --git a/src/pecha_uploader/text/upload.py b/src/pecha_uploader/text/upload.py new file mode 100644 index 0000000..bd0d4db --- /dev/null +++ b/src/pecha_uploader/text/upload.py @@ -0,0 +1,56 @@ +import json +import urllib +from typing import Dict +from urllib.error import HTTPError + +from pecha_uploader.config import PECHA_API_KEY, baseURL, headers + + +def post_text(text_name: str, text_content: Dict): + + """ + Post text to article `text_name`. + `text_name`: str, article name, + `text_content`: dict, text value + text_content = { + "versionTitle": "Your version title", + "versionSource": "Version source url", + "language": "en/he", + "text": [ + [ + "Paragraph 1 row 1", + "Paragraph 1 row 2", + ... + ], + [ + "Paragraph 2 row 1", + "Paragraph 2 row 2", + ... + ], + ... + ] + } + """ + text_input_json = json.dumps(text_content) + # text_name = text_name.replace(" ", "_") + + prepare_text = urllib.parse.quote(text_name) + + url = baseURL + f"api/texts/{prepare_text}?count_after=1" + + values = {"json": text_input_json, "apikey": PECHA_API_KEY} + data = urllib.parse.urlencode(values) + binary_data = data.encode("ascii") + req = urllib.request.Request(url, binary_data, headers=headers) + try: + response = urllib.request.urlopen(req) + res = response.read().decode("utf-8") + if "error" not in res: + print(f"\n{res}\n") + return True + print("res:>>>>>", res) + + return False + except HTTPError as e: + print("Error code: ", e) + return False From a6f3d14613b07e2f1244a3384d884c12adeff4f7 Mon Sep 17 00:00:00 2001 From: lobsam Date: Wed, 18 Dec 2024 16:14:20 +0530 Subject: [PATCH 06/12] added links --- src/pecha_uploader/links/extract.py | 31 +++++++++++++++++++ src/pecha_uploader/links/upload.py | 46 +++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 src/pecha_uploader/links/extract.py create mode 100644 src/pecha_uploader/links/upload.py diff --git a/src/pecha_uploader/links/extract.py b/src/pecha_uploader/links/extract.py new file mode 100644 index 0000000..00cd7b3 --- /dev/null +++ b/src/pecha_uploader/links/extract.py @@ -0,0 +1,31 @@ +import urllib +from urllib.error import HTTPError + +from pecha_uploader.config import baseURL, headers + + +def get_link(link_name: str, with_text=1): + """ + Get links for article/section/row `link_name` + `link_name`: str, article/section/row name + article => link_name = "The way of the bodhisattvas" + section => link_name = "The way of the bodhisattvas.1" + sections => link_name = "The way of the bodhisattvas.1-2" + row => link_name = "The way of the bodhisattvas.1:1" + rows => link_name = "The way of the bodhisattvas.1:1-3" + """ + link_name = link_name.replace(" ", "_") + link_url = "" + for c in link_name: + if ord(c) > 128: + link_url += urllib.parse.quote(c) + else: + link_url += c + url = baseURL + f"api/links/{link_url}?with_text={with_text}" + req = urllib.request.Request(url, method="GET", headers=headers) + try: + response = urllib.request.urlopen(req) + print(response.read().decode("utf-8")) + except (HTTPError) as e: + print("Error code: ", e.code) + print(e.read()) diff --git a/src/pecha_uploader/links/upload.py b/src/pecha_uploader/links/upload.py new file mode 100644 index 0000000..7449573 --- /dev/null +++ b/src/pecha_uploader/links/upload.py @@ -0,0 +1,46 @@ +import json +import urllib +from typing import List +from urllib.error import HTTPError + +from pecha_uploader.config import PECHA_API_KEY, baseURL, headers + + +def post_link(ref_list: List[str], type_str: str): + """ + Post references for articles. + `ref_list`: list of str, articles to reference + ref_list = [ + "Article_1.1:2", # First article/section/row + "Article_2.1:2" # Second + ] + `type_str`: str, reference type + The Sefaria team have provided several types: + - commentary + - quotation + - reference + - summary + - explication + - related + """ + url = baseURL + "api/links/" + link = {"refs": ref_list, "type": type_str} + input_json_link = json.dumps(link) + + values = {"json": input_json_link, "apikey": PECHA_API_KEY} + data = urllib.parse.urlencode(values) + binary_data = data.encode("ascii") + req = urllib.request.Request(url, binary_data, headers=headers) + try: + response = urllib.request.urlopen(req) + res = response.read().decode("utf-8") + print(res) + if "error" not in res: + return {"status": True, "res": res} + elif "Link already exists" in res: + return {"status": False, "res": res} + return {"status": True, "res": res} + except (HTTPError) as e: + print("Error code: ", e.code) + print(e.read()) + return {"status": False, "res": e.read()} From e2e172884db2a461da53c04a6d8d257022fe2063 Mon Sep 17 00:00:00 2001 From: lobsam Date: Wed, 18 Dec 2024 16:27:09 +0530 Subject: [PATCH 07/12] added term --- src/pecha_uploader/preprocess/extract.py | 19 ++++++++++ src/pecha_uploader/preprocess/upload.py | 46 ++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 src/pecha_uploader/preprocess/extract.py create mode 100644 src/pecha_uploader/preprocess/upload.py diff --git a/src/pecha_uploader/preprocess/extract.py b/src/pecha_uploader/preprocess/extract.py new file mode 100644 index 0000000..295449f --- /dev/null +++ b/src/pecha_uploader/preprocess/extract.py @@ -0,0 +1,19 @@ +import urllib +from urllib.error import HTTPError + +from pecha_uploader.config import baseURL, headers + + +def get_term(term: str): + """ + Get term values for variable `term_str`. + `term`: str, term name + """ + url = baseURL + "api/terms/" + urllib.parse.quote(term) + req = urllib.request.Request(url, headers=headers) + try: + response = urllib.request.urlopen(req) + print(response.read().decode("utf-8")) + except HTTPError as e: + print("Error code: ", e.code) + print(e.read().decode("utf-8")) diff --git a/src/pecha_uploader/preprocess/upload.py b/src/pecha_uploader/preprocess/upload.py new file mode 100644 index 0000000..11e5036 --- /dev/null +++ b/src/pecha_uploader/preprocess/upload.py @@ -0,0 +1,46 @@ +import json +import urllib +from urllib.error import HTTPError + +from pecha_uploader.config import PECHA_API_KEY, baseURL, headers + + +def post_term(term_en: str, term_bo: str): + """ + Post term for category in different language. + You MUST post term before posting any category. + `term_en`: str, primary `en` term (chinese), + `term_bo`: str, primary `he` term (བོད་ཡིག) + """ + url = baseURL + "api/terms/" + urllib.parse.quote(term_en) + input_json = json.dumps( + { + "name": term_en, + "titles": [ + {"text": term_en, "lang": "en", "primary": True}, + {"text": term_bo, "lang": "he", "primary": True}, + ], + } + ) + values = { + "json": input_json, + "apikey": PECHA_API_KEY, + "update": True, + } + data = urllib.parse.urlencode(values) + binary_data = data.encode("ascii") + req = urllib.request.Request(url, binary_data, method="POST", headers=headers) + try: + response = urllib.request.urlopen(req) + res = response.read().decode("utf-8") + # term conflict + if ( + "error" in res + and "A Term with the title" in res + and "in it already exists" in res + ): + return {"status": False, "term_conflict": res} + return {"status": True} + except HTTPError as e: + print("[term] Error code: ", e.code) + return {"status": False, "error": e.read()} From e6bf78c02b39060c104aa7e8e5be9ff6dc5b9e45 Mon Sep 17 00:00:00 2001 From: lobsam Date: Thu, 19 Dec 2024 10:49:57 +0530 Subject: [PATCH 08/12] added utils file --- src/pecha_uploader/pipeline.py | 0 src/pecha_uploader/utils.py | 180 +++++++++++++++++++++++++++++++++ 2 files changed, 180 insertions(+) create mode 100644 src/pecha_uploader/pipeline.py create mode 100644 src/pecha_uploader/utils.py diff --git a/src/pecha_uploader/pipeline.py b/src/pecha_uploader/pipeline.py new file mode 100644 index 0000000..e69de29 diff --git a/src/pecha_uploader/utils.py b/src/pecha_uploader/utils.py new file mode 100644 index 0000000..0fea8b4 --- /dev/null +++ b/src/pecha_uploader/utils.py @@ -0,0 +1,180 @@ +import re +from typing import Dict, List, Union + + +def generate_schema( + en_book: List[Dict], bo_book: List[Dict], en_key: str = "", bo_key: str = "" +) -> List: + """This function generate index schema for both complex and simple text""" + nodes = [] + # generate schema node for complex text + if "content" in bo_book: + botext = bo_book["content"] + entext = en_book["content"] + else: + botext = bo_book + entext = en_book + + if isinstance(entext, dict): + for (enkey, envalue), (bokey, bovalue) in zip(entext.items(), botext.items()): + en_full_key = enkey.strip() if en_key else enkey + bo_full_key = bokey.strip() if bo_key else bokey + if isinstance(envalue, dict) and enkey != "data": + # Check if the dictionary has any children other than 'data' + + has_children = any(sub_key != "data" for sub_key in envalue.keys()) + child_nodes = generate_schema( + envalue, bovalue, en_full_key, bo_full_key + ) + # if only data is present + if not has_children: + data_node = create_data_node( + en_full_key, bo_full_key, envalue["data"], bovalue["data"] + ) + nodes.append(data_node) + else: + node = { + "nodes": child_nodes, + "titles": [ + {"lang": "he", "text": bo_full_key, "primary": True}, + {"lang": "en", "text": en_full_key, "primary": True}, + ], + "key": en_full_key, + } + nodes.append(node) + + elif enkey == "data": + data_node = create_data_node(enkey, "གནས་བབས", envalue, bovalue) + nodes.append(data_node) + if isinstance(entext, list): + data_node = create_data_node(en_book["title"], bo_book["title"], entext, botext) + nodes.append(data_node) + return nodes + + +def create_data_node( + en_key: str, + bo_key: str, + envalue: Union[List[str], List[List]], + bovalue: Union[List[str], List[List]], +): + """This function generate node for schema""" + text_depth = None + sections = ["Chapters", "Verses", "Paragraphs"] + + if len(envalue) > 0: + text_depth = get_list_depth(envalue) + else: + text_depth = 1 + + if len(bovalue) > 0: + text_depth = get_list_depth(bovalue) + else: + text_depth = 1 + + return { + "nodeType": "JaggedArrayNode", + "depth": text_depth, + "addressTypes": list(map(lambda x: "Integer", sections[:text_depth])), + "sections": sections[:text_depth], + "titles": [ + {"lang": "he", "text": bo_key, "primary": True}, + {"lang": "en", "text": en_key, "primary": True}, + ], + "key": en_key, + } + + +def parse_annotation(value: Union[List[str], List[List]]): + """clean and parse annotation""" + + def process_item(item): + # If the item is a list, recursively process its contents + if isinstance(item, list): + return [process_item(sub_item) for sub_item in item] + + # Convert item to string and apply transformations + if not isinstance(item, str): + item = str(item) + + # Replace newlines + item = item.replace("\n", "
") + + # Sapche transformation + if "" in item: + item = item.replace("", '') + item = item.replace("", "") + + # Citation transformation + if "{" in item: + item = item.replace("{", '') + item = item.replace("}", "") + + # Quotation transformation + if "(" in item: + item = item.replace("(", '') + item = item.replace(")", "") + + # Remove numbered tags + item = re.sub(r"<\d+>", "", item.strip()) + + return item + + # Process the entire input recursively + return process_item(value) + + +def generate_chapters( + book: List[Dict], + language: str, + current_key: str = "", + parent_keys: List[str] = None, +) -> Dict: + """generate text content""" + result = {} + if parent_keys is None: + parent_keys = [] + + for key, value in book.items(): + full_key = key if current_key else key + new_parent_keys = parent_keys + [key.strip()] # Update list of parent key + clean_value = [] + if isinstance(value, dict): + + # Check if the dictionary has any children other than 'data' + has_children = any(sub_key != "data" for sub_key in value.keys()) + child_data = generate_chapters(value, language, full_key, new_parent_keys) + result.update(child_data) # Merge results from children + + # Determine the key for 'data' depending on whether there are other children + if "data" in value: + clean_value = parse_annotation(value["data"]) + + # If there are other children, include 'data' in the key, else exclude it + if has_children: + if language == "bo": + data_key = ", ".join(new_parent_keys) + ", གནས་བབས" + else: + data_key = ", ".join(new_parent_keys) + ", data" + else: + data_key = ", ".join( + new_parent_keys + ) # Exclude 'data' from the key if no other children + result[data_key] = clean_value + + return result + + +def get_list_depth(lst): + """ + Function to calculate the depth of a nested list. + """ + if not isinstance(lst, list): # Base case: not a list, no depth + return 0 + else: + max_depth = 0 + for item in lst: + max_depth = max( + max_depth, get_list_depth(item) + ) # Recurse and update max depth + return max_depth + 1 # Add one to include the current depth level From b8233d17a61e832a4a2ed9756d50224817c2d91d Mon Sep 17 00:00:00 2001 From: lobsam Date: Thu, 19 Dec 2024 16:21:11 +0530 Subject: [PATCH 09/12] added payload --- src/pecha_uploader/category/__init__.py | 0 src/pecha_uploader/category/extract.py | 8 +- src/pecha_uploader/category/upload.py | 8 +- src/pecha_uploader/index/__init__.py | 0 src/pecha_uploader/index/upload.py | 6 +- src/pecha_uploader/links/__init__.py | 0 src/pecha_uploader/pipeline.py | 169 ++++++++++++++++++++++ src/pecha_uploader/preprocess.py | 61 -------- src/pecha_uploader/preprocess/__init__.py | 0 src/pecha_uploader/text/upload.py | 5 +- 10 files changed, 182 insertions(+), 75 deletions(-) create mode 100644 src/pecha_uploader/category/__init__.py create mode 100644 src/pecha_uploader/index/__init__.py create mode 100644 src/pecha_uploader/links/__init__.py delete mode 100644 src/pecha_uploader/preprocess.py create mode 100644 src/pecha_uploader/preprocess/__init__.py diff --git a/src/pecha_uploader/category/__init__.py b/src/pecha_uploader/category/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/pecha_uploader/category/extract.py b/src/pecha_uploader/category/extract.py index 328d1eb..e015a11 100644 --- a/src/pecha_uploader/category/extract.py +++ b/src/pecha_uploader/category/extract.py @@ -17,11 +17,11 @@ def get_category(category_name: str): res = response.read().decode("utf-8") print(res) if "error" not in res: - return True + return {"status": True} elif "already exists" in res["error"]: - return True - return False + return {"status": True} + return {"status": False, "error": res} except HTTPError as e: print("[categories] Error code: ", e.code) print(e.read()) - return False + return {"status": False, "error": res} diff --git a/src/pecha_uploader/category/upload.py b/src/pecha_uploader/category/upload.py index a69cea3..67cf59e 100644 --- a/src/pecha_uploader/category/upload.py +++ b/src/pecha_uploader/category/upload.py @@ -37,10 +37,10 @@ def post_category(en_category_list: List[str], bo_category_list: List[str]): res = response.read().decode("utf-8") print("categories response: ", res) if "error" not in res: - return True + return {"status": True} elif "already exists" in res: - return True - return False + return {"status": True} + return {"status": False, "error": res} except HTTPError as e: print("Error code: ", e) - return False + return {"status": False, "error": e} diff --git a/src/pecha_uploader/index/__init__.py b/src/pecha_uploader/index/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/pecha_uploader/index/upload.py b/src/pecha_uploader/index/upload.py index 1de568e..7226e96 100644 --- a/src/pecha_uploader/index/upload.py +++ b/src/pecha_uploader/index/upload.py @@ -53,9 +53,9 @@ def post_index(index: str, category_list: List[str], nodes: Dict): res = response.read().decode("utf-8") print(res) if "error" in res and "already exists." not in res: - return False - return True + return {"status": False, "error": res} + return {"status": True} except HTTPError as e: print("Error code: ", e.code) print(e.read()) - return False + return {"status": False, "error": e} diff --git a/src/pecha_uploader/links/__init__.py b/src/pecha_uploader/links/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/pecha_uploader/pipeline.py b/src/pecha_uploader/pipeline.py index e69de29..5ed96a0 100644 --- a/src/pecha_uploader/pipeline.py +++ b/src/pecha_uploader/pipeline.py @@ -0,0 +1,169 @@ +""" +This module processes text files, parses JSON content, +and uploads structured data to various APIs for further processing. +""" +import json + +from pecha_uploader.category.upload import post_category +from pecha_uploader.config import BASEPATH +from pecha_uploader.index.upload import post_index +from pecha_uploader.preprocess.upload import post_term +from pecha_uploader.text.upload import post_text +from pecha_uploader.utils import generate_chapters, generate_schema, parse_annotation + + +def add_by_file(text_name: str, text_type: str): + """ + Read a text file and add. + """ + file = f"{BASEPATH}/jsondata/texts/{text_type}/{text_name}" + + print(f"=========================={text_name}===========================") + + try: + with open(file, encoding="utf-8") as f: + data = json.load(f) + except Exception as e: + log_error("file", text_name, f"Error opening file: {e}") + return False + + payload = { + "bookKey": "", + "categoryEn": [], + "categoryHe": [], + "textEn": [], + "textHe": [], + "bookDepth": 0, + } + + try: + for lang in data: + if lang == "source": + for i in range(len(data[lang]["categories"])): + payload["categoryEn"].append(data[lang]["categories"][: i + 1]) + for book in data[lang]["books"]: + payload["bookKey"] = payload["categoryEn"][-1][-1]["name"] + payload["textEn"].append(book) + elif lang == "target": + for i in range(len(data[lang]["categories"])): + payload["categoryHe"].append(data[lang]["categories"][: i + 1]) + for book in data[lang]["books"]: + payload["textHe"].append(book) + except Exception as e: + log_error("Payload", text_name, f"Error parsing data: {e}") + return False + + try: + print("===========================( post_category )===========================") + for i in range(len(payload["categoryEn"])): + response = post_term( + payload["categoryEn"][i][-1]["name"], + payload["categoryHe"][i][-1]["name"], + ) + if not response["status"]: + if "term_conflict" in response: + error = response["term_conflict"] + log_error("Term", text_name, f"{error}") + else: + log_error("Term", text_name, f"{response}") + return False + + category_response = post_category( + payload["categoryEn"][i], payload["categoryHe"][i] + ) + if not category_response["status"]: + error = category_response["error"] + log_error("Category", text_name, f"{error}") + return False + + print( + "============================( post_index )================================" + ) + schema = generate_schema(payload["textEn"][0], payload["textHe"][0]) + index_response = post_index( + payload["bookKey"], payload["categoryEn"][-1], schema[0] + ) + if not index_response["status"]: + error = index_response["error"] + log_error("Index", text_name, f"{error}") + return False + + print( + "=============================( post_text )=================================" + ) + text_index_key = payload["bookKey"] + + for book in payload["textHe"]: + if not process_text(book, "he", text_index_key): + return False + + for book in payload["textEn"]: + if not process_text(book, "en", text_index_key): + return False + + except Exception as e: + print("Error : ", e) + return False + + with open( + f"{BASEPATH}/jsondata/texts/success.txt", mode="a", encoding="utf-8" + ) as f: + f.write(f"{text_name}\n") + + return True + + +def process_text(book: dict, lang: str, text_index_key: str): + """ + Process text for a given language and post it. + """ + text = { + "versionTitle": book["title"], + "versionSource": book["versionSource"], + "language": lang, + "actualLanguage": book["language"], + "completestatus": book["completestatus"], + "text": [], + } + + if "content" in book: + # Complex text + if isinstance(book["content"], dict): + result = generate_chapters(book["content"], book["language"]) + for key, value in result.items(): + text["text"] = value + text_response = post_text(key, text) + if value and not text_response["status"]: + error = text_response["error"] + log_error("Text", key, f"{error}") + return False + + # Simple text + elif isinstance(book["content"], list): + text["text"] = parse_annotation(book["content"]) + text_response = post_text(key, text) + if not text_response["status"]: + error = text_response["error"] + log_error("Text", text_index_key, f"{error}") + return False + + return True + + +def log_error(api_name: str, text_name: str, message: str): + """ + Logs error details to a designated error file. + + Args: + api_name (str): The name of the API where the error occurred. + text_name (str): The name of the text file being processed. + message (str): A descriptive error message. + + Writes: + The error details into an `errors.txt` file located at + `{BASEPATH}/pecha_uploader/texts/`. + """ + with open( + f"{BASEPATH}/pecha_uploader/texts/errors.txt", mode="a", encoding="utf-8" + ) as error_file: # noqa + error_file.write(f"({api_name})--->{text_name}: {message}\n\n") diff --git a/src/pecha_uploader/preprocess.py b/src/pecha_uploader/preprocess.py deleted file mode 100644 index 097654b..0000000 --- a/src/pecha_uploader/preprocess.py +++ /dev/null @@ -1,61 +0,0 @@ -import json -import urllib -from urllib.error import HTTPError - -from pecha_uploader.config import PECHA_API_KEY, baseURL, headers - - -def get_term(term: str): - """ - Get term values for variable `term_str`. - `term`: str, term name - """ - url = baseURL + "api/terms/" + urllib.parse.quote(term) - req = urllib.request.Request(url, headers=headers) - try: - response = urllib.request.urlopen(req) - print(response.read().decode("utf-8")) - except HTTPError as e: - print("Error code: ", e.code) - print(e.read().decode("utf-8")) - - -def post_term(term_en: str, term_bo: str): - """ - Post term for category in different language. - You MUST post term before posting any category. - `term_en`: str, primary `en` term (chinese), - `term_bo`: str, primary `he` term (བོད་ཡིག) - """ - url = baseURL + "api/terms/" + urllib.parse.quote(term_en) - input_json = json.dumps( - { - "name": term_en, - "titles": [ - {"text": term_en, "lang": "en", "primary": True}, - {"text": term_bo, "lang": "he", "primary": True}, - ], - } - ) - values = { - "json": input_json, - "apikey": PECHA_API_KEY, - "update": True, - } - data = urllib.parse.urlencode(values) - binary_data = data.encode("ascii") - req = urllib.request.Request(url, binary_data, method="POST", headers=headers) - try: - response = urllib.request.urlopen(req) - res = response.read().decode("utf-8") - # term conflict - if ( - "error" in res - and "A Term with the title" in res - and "in it already exists" in res - ): - return {"status": False, "term_conflict": res} - return {"status": True} - except HTTPError as e: - print("[term] Error code: ", e.code) - return {"status": False, "error": e.read()} diff --git a/src/pecha_uploader/preprocess/__init__.py b/src/pecha_uploader/preprocess/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/pecha_uploader/text/upload.py b/src/pecha_uploader/text/upload.py index bd0d4db..9ede0ae 100644 --- a/src/pecha_uploader/text/upload.py +++ b/src/pecha_uploader/text/upload.py @@ -47,10 +47,9 @@ def post_text(text_name: str, text_content: Dict): res = response.read().decode("utf-8") if "error" not in res: print(f"\n{res}\n") - return True - print("res:>>>>>", res) + return {"status": True} return False except HTTPError as e: print("Error code: ", e) - return False + return {"status": False, "error": e} From a9298704a71670e60fcdce8421a82bd1e0a120e1 Mon Sep 17 00:00:00 2001 From: lobsam Date: Thu, 19 Dec 2024 16:37:25 +0530 Subject: [PATCH 10/12] edited text upload status --- src/pecha_uploader/pipeline.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/pecha_uploader/pipeline.py b/src/pecha_uploader/pipeline.py index 5ed96a0..9536b6a 100644 --- a/src/pecha_uploader/pipeline.py +++ b/src/pecha_uploader/pipeline.py @@ -3,6 +3,7 @@ and uploads structured data to various APIs for further processing. """ import json +import os from pecha_uploader.category.upload import post_category from pecha_uploader.config import BASEPATH @@ -12,6 +13,34 @@ from pecha_uploader.utils import generate_chapters, generate_schema, parse_annotation +def add_texts(text_type): + """ + Add all text files in `/jsondata/texts`. + """ + text_list = os.listdir(f"{BASEPATH}/jsondata/texts/{text_type}") + try: # Added text save to `success.txt` + with open(f"{BASEPATH}/jsondata/texts/success.txt", encoding="utf-8") as f: + uploaded_text_list = f.read().split("\n") + except Exception as e: + print("read text error :", e) + uploaded_text_list = [] + + count = 0 + for data in text_list: + count += 1 + print(f"{count}/{len(text_list)}") + if data in uploaded_text_list: + continue + elif data == "success.txt": + continue + text_upload_succeed = add_by_file(data, text_type) + # 有錯誤先終止 + if not text_upload_succeed: + print("=== [Failed] ===") + return + print(f"=== [Finished] {data} ===") + + def add_by_file(text_name: str, text_type: str): """ Read a text file and add. From d0c5ea6f26a4e45a5d0c244653b19f8765e22566 Mon Sep 17 00:00:00 2001 From: lobsam Date: Wed, 25 Dec 2024 00:02:22 +0530 Subject: [PATCH 11/12] added links --- requirements.txt | 1 + src/pecha_uploader/category/upload.py | 14 +- src/pecha_uploader/index/upload.py | 17 +- .../texts/baseText/Prayer_of_Kuntuzangpo.json | 162 ++++++ .../baseText/anotation_styling_test.json | 48 ++ .../vajra_cutter_commentary.json | 116 ++++ ...\340\274\213\340\275\226\340\274\215.json" | 504 ++++++++++++++++++ src/pecha_uploader/jsondata/texts/errors.txt | 19 + src/pecha_uploader/jsondata/texts/success.txt | 4 + src/pecha_uploader/links/create_ref_json.py | 231 ++++++++ src/pecha_uploader/pipeline.py | 126 ++++- src/pecha_uploader/preprocess/upload.py | 2 +- src/pecha_uploader/text/upload.py | 3 +- src/pecha_uploader/utils.py | 24 +- 14 files changed, 1228 insertions(+), 43 deletions(-) create mode 100644 requirements.txt create mode 100644 src/pecha_uploader/jsondata/texts/baseText/Prayer_of_Kuntuzangpo.json create mode 100644 src/pecha_uploader/jsondata/texts/baseText/anotation_styling_test.json create mode 100644 src/pecha_uploader/jsondata/texts/commentaryText/vajra_cutter_commentary.json create mode 100644 "src/pecha_uploader/jsondata/texts/commentaryText/\340\275\200\340\275\264\340\275\223\340\274\213\340\275\226\340\275\237\340\275\204\340\274\213\340\275\246\340\276\250\340\275\274\340\275\223\340\274\213\340\275\243\340\275\230\340\274\213\340\275\202\340\276\261\340\275\262\340\274\213\340\275\240\340\275\221\340\276\262\340\275\272\340\275\223\340\274\213\340\275\226\340\276\261\340\275\272\340\275\221\340\274\213\340\275\212\340\276\260\340\275\262\340\274\213\340\275\200\340\275\240\340\275\262\340\274\213\340\275\220\340\275\264\340\275\242\340\274\213\340\275\230\340\275\246\340\274\213\340\275\226\340\275\246\340\275\243\340\274\213\340\275\226\340\274\215.json" create mode 100644 src/pecha_uploader/jsondata/texts/errors.txt create mode 100644 src/pecha_uploader/jsondata/texts/success.txt create mode 100644 src/pecha_uploader/links/create_ref_json.py diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..dc15bbd --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +jsonpickle diff --git a/src/pecha_uploader/category/upload.py b/src/pecha_uploader/category/upload.py index 67cf59e..c11e5a7 100644 --- a/src/pecha_uploader/category/upload.py +++ b/src/pecha_uploader/category/upload.py @@ -1,7 +1,8 @@ import json -import urllib from typing import List from urllib.error import HTTPError +from urllib.parse import urlencode +from urllib.request import Request, urlopen from pecha_uploader.config import PECHA_API_KEY, baseURL, headers @@ -28,19 +29,18 @@ def post_category(en_category_list: List[str], bo_category_list: List[str]): input_json = json.dumps(category) values = {"json": input_json, "apikey": PECHA_API_KEY} - data = urllib.parse.urlencode(values) + data = urlencode(values) binary_data = data.encode("ascii") - req = urllib.request.Request(url, binary_data, headers=headers) + req = Request(url, binary_data, headers=headers) try: - response = urllib.request.urlopen(req) + response = urlopen(req) res = response.read().decode("utf-8") - print("categories response: ", res) if "error" not in res: return {"status": True} elif "already exists" in res: return {"status": True} - return {"status": False, "error": res} + return {"status": True, "error": res} except HTTPError as e: - print("Error code: ", e) + print("Error code: ", e, list(map(lambda x: x["name"], en_category_list))[-1]) return {"status": False, "error": e} diff --git a/src/pecha_uploader/index/upload.py b/src/pecha_uploader/index/upload.py index 7226e96..26c5320 100644 --- a/src/pecha_uploader/index/upload.py +++ b/src/pecha_uploader/index/upload.py @@ -6,7 +6,7 @@ from pecha_uploader.config import PECHA_API_KEY, baseURL, headers -def post_index(index: str, category_list: List[str], nodes: Dict): +def post_index(index_str: str, category_list: List[str], nodes: Dict): """ " Post index value for article settings. `index`: str, article title, @@ -18,7 +18,9 @@ def post_index(index: str, category_list: List[str], nodes: Dict): "primary": True (You must have a primary title for each language) } """ - url = baseURL + "api/v2/raw/index/" + urllib.parse.quote(index.replace(" ", "_")) + url = ( + baseURL + "api/v2/raw/index/" + urllib.parse.quote(index_str.replace(" ", "_")) + ) # "titles" : titleLIST, # "key" : index, @@ -29,7 +31,7 @@ def post_index(index: str, category_list: List[str], nodes: Dict): # "addressTypes" : ["Integer", "Integer"], index = {"title": "", "categories": [], "schema": {}} - index["title"] = index + index["title"] = index_str index["categories"] = list(map(lambda x: x["name"], category_list)) index["schema"] = nodes @@ -37,10 +39,11 @@ def post_index(index: str, category_list: List[str], nodes: Dict): if "base_text_mapping" in category_list[-1].keys(): index["base_text_titles"] = category_list[-1]["base_text_titles"] index["base_text_mapping"] = category_list[-1]["base_text_mapping"] - index["collective_title"] = index + index["collective_title"] = index_str index["dependence"] = category_list[-1]["link"] input_json = json.dumps(index, indent=4, ensure_ascii=False) + values = { "json": input_json, "apikey": PECHA_API_KEY, @@ -51,11 +54,9 @@ def post_index(index: str, category_list: List[str], nodes: Dict): try: response = urllib.request.urlopen(req) res = response.read().decode("utf-8") - print(res) if "error" in res and "already exists." not in res: return {"status": False, "error": res} return {"status": True} except HTTPError as e: - print("Error code: ", e.code) - print(e.read()) - return {"status": False, "error": e} + print("Error code: ", e.code, e.read()) + return {"status": False, "error": e.read()} diff --git a/src/pecha_uploader/jsondata/texts/baseText/Prayer_of_Kuntuzangpo.json b/src/pecha_uploader/jsondata/texts/baseText/Prayer_of_Kuntuzangpo.json new file mode 100644 index 0000000..8ace36d --- /dev/null +++ b/src/pecha_uploader/jsondata/texts/baseText/Prayer_of_Kuntuzangpo.json @@ -0,0 +1,162 @@ +{ + "source": { + "categories": [ + { + "name": "Recitations", + "enDesc": "", + "enShortDesc": "Prayers and Rituals" + }, + { + "name": "Aspiration Prayers", + "enDesc": "", + "enShortDesc": "" + }, + { + "name": "Works about The Prayer of Kuntuzangpo", + "enDesc": "", + "enShortDesc": "" + }, + { + "name": "Root text", + "enDesc": "", + "enShortDesc": "" + }, + { + "name": "Prayer of Kuntuzangpo", + "enDesc": "", + "enShortDesc": "The Powerful Aspiration" + } + ], + "books": [ + { + "title": "Prayer of Kuntuzangpo", + "language": "en", + "versionSource": " ", + "completestatus": "in_progress", + "content": [], + "direction": "ltr" + } + ] + }, + "target": { + "categories": [ + { + "name": "ཁ་འདོན།", + "heDesc": "", + "heShortDesc": "ཆོ་ག་དང་འདོན་ཆ།" + }, + { + "name": "སྨོན་ལམ།", + "heDesc": "", + "heShortDesc": "" + }, + { + "name": "ཀུན་བཟང་སྨོན་ལམ་གྱི་སྐོར།", + "heDesc": "", + "heShortDesc": "" + }, + { + "name": "རྩ་བ།", + "heDesc": "", + "heShortDesc": "" + }, + { + "name": "ཀུན་བཟང་སྨོན་ལམ།", + "heDesc": "", + "heShortDesc": "སྨོན་ལམ་སྟོབས་པོ་ཆེ།" + } + ], + "books": [ + { + "title": "ཀུན་བཟང་སྨོན་ལམ།", + "language": "bo", + "versionSource": " ", + "completestatus": "in_progress", + "content": [ + [ + "༄༅། །དཔལ་ཀུན་ཏུ་བཟང་པོའི་སྨོན་ལམ་བཞུགས་སོ། །
", + "ཧོ༔ སྣང་སྲིད་འཁོར་འདས་ཐམས་ཅད་ཀུན༔
གཞི་གཅིག་ལམ་གཉིས་འབྲས་བུ་གཉིས༔
", + "རིག་དང་མ་རིག་ཆོ་འཕྲུལ་ཏེ༔
", + "ཀུན་ཏུ་བཟང་པོའི་སྨོན་ལམ་གྱིས༔
ཐམས་ཅད་ཆོས་དབྱིངས་ཕོ་བྲང་དུ༔
མངོན་པར་རྫོགས་ཏེ་འཚང་རྒྱ་ཤོག༔
", + "ཀུན་གྱི་གཞི་ནི་འདུས་མ་བྱས༔
", + "རང་བྱུང་ཀློང་ཡངས་བརྗོད་དུ་མེད༔
", + "འཁོར་འདས་གཉིས་ཀའི་མིང་མེད་དོ༔
", + "དེ་ཉིད་རིག་ན་སངས་རྒྱས་ཏེ༔
", + "མ་རིག་སེམས་ཅན་འཁོར་བར་འཁྱམས༔
", + "ཁམས་གསུམ་སེམས་ཅན་ཐམས་ཅད་ཀྱིས༔
བརྗོད་མེད་གཞི་དོན་རིག་པར་ཤོག༔
", + "ཀུན་ཏུ་བཟང་པོ་ང་ཡིས་ཀྱང་༔
རྒྱུ་རྐྱེན་མེད་པ་གཞི་ཡི་དོན༔
དེ་ཉིད་གཞི་ལ་རང་བྱུང་རིག༔
", + "ཕྱི་ནང་སྒྲོ་སྐུར་སྐྱོན་མ་བཏགས༔
", + "དྲན་མེད་མུན་པའི་སྒྲིབ་མ་གོས༔
", + "དེ་ཕྱིར་རང་སྣང་སྐྱོན་མ་གོས༔
", + "རང་རིག་སོ་ལ་གནས་པ་ལ༔
སྲིད་གསུམ་འཇིག་ཀྱང་དངངས་སྐྲག་མེད༔
", + "འདོད་ཡོན་ལྔ་ལ་ཆགས་པ་མེད༔
", + "རྟོག་མེད་ཤེས་པ་རང་བྱུང་ལ༔
རྡོས་པའི་གཟུགས་དང་དུག་ལྔ་མེད༔
", + "རིག་པའི་གསལ་ཆ་མ་འགགས་པ༔
", + "ངོ་བོ་གཅིག་ལ་ཡེ་ཤེས་ལྔ༔
", + "ཡེ་ཤེས་ལྔ་པོ་སྨིན་པ་ལས༔
ཐོག་མའི་སངས་རྒྱས་རིགས་ལྔ་བྱུང༔
", + "དེ་ལས་ཡེ་ཤེས་མཐའ་རྒྱས་པས༔
སངས་རྒྱས་བཞི་བཅུ་རྩ་གཉིས་བྱུང་༔
", + "ཡེ་ཤེས་ལྔ་ཡི་རྩལ་ཤར་བས༔
ཁྲག་འཐུང་དྲུག་ཅུ་ཐམ་པ་བྱུང་༔
", + "དེ་ཕྱིར་གཞི་རིག་འཁྲུལ་མ་མྱོང་༔
", + "ཐོག་མའི་སངས་རྒྱས་ང་ཡིན་པས༔
ང་ཡི་སྨོན་ལམ་བཏབ་པ་ཡིས༔
ཁམས་གསུམ་འཁོར་བའི་སེམས་ཅན་གྱིས༔
རང་བྱུང་རིག་པ་ངོ་ཤེས་ནས༔
ཡེ་ཤེས་ཆེན་པོ་མཐའ་རྒྱས་ཤོག༔
", + "ང་ཡི་སྤྲུལ་པ་རྒྱུན་མི་ཆད༔
", + "བྱེ་བ་ཕྲག་བརྒྱ་བསམ་ཡས་འགྱེད༔
", + "གང་ལ་གང་འདུལ་སྣ་ཚོགས་སྟོན༔
", + "ང་ཡི་ཐུགས་རྗེའི་སྨོན་ལམ་གྱིས༔
ཁམས་གསུམ་འཁོར་བའི་སེམས་ཅན་ཀུན༔
རིགས་དྲུག་གནས་ནས་འཐོན་པར་ཤོག༔
", + "དང་པོ་སེམས་ཅན་འཁྲུལ་པ་རྣམས༔
གཞི་ལ་རིག་པ་མ་ཤར་བས༔
ཅི་ཡང་དྲན་མེད་ཐོམ་མེ་བ༔
དེ་ཀ་མ་རིག་འཁྲུལ་པའི་རྒྱུ༔
", + "དེ་ལ་ཧད་ཀྱིས་བརྒྱལ་བ་ལས༔
དངངས་སྐྲག་ཤེས་པ་ཟ་ཟི་འགྱུས༔
", + "དེ་ལས་བདག་གཞན་དགྲར་འཛིན་སྐྱེས༔
", + "བག་ཆགས་རིམ་བཞིན་བརྟས་པ་ལས༔
འཁོར་བ་ལུགས་སུ་འཇུག་པ་བྱུང་༔
", + "དེ་ལས་ཉོན་མོངས་དུག་ལྔ་རྒྱས༔
", + "དུག་ལྔའི་ལས་ལ་རྒྱུན་ཆད་མེད༔
", + "དེ་ཕྱིར་སེམས་ཅན་འཁྲུལ་པའི་གཞི༔
", + "དྲན་མེད་མ་རིག་ཡིན་པའི་ཕྱིར༔
སངས་རྒྱས་ང་ཡི་སྨོན་ལམ་གྱིས༔
ཀུན་གྱི་རིག་པ་རང་ཤེས་ཤོག༔
", + "ལྷན་ཅིག་སྐྱེས་པའི་མ་རིག་པ༔
ཤེས་པ་དྲན་མེད་ཡེངས་པ་ཡིན༔
", + "ཀུན་ཏུ་བཏགས་པའི་མ་རིག་པ༔
བདག་གཞན་གཉིས་སུ་འཛིན་པ་ཡིན༔
", + "ལྷན་ཅིག་ཀུན་བཏགས་མ་རིག་གཉིས༔
སེམས་ཅན་ཀུན་གྱི་འཁྲུལ་གཞི་ཡིན༔
", + "སངས་རྒྱས་ང་ཡི་སྨོན་ལམ་གྱིས༔
འཁོར་བའི་སེམས་ཅན་ཐམས་ཅད་ཀྱི༔
དྲན་མེད་འཐིབ་པའི་མུན་པ་སངས༔
", + "གཉིས་སུ་འཛིན་པའི་ཤེས་པ་དྭངས༔
", + "རིག་པའི་རང་ངོ་ཤེས་པར་ཤོག༔
", + "གཉིས་འཛིན་བློ་ནི་ཐེ་ཚོམ་སྟེ༔
", + "ཞེན་པ་ཕྲ་མོ་སྐྱེས་པ་ལས༔
བག་ཆགས་འཐུག་པོ་རིམ་གྱིས་བརྟས༔
", + "ཟས་ནོར་གོས་དང་གནས་དང་གྲོགས༔
འདོད་ཡོན་ལྔ་དང་བྱམས་པའི་གཉེན༔
ཡིད་འོང་ཆགས་པའི་འདོད་པས་གདུངས༔
", + "དེ་དག་འཇིག་རྟེན་འཁྲུལ་པ་སྟེ༔
", + "གཟུང་འཛིན་ལས་ལ་ཟད་མཐའ་མེད༔
", + "ཞེན་པའི་འབྲས་བུ་སྨིན་པའི་ཚེ༔
རྐམ་ཆགས་གདུང་བའི་ཡི་དྭགས་སུ༔
སྐྱེས་ནས་བཀྲེས་སྐོམ་ཡ་རེ་ང་༔
", + "སངས་རྒྱས་ང་ཡི་སྨོན་ལམ་གྱིས༔
འདོད་ཆགས་ཞེན་པའི་སེམས་ཅན་རྣམས༔
འདོད་པའི་གདུང་བ་ཕྱིར་མ་སྤངས༔
", + "འདོད་ཆགས་ཞེན་པ་ཚུར་མ་བླང་༔
", + "ཤེས་པ་རང་སོར་ཀློད་པ་ཡིས༔
རིག་པ་རང་སོ་ཟིན་གྱུར་ནས༔
ཀུན་རྟོག་ཡེ་ཤེས་ཐོབ་པར་ཤོག༔
", + "ཕྱི་རོལ་ཡུལ་གྱི་སྣང་བ་ལ༔
འཇིགས་སྐྲག་ཤེས་པ་ཕྲ་མོ་འགྱུས༔
", + "སྡང་བའི་བག་ཆགས་བརྟས་པ་ལས༔
དགྲར་འཛིན་བརྡེག་གསོད་ཧྲག་པ་སྐྱེས༔
", + "ཞེ་སྡང་འབྲས་བུ་སྨིན་པའི་ཚེ༔
དམྱལ་བའི་བཙོ་བསྲེག་སྡུག་རེ་བསྔལ༔
", + "སངས་རྒྱས་ང་ཡིས་སྨོན་ལམ་གྱིས༔
འགྲོ་དྲུག་སེམས་ཅན་ཐམས་ཅད་ཀྱི༔
ཞེ་སྡང་དྲག་པོ་སྐྱེས་པའི་ཚེ༔
སྤང་བླང་མི་བྱ་རང་སོར་ཀློད༔
", + "རིག་པ་རང་སོ་ཟིན་གྱུར་ནས༔
གསལ་བའི་ཡེ་ཤེས་ཐོབ་པར་ཤོག༔
", + "རང་སེམས་ཁེངས་པར་གྱུར་པ་ལ༔
གཞན་ལ་འགྲན་སེམས་སྨད་པའི་བློ༔
", + "ང་རྒྱལ་དྲག་པོའི་སེམས་སྐྱེས་པས༔
བདག་གཞན་འཐབ་རྩོད་སྡུག་བསྔལ་མྱོང༔
", + "ལས་དེའི་འབྲས་བུ་སྨིན་པའི་ཚེ༔
འཕོ་ལྟུང་མྱོང་བའི་ལྷ་རུ་སྐྱེ༔
", + "སངས་རྒྱས་ང་ཡི་སྨོན་ལམ་གྱིས༔
ཁེངས་སེམས་སྐྱེས་པའི་སེམས་ཅན་རྣམས༔
དེ་ཚེ་ཤེས་པ་རང་སོར་ཀློད༔
", + "རིག་པ་རང་སོ་ཟིན་གྱུར་ནས༔
མཉམ་པ་ཉིད་ཀྱི་དོན་རྟོགས་ཤོག༔
", + "གཉིས་འཛིན་བརྟས་པའི་བག་ཆགས་ཀྱིས༔
བདག་བསྟོད་གཞན་སྨོད་ཟུག་རྔུ་ལས༔
འཐབ་རྩོད་འགྲན་སེམས་བརྟས་པ་ལས༔
གསོད་གཅོད་ལྷ་མིན་གནས་སུ་སྐྱེ༔
", + "འབྲས་བུ་དམྱལ་བའི་གནས་སུ་ལྟུང་༔
", + "སངས་རྒྱས་ང་ཡི་སྨོན་ལམ་གྱིས༔
འགྲན་སེམས་འཐབ་རྩོད་སྐྱེས་པ་རྣམས༔
དགྲར་འཛིན་མི་བྱ་རང་སོར་ཀློད༔
", + "ཤེས་པ་རང་སོ་ཟིན་གྱུར་ནས༔
ཕྲིན་ལས་ཐོགས་མེད་ཡེ་ཤེས་ཤོག༔
", + "དྲན་མེད་བཏང་སྙོམས་ཡེངས་པ་ཡིས༔
འཐིབས་དང་རྨུགས་དང་བརྗེད་པ་དང་༔
བརྒྱལ་དང་ལེ་ལོ་གཏི་མུག་པས༔
འབྲས་བུ་སྐྱབས་མེད་བྱོལ་སོང་འཁྱམས༔
", + "སངས་རྒྱས་ང་ཡི་སྨོན་ལམ་གྱིས༔
གཏི་མུག་བྱིང་པའི་མུན་པ་ལ༔
དྲན་པ་གསལ་བའི་མདངས་ཤར་བས༔
རྟོག་མེད་ཡེ་ཤེས་ཐོབ་པར་ཤོག༔
", + "ཁམས་གསུམ་སེམས་ཅན་ཐམས་ཅད་ཀུན༔
ཀུན་གཞི་སངས་རྒྱས་ང་དང་མཉམ༔
", + "དྲན་མེད་འཁྲུལ་པའི་གཞི་རུ་སོང་༔
", + "ད་ལྟ་དོན་མེད་ལས་ལ་སྤྱོད༔
", + "ལས་དྲུག་རྨི་ལམ་འཁྲུལ་པ་འདྲ༔
", + "ང་ནི་སངས་རྒྱས་ཐོག་མ་ཡིན༔
", + "འགྲོ་དྲུག་སྤྲུལ་པས་འདུལ་བའི་ཕྱིར༔
ཀུན་ཏུ་བཟང་པོའི་སྨོན་ལམ་གྱིས༔
སེམས་ཅན་ཐམས་ཅད་མ་ལུས་པ༔
ཆོས་ཀྱི་དབྱིངས་སུ་འཚང་རྒྱ་ཤོག༔
", + "ཨ་ཧོ༔
", + "ཕྱིན་ཆད་རྣལ་འབྱོར་སྟོབས་ཅན་གྱིས༔
འཁྲུལ་མེད་རིག་པ་རང་གསལ་ནས༔
", + "སྨོན་ལམ་སྟོབས་ཅན་འདི་བཏབ་པས༔
འདི་ཐོས་སེམས་ཅན་ཐམས་ཅད་ཀུན༔
སྐྱེ་བ་གསུམ་ནས་མངོན་འཚང་རྒྱ༔
", + "ཉི་ཟླ་གཟའ་ཡིས་ཟིན་པའམ༔
སྒྲ་དང་ས་གཡོས་བྱུང་བའམ༔
ཉི་མ་ལྡོག་འགྱུར་ལོ་འཕོ་དུས༔
རང་ཉིད་ཀུན་ཏུ་བཟང་པོར་བསྐྱེད༔
", + "ཀུན་གྱིས་ཐོས་སར་འདི་བརྗོད་ན༔
ཁམས་གསུམ་སེམས་ཅན་ཐམས་ཅད་ལ༔
རྣལ་འབྱོར་དེ་ཡི་སྨོན་ལམ་གྱིས༔
སྡུག་བསྔལ་རིམ་བཞིན་གྲོལ་ནས་ཀྱང་༔
", + "མཐའ་རུ་སངས་རྒྱས་ཐོབ་པར་འགྱུར༔
" + ] + ], + "direction": "ltr" + } + ] + } +} diff --git a/src/pecha_uploader/jsondata/texts/baseText/anotation_styling_test.json b/src/pecha_uploader/jsondata/texts/baseText/anotation_styling_test.json new file mode 100644 index 0000000..68a9c77 --- /dev/null +++ b/src/pecha_uploader/jsondata/texts/baseText/anotation_styling_test.json @@ -0,0 +1,48 @@ +{ + "source": { + "categories": [ + { + "name": "anotation styling test", + "enDesc": "", + "enShortDesc": "" + } + ], + "books": [ + { + "title": "anotation styling test", + "language": "en", + "versionSource": " ", + "completestatus": "in_progress", + "content": [], + "direction": "ltr" + } + ] + }, + "target": { + "categories": [ + { + "name": "དཔེ་དེབ་འདིས་ཁྱེད་ལ་ཚོད་ལྟ་ཞིག་བྱེད་རྒྱུ་རེད།", + "heDesc": "", + "heShortDesc": "" + } + ], + "books": [ + { + "title": "དཔེ་དེབ་འདིས་ཁྱེད་ལ་ཚོད་ལྟ་ཞིག་བྱེད་རྒྱུ་རེད།", + "language": "bo", + "versionSource": " ", + "completestatus": "in_progress", + "content": [ + [ + "དང་པོ་{ཀུན་གྱི་གཞི་ནི་}སོགས་ཚིག་རྐང་བདུན་གྱིས་འཆད་དེ།* བདུན་གྱིས་འཆད་དེ The text inside the footnote", + "སྒྲ་ཐལ་འགྱུར་ཆེན་པོའི་རྒྱུད་ལས།
(འཁོར་བའི་ཐོག་མ་གནས་འདི་གང་།
སེམས་ཅན་འཁྲུལ་པ་ཅི་ལས་བྱུང་། །
རང་གི་ཡེ་ཤེས་གནས་ལུགས་གང། །)
ཞེས་གསུངས་པ་ལྟར་", + "འཁྲུལ་གྲོལ་{ཀུན༵་}{གྱི༵་}ཐོག་མའི་སྤྱི་གཞི། ཀུན་གཞི་མ་ཡི་ཀློང་ཆེན། ལྷུན་གྲུབ་མ་ཡི་སྟོང་ར། མིང་མ་ཐོག་པའི་སྤྱི་ས། འཁོར་འདས་གཉིས་ཀྱི་བར་མ་དོ་ཞེས་མིང་དུ་མས་བསྙད་པའི་{གཞི༵འི་}ངོ་བོའི་གནས་ཚུལ་ཉིད་{ནི༵}། ", + "མུ་ཏིག་ཕྲེང་བ་ལས།
(གནས་ལུགས་བསམ་གྱིས་མི་ཁྱབ་ཀྱང་། །
ཡེ་ཤེས་རྣམ་པ་གསུམ་ཡིན་ནོ། །
འཁྲུལ་གཞི་རྣམ་པ་མང་ལགས་ཀྱང་། །
ལྷུན་གྲུབ་དང་ནི་ཐུགས་རྗེའོ། །)
ཞེས་པ་ལྟར་གྱི་", + "སྤྱི་གཞི་དེའི་གནས་ཚུལ་གཏན་ལ་དབབ་པ་ལ། སྐྱོན་ཅན་གྱི་འདོད་པ་དྲུག་དང་། སྐྱོན་མེད་ཀྱི་འདོད་པ་གཅིག་སྟེ་གཉིས་སོ། །" + ] + ], + "direction": "ltr" + } + ] + } +} diff --git a/src/pecha_uploader/jsondata/texts/commentaryText/vajra_cutter_commentary.json b/src/pecha_uploader/jsondata/texts/commentaryText/vajra_cutter_commentary.json new file mode 100644 index 0000000..9df3b48 --- /dev/null +++ b/src/pecha_uploader/jsondata/texts/commentaryText/vajra_cutter_commentary.json @@ -0,0 +1,116 @@ +{ + "source": { + "categories": [ + { + "name": "The Buddha Teachings", + "enDesc": "", + "enShortDesc": "" + }, + { + "name": "Vajra Cutter", + "enDesc": "", + "enShortDesc": "" + }, + { + "name": "Commentaries", + "enDesc": "", + "enShortDesc": "" + }, + { + "name": "Vajra Cutter Commentary Book", + "enDesc": "", + "enShortDesc": "", + "base_text_titles": [ + "Vajra Cutter Book" + ], + "base_text_mapping": "many_to_one", + "link": "Commentary" + } + ], + "books": [ + { + "title": "Vajra Cutter Commentary Book", + "language": "en", + "versionSource": "https://library.bdrc.io/show/bdr:WA1KG12670?tabs=bdr:MW3JT13747,bdr:W3JT13747", + "direction": "ltr", + "completestatus": "done", + "content": { + "Vajra Cutter Commentary Book":{ + "data":[], + "Commentary on the Structure of the Sutra": { + "data": [], + "The Unbroken Lineage of Buddha's Teachings": { + "data": [] + } + }, + "Explanation of the Meaning of Words": { + "data": [], + "The Unbroken Lineage of Buddha's Teachings": { + "data": [] + } + }} + } + } + ] + }, + "target": { + "categories": [ + { + "name": "སངས་རྒྱས་ཀྱི་བཀའ་།", + "heDesc": "", + "heShortDesc": "" + }, + { + "name": "རྡོ་རྗེ་གཅོད་པ།", + "heDesc": "", + "heShortDesc": "" + }, + { + "name": "འགྲེལ་པ།", + "heDesc": "", + "heShortDesc": "" + }, + { + "name": "རྡོ་རྗེ་གཅོད་པ་འགྲེལ་པ་དེབ།", + "heDesc": "", + "heShortDesc": "", + "base_text_titles": [ + "Vajra Cutter Book" + ], + "base_text_mapping": "many_to_one", + "link": "Commentary" + } + ], + "books": [ + { + "title": "རྡོ་རྗེ་གཅོད་པ་འགྲེལ་པ་དེབ།", + "language": "bo", + "versionSource": "https://library.bdrc.io/show/bdr:WA1KG12670?tabs=bdr:MW3JT13747,bdr:W3JT13747", + "direction": "ltr", + "completestatus": "done", + "content": { + "རྡོ་རྗེ་གཅོད་པ་འགྲེལ་པ་དེབ།":{ + "data":[], + "མདོའི་ལུས་ཀྱི་འགྲེལ་པ།": { + "data": [], + "སངས་རྒྱས་ཀྱི་གདུང་རྒྱུན་མི་འཆད་པ་བསྟན་པ།": { + "data": [ + "<1><1>རྒྱ་གར་སྐད་དུ། །ཨཱརྱ་བྷ་ག་བ་ཏཱི་པྲཛྙཱ་པཱ་ར་མི་ཏཱ་བཛྲ་ཙྪེ་དི་ཀཱ་ཡཱཿསཔྟ་དཱརྠ་ཊཱི་ཀཱ།" + ] + } + }, + "ཚིག་གི་དོན་བཤད་པ།": { + "data": [], + "སངས་རྒྱས་ཀྱི་གདུང་རྒྱུན་མི་འཆད་པ་བསྟན་པ།": { + "data": [ + "ཚིག་གི་དོན་བཤད་པ།\nསངས་རྒྱས་ཀྱི་གདུང་རྒྱུན་མི་འཆད་པ་བསྟན་པ།", + "མཚུངས་མེད་སངས་རྒྱས་ཆོས་རྣམས་སྐྱེད་མཛད་ལ། །\nགང་ཞིག་ཆོས་དབྱིངས་གསོ་བའི་མ་མ་སྟེ། །\nདབྱེ་དཀའི་རྡོ་རྗེ་གཞན་དོན་གྲུབ་གང་ཡིན། །\nགང་ཞིག་བཟུང་བས་འཕགས་ཀུན་སྐྱེད་པའམ་ཡིན། །" + ] + } + } + } + } + } + ] + } +} diff --git "a/src/pecha_uploader/jsondata/texts/commentaryText/\340\275\200\340\275\264\340\275\223\340\274\213\340\275\226\340\275\237\340\275\204\340\274\213\340\275\246\340\276\250\340\275\274\340\275\223\340\274\213\340\275\243\340\275\230\340\274\213\340\275\202\340\276\261\340\275\262\340\274\213\340\275\240\340\275\221\340\276\262\340\275\272\340\275\223\340\274\213\340\275\226\340\276\261\340\275\272\340\275\221\340\274\213\340\275\212\340\276\260\340\275\262\340\274\213\340\275\200\340\275\240\340\275\262\340\274\213\340\275\220\340\275\264\340\275\242\340\274\213\340\275\230\340\275\246\340\274\213\340\275\226\340\275\246\340\275\243\340\274\213\340\275\226\340\274\215.json" "b/src/pecha_uploader/jsondata/texts/commentaryText/\340\275\200\340\275\264\340\275\223\340\274\213\340\275\226\340\275\237\340\275\204\340\274\213\340\275\246\340\276\250\340\275\274\340\275\223\340\274\213\340\275\243\340\275\230\340\274\213\340\275\202\340\276\261\340\275\262\340\274\213\340\275\240\340\275\221\340\276\262\340\275\272\340\275\223\340\274\213\340\275\226\340\276\261\340\275\272\340\275\221\340\274\213\340\275\212\340\276\260\340\275\262\340\274\213\340\275\200\340\275\240\340\275\262\340\274\213\340\275\220\340\275\264\340\275\242\340\274\213\340\275\230\340\275\246\340\274\213\340\275\226\340\275\246\340\275\243\340\274\213\340\275\226\340\274\215.json" new file mode 100644 index 0000000..6906e7d --- /dev/null +++ "b/src/pecha_uploader/jsondata/texts/commentaryText/\340\275\200\340\275\264\340\275\223\340\274\213\340\275\226\340\275\237\340\275\204\340\274\213\340\275\246\340\276\250\340\275\274\340\275\223\340\274\213\340\275\243\340\275\230\340\274\213\340\275\202\340\276\261\340\275\262\340\274\213\340\275\240\340\275\221\340\276\262\340\275\272\340\275\223\340\274\213\340\275\226\340\276\261\340\275\272\340\275\221\340\274\213\340\275\212\340\276\260\340\275\262\340\274\213\340\275\200\340\275\240\340\275\262\340\274\213\340\275\220\340\275\264\340\275\242\340\274\213\340\275\230\340\275\246\340\274\213\340\275\226\340\275\246\340\275\243\340\274\213\340\275\226\340\274\215.json" @@ -0,0 +1,504 @@ +{ + "source": { + "categories": [ + { + "name": "Recitations", + "enDesc": "", + "enShortDesc": "Prayers and Rituals" + }, + { + "name": "Aspiration Prayers", + "enDesc": "", + "enShortDesc": "" + }, + { + "name": "Works about The Prayer of Kuntuzangpo", + "enDesc": "", + "enShortDesc": "" + }, + { + "name": "Commentaries", + "enDesc": "", + "enShortDesc": "" + }, + { + "name": "The short path of Samantabhadra the lamp that illuminates with light", + "enDesc": "", + "enShortDesc": "", + "base_text_titles": [ + "Prayer of Kuntuzangpo" + ], + "base_text_mapping": "many_to_one", + "link": "Commentary" + } + ], + "books": [ + { + "title": "The short path of Samantabhadra the lamp that illuminates with light", + "language": "en", + "versionSource": "", + "completestatus": "in_progress", + "content": { + "The short path of Samantabhadra the lamp that illuminates with light": { + "data": [], + "A brief presentation of the ground path and result": { + "data": [] + }, + "The detailed explanation of the divisions of reality": { + "data": [], + "Basis": { + "data": [], + "The extensive explanation of the abiding nature of the ground": { + "data": [], + "Six flawed assertions": { + "data": [], + "The assertion that spontaneous presence is the basis": { + "data": [] + }, + "The indefinite is asserted as the basis": { + "data": [] + }, + "The assertion that the definitive is the basis of the meaning": { + "data": [] + }, + "The basis is asserted to be that which can be transformed into anything": { + "data": [] + }, + "The basis is asserted to be that which can be asserted as anything": { + "data": [] + }, + "The assertion that the diversity is the basis": { + "data": [] + } + }, + "One faultless assertion": { + "data": [] + } + }, + "The way of liberation of Samantabhadra through recognizing that and taking it as the path": { + "data": [], + "Actual mode of liberation": { + "data": [] + }, + "How after being liberated he benefited others": { + "data": [] + } + }, + "How sentient beings are deluded in cyclic existence due to not knowing the meaning of the ground": { + "data": [], + "The general presentation of the mode of delusion": { + "data": [] + }, + "The specific explanation of each of these": { + "data": [] + } + } + }, + "Path": { + "data": [], + "How Desire and Conceptual Thoughts Are Liberated into Timeless Awareness": { + "data": [] + }, + "How is hatred liberated as the wisdom of clarity or mirror like wisdom": { + "data": [] + }, + "How pride is liberated into the wisdom of equality": { + "data": [] + }, + "The teaching that jealousy and competitiveness are liberated as spontaneous wisdom": { + "data": [] + }, + "How is delusion freed as the nonconceptual wisdom of the dharmadhatu": { + "data": [] + } + }, + "fruit": { + "data": [] + } + }, + "The Benefits Of Reading And Hearing The Prayer Of Aspiration": { + "data": [], + "l actual benefits of listening to and reading the words of the Great Perfection as they are intended applied and recited by a yogin who has attained stability on the path of the Great Perfection": { + "data": [] + }, + "The Key Points of Time": { + "data": [] + } + } + } + } + } + ] + }, + "target": { + "categories": [ + { + "name": "ཆོ་ག", + "heDesc": "", + "heShortDesc": "ཆོ་ག་དང་འདོན་ཆ།" + }, + { + "name": "སྨོན་ལམ།", + "heDesc": "", + "heShortDesc": "" + }, + { + "name": "ཀུན་བཟང་སྨོན་ལམ་གྱི་སྐོར།", + "heDesc": "", + "heShortDesc": "" + }, + { + "name": "འགྲེལ་པ།", + "heDesc": "", + "heShortDesc": "" + }, + { + "name": "བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།", + "heDesc": "", + "heShortDesc": "ཊྰི་ཀའི་ཐུར་མས་བསལ་བ།", + "base_text_titles": [ + "Prayer of Kuntuzangpo" + ], + "base_text_mapping": "many_to_one", + "link": "Commentary" + } + ], + "books": [ + { + "title": "བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།", + "language": "bo", + "versionSource": "", + "completestatus": "in_progress", + "content": { + "བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།": { + "data": [ + "<1><1>དེ་ལ་འདིར་ཀུན་ཏུ་བཟང་པོའི་དེ་ཉིད་ལ་དབང་འབྱོར་མཐར་ཕྱིན་རྙེད་པའི་སངས་རྒྱས་རྣམས། སེམས་ཅན་གྱི་དྲི་མ་བྲལ་བའི་མཛད་པ་ལས་གཞན་མ་མཆིས་པས། དྲི་བྲལ་ལམ་གྱི་མཛད་ཕྲིན་ཐམས་ཅད་ཀྱི་སྐྱེལ་སོ། མཐར་ཐུག་ཀུན་ཏུ་བཟང་པོའི་སྨོན་ལམ་མམ་རྫོགས་ཆེན་མན་ངག་སྡེའི་གཞི་ལམ་འབྲས་བུའི་ལམ་མཆོག་ནས་དྲི་བྲལ་གདོད་མའི་དབྱིངས་སུ་བཙན་ཐབས་སུ་སྦྱོར་བའི་", + "(ཉེ་ལམ་འདི་ཉིད་ཅུང་ཟད་འཆད་པ་ལ་གསུམ་སྟེ། ཐོག་མར་གཞི་ལམ་འབྲས་བུའི་རྣམ་བཞག་མདོར་བསྡུས་ཏེ་བསྟན་པ་དང་། དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ་དང་། སྨོན་ལམ་ཀློག་པ་དང་ཐོས་པའི་ཕན་ཡོན་བསྟན་པ་དང་གསུམ་མོ། །)" + ], + "ཐོག་མར་གཞི་ལམ་འབྲས་བུའི་རྣམ་བཞག་མདོར་བསྡུས་ཏེ་བསྟན་པ།": { + "data": [ + "<1><2>(དང་པོ་ནི་){ཧོ་སྣང་སྲིད་}སོགས་ཚིག་རྐང་དྲུག་གིས་བསྟན། {ཧོ༵་}ཞེས་པ་འཁྲུལ་བས་དབང་མེད་དུ་བྱས་ཏེ་མི་འདོད་པའི་ཉེས་རྒུད་དྲག་པོས་རབ་ཏུ་གཟིར་བའི་འཁོར་བའི་སེམས་ཅན་རྣམས་ལ་དམིགས་མེད་བརྩེ་བའི་རྣམ་པར་ཤར་ཏེ་འཁྲུལ་སྣང་རང་སར་དག་པའི་ཉེ་ལམ་ཟབ་མོ་འདིར་བསྐུལ་བའི་ཚིག་ཏུ་བྱས་པ་སྟེ། ", + "<1><2>འདི་ལྟར་བློའི་ཡུལ་དུ་བྱ་རུང་བའི་ཆོས་རང་ངོས་ནས་བདེན་པར་མ་གྲུབ་པས་{སྣང༵་}བ་ཙམ་དུ་ཟད་ཅིང་། གང་སྣང་ཐ་སྙད་ཙམ་དུ་བསླུ་བ་མེད་པར་གནས་པས་སྣང་ཙམ་དུ་{སྲི༵ད་}ཅིང་ཡོད་པའི་མ་དག་ཀུན་ཉོན་འཁྲུལ་བའི་{འཁོ༵ར་}བའི་སྣོད་བཅུད་རྒྱུ་འབྲས་ཀྱི་སྒྱུ་འཕྲུལ་སྣ་ཚོགས་ཀྱི་བཀོད་པ་འདི་དང་། དག་པ་རྣམ་བྱང་མྱང་{འད༵ས་}ཀྱི་གྲོལ་བ་ཐར་པའི་ཡེ་ཤེས་ཡོན་ཏན་ཕྲིན་ལས་ཀྱི་རོལ་གར་བསམ་ལས་འདས་པའི་འཁྲུལ་གྲོལ་གྱི་ཆོས་འདི་{ཐམ༵ས་}{ཅ༵ད་}{ཀུན༵}། ", + "<1><2>འབྱུང་ཞིང་མཆེད་པའི་འབྱུང་གཞི། ཐིམ་ཞིང་སྡུད་པའི་སྡུད་གཞི། མཐར་ཐུག་ནི་སེམས་ཅན་རང་ཉིད་ཀྱི་སེམས་ཀྱི་གཤིས་ལུགས་ཕྲ་བ་གཉུག་མ་སེམས་ཀྱི་རྡོ་རྗེ་བྱང་ཆུབ་ཀྱི་སེམས་ངོ་བོའི་ཆ་ནས་སྟོང་ཞིང་ཀ་ནས་དག་པས། དངོས་པོ་རང་མཚན་གྱི་སྤྲོས་པའི་ཕྱོགས་ཀུན་དང་བྲལ་བ། རང་བཞིན་ཆ་ནས་གཏིང་གསལ་འགགས་པ་མེད་པའི་རང་བཞིན་ལྷུན་གྲུབ་ཀྱི་ཡོན་ཏན་འདུ་འབྲལ་སྤང་བས། ", + "<1><2>ཡེ་གདངས་སྣང་བའི་རང་ངོ་མ་དོར་བ། ཐུགས་རྗེའི་ཆ་ནས་དེ་གཉིས་ངོ་བོ་གཅིག་པས་སྣང་སྟོང་གཉིས་སུ་མེད་པའི་ཐུགས་རྗེའི་རིག་པ་ཡེ་ཤེས་ཀྱི་མཁྱེན་པ་ཕྱོགས་མེད་ཁྱབ་བརྡལ་དུ་རྒྱས་པའི་འཆར་གཞི་གོ་མ་འགགས་པ་ངོ་བོ་རང་བཞིན། ཐུགས་རྗེ་སྟེ་འོད་གསལ་གྱི་ཆོས་གསུམ་དང་འདུ་འབྲལ་མེད་པར་རོ་གཅིག་ཏུ་གྱུར་པ་ཉིད་ལས་གཞན་དུ་མ་མཆིས་པས་ཟླ་བྲལ་ཉག་{གཅི༵ག་}གོ །", + "<1><2>གཞི་ལས་རང་འབྲས་སུ་བགྲོད་ཅིང་གཤེགས་ཤུལ་གྱི་{ལམ༵་}ནི། མ་དག་སེམས་ཅན་གྱི་འཁོར་བའི་ཟག་བཅས་ཕུང་ཁམས་ཀྱི་ཉེས་པའི་རྒྱུ་རྩ་ཆེན་པོ་མ་རིག་ལས་ཉོན་འཁྲུལ་བའི་ལམ་དང་། འབྲས་བུ་དག་པ་ཐར་པ་གདོད་མའི་ནང་དབྱིངས་ཀྱི་ཡོན་ཏན་རྒྱ་མཚོ་ལ་དབང་སྒྱུར་བའི་ཐབས་ཆེན་དམ་པ་རང་བྱུང་རིག་པའི་ཡེ་ཤེས་ཟག་མེད་ལམ་གྱི་བདེན་པ་དང་{གཉིས༵་}སོ། །", + "<1><2>ལམ་དེ་གཉིས་ཀྱི་བྱེད་པ་ལས་ཐོབ་ཅིང་གྲུབ་པའི་{འབྲས༵་}{བུ༵་}མཐར་ཐུག་ལ། ཟག་བཅས་མ་དག་འཁྲུལ་སྣང་སྡུག་བདེན་འཁོར་བའི་ཆོས་དང་། ཟག་མེད་དག་པ་ཡེ་ཤེས་ཀྱི་རང་བཞིན་ཐར་པ་དྲི་མེད་ཀྱི་ཆོས་གཉིས་སོ། །", + "<1><3>དེ་ལྟ་བུའི་དག་མ་དག་གི་འཁོར་འདས་ཀྱི་ལམ་འབྲས་དེ་དག་ཉིད་ཀྱང་། ཐོག་མའི་གཞིའི་གནས་ལུགས་རང་ངོ་རང་གིས་ཤེས་ཤིང་{རི༵ག་}པར་དབང་ཐོབ་པ་{དང༵་}། རང་སྣང་གཞན་དུ་འཁྲུལ་ཏེ་རང་ངོ་{མ༵་}{རི༵ག་}པར་འཁྲུལ་བའི་ལུས་སྟོབས་རྒྱས་པའི་{ཆོ༵་}{འཕྲུལ༵་}ཙམ་{ཏེ༵}། དེ་ལས་གཞན་པའི་རྟག་བརྟན་ཐེར་ཟུག་གི་དངོས་མཚན་དུ་གྲུབ་པའི་ཆོས་དང་འགལ་བར་གྱུར་པ་ཁོ་ནའོ། །", + "<1><4>དེ་ལྟར་ན་གྲོལ་འཁྲུལ་གཞིའི་གནས་ལུགས་གཟིགས་པ་མཐར་ཕྱིན་འབྲས་བུའི་ཡོན་ཏན་ཟད་མི་ཤེས་པ་{ཀུན༵་}ཏུ་{ག༵ནས་}པའི་གཏེར་མཛོད་{བཟང༵་}{པོའི༵་}ཆོས་གྱི་གཏེར་རྟག་ཁྱབ་ལྷུན་གྲུབ་ཏུ་རྡོལ་བ་དྲི་མེད་ཡེ་ཤེས་ཀྱི་དགོངས་{སྨོན༵་}ཟབ་མོའི་{ལམ༵་}ནས་རང་ཉིད་གཤེགས་ཤིང་གཞན་དག་དེ་ནས་དྲངས་པར་མཛད་པའི་སངས་རྒྱས་ཉིད་{ཀྱིས༵་}ཐེག་དགུའི་རྩེ་རྒྱལ་ཡང་གསང་བླ་མེད་ཀྱི་གསང་ལམ་འདི་བསྟན་པས་ན།", + "<1><4>དེ་ལྟ་བུའི་ལམ་མཆོག་འདི་ནས་བསྟན་པའི་གཞི་དོན་མངོན་དུ་གྱུར་ཏེ་འཁྲུལ་བའི་གང་ཟག་གི་འཁྲུལ་བའི་དྲི་མའི་ཉེས་སྐྱོན་{ཐམ༵ས་}{ཅ༵ད་}གདོད་མའི་གྲོལ་ས་ཆེན་པོ་{ཆོས༵་}ཀྱི་{དབྱིང༵ས་}ཀྱི་{ཕོ༵་}{བྲང༵་}དེར་དེངས་ཏེ་དྲི་བྲལ་དོན་གྱི་འོག་མིན་དུ་། བྲལ་སྨིན་གྱི་ཡོན་ཏན་གྱི་ཆོས་{མངོ༵ན་}{པར༵་}{རྫོགས༵་}{ཏེ༵་}{སངས༵་}{རྒྱས༵་}ཀྱི་གོ་འཕང་མྱུར་དུ་ཐོབ་པར་{ཤོག༵་}ཅེས་པའོ། །" + ] + }, + "དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།": { + "data": [ + "(གཉིས་པ་ལ་གཞི་ལམ་འབྲས་གསུམ་ལས།)" + ], + "གཞི།": { + "data": [ + "(དང་པོ་ལ་གསུམ་སྟེ། གཞིའི་གནས་ལུགས་ཉིད་རྒྱས་པར་འཆད་པ། དེ་ངོ་ཤེས་ལམ་དུ་བྱས་པས་ཀུན་ཏུ་བཟང་པོའི་གྲོལ་ཚུལ་བསྟན་པ། གཞི་དོན་མ་ཤེས་པ་ལས་སེམས་ཅན་འཁོར་བར་འཁྲུལ་ཚུལ་དང་གསུམ་ལས།)" + ], + "གཞིའི་གནས་ལུགས་ཉིད་རྒྱས་པར་འཆད་པ།": { + "data": [ + "<1><5>(དང་པོ་){ཀུན་གྱི་གཞི་ནི་}སོགས་ཚིག་རྐང་བདུན་གྱིས་འཆད་དེ། ", + "<1><5>སྒྲ་ཐལ་འགྱུར་ཆེན་པོའི་རྒྱུད་ལས།
[འཁོར་བའི་ཐོག་མ་གནས་འདི་གང་།
སེམས་ཅན་འཁྲུལ་པ་ཅི་ལས་བྱུང་། །
རང་གི་ཡེ་ཤེས་གནས་ལུགས་གང། །]
ཞེས་གསུངས་པ་ལྟར་", + "<1><5>འཁྲུལ་གྲོལ་{ཀུན༵་}{གྱི༵་}ཐོག་མའི་སྤྱི་གཞི། ཀུན་གཞི་མ་ཡི་ཀློང་ཆེན། ལྷུན་གྲུབ་མ་ཡི་སྟོང་ར། མིང་མ་ཐོག་པའི་སྤྱི་ས། འཁོར་འདས་གཉིས་ཀྱི་བར་མ་དོ་ཞེས་མིང་དུ་མས་བསྙད་པའི་{གཞི༵འི་}ངོ་བོའི་གནས་ཚུལ་ཉིད་{ནི༵}། ", + "<1><5>མུ་ཏིག་ཕྲེང་བ་ལས།
[གནས་ལུགས་བསམ་གྱིས་མི་ཁྱབ་ཀྱང་། །
ཡེ་ཤེས་རྣམ་པ་གསུམ་ཡིན་ནོ། །
འཁྲུལ་གཞི་རྣམ་པ་མང་ལགས་ཀྱང་། །
ལྷུན་གྲུབ་དང་ནི་ཐུགས་རྗེའོ། །]
ཞེས་པ་ལྟར་གྱི་", + "<1><5>(སྤྱི་གཞི་དེའི་གནས་ཚུལ་གཏན་ལ་དབབ་པ་ལ། སྐྱོན་ཅན་གྱི་འདོད་པ་དྲུག་དང་། སྐྱོན་མེད་ཀྱི་འདོད་པ་གཅིག་སྟེ་གཉིས་སོ། །)" + ], + "སྐྱོན་ཅན་གྱི་འདོད་པ་དྲུག": { + "data": [ + "(དང་པོ་གཞིའི་གནས་ཚུལ་གྱི་གྲུབ་མཐའ་སྐྱོན་ཅན་དྲུག་ལས།)" + ], + "ལྷུན་གྲུབ་གཞི་རུ་འདོད་པ།": { + "data": [ + "<1><5>(དང་པོ་ལྷུན་གྲུབ་གཞི་རུ་འདོད་པ་འཁྲུལ་སྟེ།) གཞི་ནི་འཁོར་འདས་ཀྱི་རྒྱུ་འབྲས་གཉིས་ཆའི་གཞི་ཡིན་པས། གཞི་ལ་རྒྱུ་ལྷུན་གྱིས་གྲུབ་ན། འབྲས་བུ་ཡང་དེ་ལྟར་གྲུབ་དགོས་པས་དེ་ལྟར་ན་རྒྱུ་འབྲས་གཉིས་གཅིག་ཏུ་ཐལ་བ་དང་། འབྲས་བུ་བསྐྱེད་པ་དགོས་མེད་དང་ཐུག་མེད་དུ་ཐལ་བས་གནོད་དེ། ", + "<1><5>ཀློང་དྲུག་ལས།
[རྒྱུ་དང་འབྲས་བུ་ཐ་དད་ལས། །
ཡང་ན་ལྷུན་གྲུབ་མ་ལགས་སོ། །
དེ་བཞིན་རྒྱུ་དང་འབྲས་གཅིག་ན། །
འབད་པ་རྣམས་ལ་དགོས་མེད་འགྱུར། །]
ཞེས་སོ། །", + "<1><5>རང་ལུགས་ནི་གཞི་ཀ་དག་ཏུ་འདོད་པས་འཁོར་བར་མ་གྲུབ། རང་བཞིན་སྣ་ཚོགས་སུ་འདོད་པས་མྱང་འདས་མ་གྲུབ་པའོ། །" + ] + }, + "མ་ངེས་པ་གཞི་རུ་འདོད་པ།": { + "data": [ + "<1><5>(གཉིས་པ་མ་ངེས་པ་གཞི་རུ་འདོད་པ་ཡང་འཁྲུལ་ཏེ།) གཞི་མ་ངེས་པ་བཞིན་དེ་ལས་བྱུང་བའི་བརྗོད་བྱ་དོན་དང་རྗོད་བྱེད་ཚིག་ཀྱང་མ་ངེས་པས་རྗོད་བྱེད་ཀྱིས་བརྗོད་བྱ་མི་སྟོན་པ་དང་། དེ་གཉིས་འབྲེལ་མེད་དུ་ཐལ་བ། གཞན་ཡང་ལས་བཟང་ངན་རྒྱུ་འབྲས་ཐ་དད་ཀྱི་རྣམ་བཞག་ཀྱང་འཇོག་པ་མེད་པ་དང་། ཡང་ན་འབྲས་བུ་བཞིན་གཞི་རེ་འགའ་བ་དང་། གཞི་བཞིན་བེམ་ཆོས་རྣམས་ཀྱང་ཤེས་པར་ཐལ་བ་དང་། འཁོར་འདས་ཀྱི་རྣམ་བཞག་ངེས་པ་ལྟར་གཞི་ཡང་ངེས་པ་དང་། གཞི་མ་ངེས་པ་ལྟར་འཁོར་འདས་ཀྱི་ཆོས་ཀྱང་འཆོལ་བར་འགྱུར་ཏེ། ", + "<1><5>རྒྱུད་ལས།
[འབྲས་བུ་རེས་འཇོག་ཅན་ཉིད་དམ། །
ཡང་ན་རྟོག་བཅས་ཉིད་དུ་འགྱུར། །
མ་ངེས་ངེས་པ་ཅན་འགྱུར་ཞིང་། །
ངེས་པ་མ་ངེས་ཅན་དུ་འགྱུར་། །]
ཞེས་སོ། །" + ] + }, + "ངེས་པ་དོན་གྱི་གཞི་རུ་འདོད་པ།": { + "data": [ + "<1><5>(གསུམ་པ་ངེས་པ་དོན་གྱི་གཞི་རུ་འདོད་པ་ཡང་འཁྲུལ་སྟེ།) གཞིའི་དོན་རྟོགས་ནས་ངེས་སམ། མ་རྟོགས་པར་ངེས། དང་པོ་ལྟར་ན། གཞིའི་གནས་ལུགས་རྟོགས་ན་དྲི་བྲལ་གྱི་ལམ་གྱི་མཐུས་འབྲས་བུ་ཉིད་དུ་འགྱུར་བ་ལ། གཞི་རུ་འདོད་པ་འགལ། གཉིས་པ་ལྟར་ན། གཞི་འཁོར་བར་ངེས་པ་དེ་ལྡོག་བྱེད་ལམ་དང་། དེའི་འབྲས་བུའི་རྣམ་བཞག་ཀྱང་འགལ་ལ། རྟོགས་མ་རྟོགས་ཀྱི་ཁྱད་པར་ལ་མ་ལྟོས་པར་གཞི་འདི་འཁོར་འདས་གཉིས་སུ་ངེས་ན། འཁོར་བའི་དུས་ཀྱང་མྱང་འདས་རྟག་པར་ཡོད་པས། མུ་སྟེགས་རྟག་སྨྲ་དང་ཁྱད་འབྱེད་མི་ནུས་པར་ཐལ་ཏེ།", + "<1><5>རྒྱུད་ལས།
[དེའི་ཕྱིར་དེ་ཡང་ཡང་དག་མིན། །
ཡང་ན་རྒྱུ་ངེས་འབྲས་ངེས་པས། །
བདག་རྟག་པ་དང་ཁྱད་མེད་འགྱུར། །]
ཞེས་སོ། " + ] + }, + "ཅིར་ཡང་བསྒྱུར་བཏུབ་པ་གཞིར་འདོད་པ།": { + "data": [ + "<1><5>(བཞི་པ་ཅིར་ཡང་བསྒྱུར་བཏུབ་པ་གཞིར་འདོད་པའང་འཁྲུལ་སྟེ།) སྣང་ཚུལ་ཅིར་ཡང་བསྒྱུར་བཏུབ་ན། གཞི་རྟག་པའི་སྣང་ཚུལ་བསྒྱུར་རམ། མི་རྟག་པའི་སྣང་ཚུལ་བསྒྱུར། དང་པོ་ལྟར་ན་རྟག་པ་ལ་རྐྱེན་གྱིས་བྱར་མེད་པས་བསྒྱུར་བ་འགལ་ལ། གཉིས་པ་ལྟར་ན། གཞི་མི་རྟག་པ་དེ་ཡོད་པ་ཞིག་གམ་མེད་པ་ཞིག་སྟེ་གང་། ཡོད་ན་སྐྱེས་ནས་ཡོད་དམ་མ་སྐྱེས་པར་ཡོད། སྐྱེས་ནས་ཡོད་ན། རང་ལས་སྐྱེས་སམ། གཞན་ལས་སྐྱེས།", + "<1><5>རང་ལས་སྐྱེས་ན་སྐྱེ་བ་དོན་མེད་དང་། ཐུག་མེད་དུ་ཐལ། གཞན་ལས་སྐྱེས་ན་རྒྱུ་འབྲས་གཅིག་གམ་ཐ་དད། གཅིག་ན་གཞན་ལས་སྐྱེས་པའི་དམ་བཅའ་ཉམས། ཐ་དད་ན་འབྲེལ་མེད་པས། ཆུ་ལས་མེ་སྐྱེས་པར་ཐལ་ལོ། །ཕྱི་མ་ལྟར་མ་སྐྱེས་པར་ཡོད་ན། མ་སྐྱེས་པ་ལ་བསྒྱུར་དུ་བཏུབ་པའི་དམ་བཅའ་འགལ་ཏེ། ནམ་མཁར་ཁ་དོག་གིས་བསྒྱུར་མེད་ཡིན་པ་བཞིན་ནོ། རྟག་མི་རྟག་གཉིས་ལས། །གཞན་པའི་ཆོས་ནི་ཤེས་བྱ་ལ་མི་སྲིད་པ་ཁོ་ན་སྟེ།", + "<1><5>རྒྱུད་ལས་།
[རང་གི་གནས་ལུགས་བསྒྱུར་བཏུབ་ན། །
འདི་ལ་ངེས་པ་མེད་པར་མཚུངས། །
འབྲས་བུ་ཉིད་ནི་རྒྱུ་ལྡོག་ཕྱིར། །
འབད་པ་རྣམས་ལ་དགོས་མེད་དོ། །
ཡང་དང་ཡང་དུ་བཟློགས་པས་ན། །
བེམ་པོ་རྣམས་ནི་རིག་བཅས་སུ། །
གྲོལ་བར་བཏུབ་པ་མ་ཡིན་བཞིན། །]
ཞེས་སོ། " + ] + }, + "ཅིར་ཡང་ཁས་བླང་དུ་བཏུབ་པ་གཞིར་འདོད་པ།": { + "data": [ + "<1><5>(ལྔ་པ། ཅིར་ཡང་ཁས་བླང་དུ་བཏུབ་པ་གཞིར་འདོད་པའང་འཁྲུལ་སྟེ།) གཞི་ཡོད་ནས་ཁས་ལེན་ནམ། མེད་ནས་ཁས་ལེན། ཡོད་ན་རྟག་གམ་མི་རྟག རྟག་ན་ཅིར་ཡང་ཁས་ལེན་རུང་འགལ་ལ། མི་རྟག་ན། མི་རྟག་པའི་གཞི་དེ་སྐྱེས་སམ་མ་སྐྱེས། སྐྱེས་ན་རང་གཞན་གང་ལས་སྐྱེས། མ་སྐྱེས་ན་མི་རྟག་པ་ཡིན་པ་འགལ། མེད་ཅིང་ཁས་ལེན་རུང་ན། མོ་གཤམ་བུ་ལའང་སྐྱེས་པ་སོགས་ཁས་ལེན་པའང་། ཅི་གནོད་དེ་མི་གནོད་པར་ཐལ། ཡོད་མེད་གཉིས་ཀ་མ་ཡིན་པའི་ཤེས་བྱར་ཁས་ལེན་ན་ནི་ཆེས་འགལ་བ་ཁོ་ན་སྟེ།", + "<1><5>རྒྱུད་ལས།
[ཐམས་ཅད་ངོ་བོར་གྲུབ་པའི་ཕྱིར། །
ཐུག་པ་མེད་པའི་སྐྱོན་དུ་འགྱུར། །]
ཞེས་", + "<1><5>གཞི་བདེན་གྲུབ་སྒྲུབ་བྱེད་ཐུག་མེད་དུ་ཐལ་བའི་གནོད་པའང་བསྟན་པའོ། །" + ] + }, + "སྣ་ཚོགས་གཞི་རུ་འདོད་པ།": { + "data": [ + "<1><5>(དྲུག་པ་སྣ་ཚོགས་གཞི་རུ་འདོད་པའང་ཆེས་འཁྲུལ་ཏེ།) སྣང་ཆ་སྣ་ཚོགས་པས་གཞི་སྣ་ཚོགས་སུ་འདོད་དམ། ཤེས་པ་སྣ་ཚོགས་པས་གཞི་སྣ་ཚོགས་སུ་འདོད། དང་པོ་ལྟར་ན། སྣང་བ་ཙམ་ལ་ཐ་དད་པར་སྣང་ཡང་། དེས་གཞི་ངོ་བོ་སྣ་ཚོགས་པར་གྲུབ་ན། མུ་སྟེགས་རིག་པ་ཅན་གྱིས་ལས་ཀྱི་བྱེ་བྲག་གིས་བདག་གི་བྱེ་བྲག་ཐ་དད་པར་སྨྲ་བ་དང་འདྲ་བར་ཐལ་ལོ།", + "<1><5>གཉིས་པ་ལྟར་ན། ཤེས་པའི་གྲངས་བཞིན་གཞི་སྣ་ཚོགས་སུ་འདོད་ན། གང་ཟག་གཅིག་ལའང་སྐད་ཅིག་རེ་རེར་ཤེས་པ་དུ་མ་ཅིག་འཆར་བ་ལྟར་གཞི་ཡང་གང་ཟག་དེའི་རྒྱུད་ལ་ངོ་བོ་ཐ་དད་དུ་མ་ཡོད་པས་ཤེས་རྒྱུད་ཐ་དད་དུ་འགྱུར་ལ། དེ་ལྟར་ན་ལམ་ལ་འབད་པ་དོན་མེད་པའམ། འབད་མེད་དུ་གྲོལ་བར་ཐལ་བའི་སྐྱོན་ཡང་ཡོད་དེ།", + "<1><5>རྒྱུད་ལས།
[རྒྱུ་དང་འབྲས་བུ་ཐ་དད་པས། །
གང་གི་ངོ་བོས་དེ་སྣང་བ། །
འབྲས་བུ་ཐ་དད་དོན་དེ་མཚུངས། །]
ཞེས་སོ། །", + "<1><5>དེ་ལྟ་བུའི་གཞི་དྲུག་གི་མཚན་ཉིད་དེའང་། གཞིའི་མཚན་ཉིད་རྫོགས་པར་མ་ངེས་ཏེ། གཞི་སྤྲོས་བྲལ་གྱི་གནད་མ་ཟིན་པར་ཡོན་ཏན་ལྷུན་གྲུབ་ཀྱི་ཆོས་ཀྱི་ཕྱོགས་ཀྱི་མཚན་ཉིད་དེ་གཞིའི་མཚན་ཉིད་དུ་བྱས་ཏེ། ཆ་ཤས་ཆ་ཅན་དུ་རྟོག་པས་ནོངས་ཏེ། དཔེར་ཁོང་ལོང་བདུན་གྱིས་གླང་བོའི་ལུས་ཀྱི་ཆ་ཤས་ཡན་ལག་གི་ཕྱོགས་རེ་ལ་ཆ་ཅན་ལུས་སུ་འཁྲུལ་བ་དང་། མི་གཅིག་དང་ཐོ་ཡོར་གཅིག་པུ་ལ་མཐོང་མཁན་ཐ་དད་པའི་འཁྲུལ་སྐྱོན་གྱིས་ཐ་དད་དུ་སྣང་བ་བཞིན་ནོ། །" + ] + } + }, + "སྐྱོན་མེད་ཀྱི་འདོད་པ་གཅིག": { + "data": [ + "(གཉིས་པ་སྐྱོན་མེད་ཀྱི་འདོད་པ་གཅིག་ནི།)", + "<1><5>སྒྲ་ཐལ་འགྱུར་གྱི་རྒྱུད་ལས།
[ཐོག་མ་ངོ་བོ་རང་བཞིན་དང་།
ཐུགས་རྗེ་རྣམ་པ་གསུམ་དུ་གནས། །]
ཞེས་དང་།", + "<1><5>རང་ཤར་ལས།
[ཀ་དག་ཆེན་པོའི་གཞི་ལ་ཡང་། །
ངོ་བོ་རང་བཞིན་ཐུགས་རྗེ་ལྡན། །]
ཞེས་གསུངས་པ་ལྟར།", + "<1><5>རང་བཞིན་ལྷུན་གྲུབ་ཀྱི་དཀྱིལ་འཁོར། གདོད་མའི་སངས་རྒྱས་ནང་གསལ། ཕྱི་རྒྱ་མ་རལ་བའི་གཞོན་ནུ་བུམ་སྐུ་རིག་པ་རང་བྱུང་གི་ཡེ་ཤེས་། ངོ་བོ་ཀ་ནས་དག་པ། ལས་རླུང་གཟུང་འཛིན་གྱི་སྤྲོས་མཚན་དང་། དངོས་པོ་རང་བཞིན་གྱིས་གྲུབ་པས་སྟོང་ཞིང་བདག་མེད་པའི་སྤྲོས་བྲལ་{འདུས༵་}{མ༵་}{བྱས༵་}ཀྱི་ཡེ་ཤེས་ཆོས་སྐུ་ཆེན་པོ་སྟེ།", + "<1><5>ཐལ་འགྱུར་ལས།
[ངོ་བོ་ཀ་དག་ཡེ་ཤེས་ལ། །
མ་རིག་པ་ཞེས་མི་སྲིད་ཅིང། །
གང་དུའང་མ་ཕྱེ་ཆོས་ཉིད་ལ། །
ཡེ་ཤེས་ཙམ་དུ་གྲུབ་པ་མེད། །]
ཞེས་གསུངས་པ་ལྟར་དང་།", + "<1><6>རང་བཞིན་ལྷུན་གྱིས་གྲུབ་པ་སྐུ་དང་ཞིང་ཁམས་ཡེ་ཤེས་ཡོན་ཏན་ཏེ་གསང་གསུམ་ཡོན་ཏན་རྒྱ་མཚོ་ཆོས་ཀྱི་དབྱིངས་དང་མཉམ་པར་བརྡལ་བའི་ནང་གསལ་ཐིམ་ལ་མ་རྨུགས་པའི་སྟོང་པ་ནམ་མཁའི་གཟུགས་ཅན། ཉི་མ་དང་ཟེར་ལྟར་བསལ་བཞག་མེད་པར་{རང༵་}{བྱུང༵་}དུ་ཡེ་ནས་གསལ་བ་སྟེ།", + "<1><6>ཐལ་འགྱུར་ལས།
[རང་བཞིན་ལྷུན་གྲུབ་ཡེ་ཤེས་ནི། །
རྩལ་དང་ཡོན་ཏན་དཔག་མེད་པ། །
རོལ་བ་ཙམ་དུ་སྣང་བ་ལ། །
སྣ་ཚོགས་རྫོགས་པའི་གཞི་མའོ། །]
ཞེས་སོ། །", + "<1><6>ཐུགས་རྗེའི་རིག་པ་ཡེ་ཤེས་སུ་རྒྱས་པས་རྒྱ་ཆད་ཕྱོགས་ལྷུང་དང་བྲལ་བར་སྲིད་ཞི་ཀུན་གྱི་ཆོས་ཉིད་དུ་བཞུགས་པས་{ཀློང༵་}{ཡང༵ས་}པ་སྟེ།", + "<1><6>སྔ་མ་ལས།
[ཐུགས་རྗེ་ཀུན་ཁྱབ་ཡེ་ཤེས་ལས། །
མི་བཟད་སྣ་ཚོགས་འཆར་བའི་སྒོ། །
མཛད་པ་ལྟར་སྣང་ངོ་བོར་རྫོགས། །
ཆོས་སྐུ་སྟོང་པའི་རང་བཞིན་ལ། །
ཡེ་ཤེས་མཁྱེན་པ་རྫོགས་པའི་ཆ། །
ཤུགས་ཀྱིས་སེམས་ཅན་རྣམས་ལ་འཆར། །
འདི་མེད་འཁོར་འདས་ལྟེ་ཆད་པས། །
མཁྱེན་པས་རིག་ཅིང་གསལ་བའོ། །]
ཞེས་གསུངས་སོ། །", + "<1><6>དེ་ལྟ་བུའི་གཞི་གནས་ཀྱི་ཡེ་ཤེས་ངོ་བོ་སྤྲོས་མཚན་ལས་འདས་པས་རྟག་པའི་ཕྱོགས་མཐར་མ་ལྟུང་། རང་བཞིན་གསལ་བར་ལྷུན་གྱིས་གྲུབ་པས་ཆད་པའི་ཕྱོགས་མཐར་མ་ལྟུང་། ཐུགས་རྗེ་གསལ་སྟོང་གི་རིག་པ་ཀུན་ལ་ཁྱབ་པས་རྟག་ཆད་གཉིས་ཡིན་དང་། གཉིས་མིན་གྱི་ཕྱོག་མཐར་མ་ལྟུང་པས། མཐར་འཛིན་གྱི་ཕྱོགས་གང་ལས་གྲོལ་བའི་མཐའ་བྲལ་དབུ་མའི་ཡེ་ཤེས་ཏེ། མཐར་འཛིན་གྱི་ཕྱོགས་ཀྱིས་བརྗོད་འཛིན་དང་བྲལ་བས་{བརྗོད༵་}དུ་{མེ༵ད་}པ་སྟེ།", + "<1><6>རིག་པ་རང་གྲོལ་གྱི་རྒྱུད་ལས།
[མཐའ་བཞིའི་དྲི་མ་རང་སངས་ཉིད། །]
ཅེས་གསུངས་པ་ལྟར་རོ། །", + "<1><6>དེ་ལྟར་ན་ངོ་བོ་ཀ་དག་གི་ཡེ་ཤེས། སྟོང་གསལ་དབྱེར་མེད་ནམ་མཁའ་རྣམ་པར་དག་པ་ལྟ་བུ་དང་། རང་བཞིན་ལྷུན་གྲུབ་ཀྱི་ཡེ་ཤེས་རང་བཞིན་འོད་གསལ་དབྱེར་མེད་རྒྱ་མཚོ་རྙོགས་བྲལ་ལྟ་བུ་དང་། ཐུགས་རྗེ་ཀུན་ཁྱབ་ཀྱི་ཡེ་ཤེས་རིག་སྟོང་དབྱེར་མེད་ནོར་བུ་དྲི་མ་དང་བྲལ་པ་ལྟ་བུ་སྟེ། ཡེ་ཤེས་གསུམ་གྱི་རང་བཞིན་ལས་མ་འདས་པ་དེ་གཞིའི་ཆོས་ཉིད་ཅེས་བྱ་སྟེ།", + "<1><6>མུ་ཏིག་ཕྲེང་རྒྱུད་ལས།
[གནས་ལུགས་བསམ་གྱིས་མི་ཁྱབ་ཀྱང་། །
ཡེ་ཤེས་རྣམ་པ་གསུམ་ཡིན་ནོ། །]
ཞེས་དང་།", + "<1><6>ཀློང་དྲུག་ལས།
[ཡེ་ཤེས་ཉིད་ནི་རྣམ་གསུམ་གྱི། །
གཞི་ཡི་ཁྱད་པར་གསུམ་དུ་བསྟན། །]
ཞེས་གསུངས་སོ། །", + "<1><6>ཡེ་ཤེས་གསུམ་ལྡན་གྱི་གཞིའི་ཆོས་ཉིད་དེ་ཡང་མ་རྟོགས་འཁོར་བའི་གཞི་རུ་གནས་ཀྱང་། རང་ངོ་འཁོར་བའི་ཕྱོགས་སུ་མ་ལྟུང་པས་འདས་པའི་གཞི་རུ་རུང་བ་དང་། རྟོགས་པ་འདས་པའི་གཞི་རུ་གནས་ཀྱང་། རང་ངོ་འདས་པའི་ཕྱོགས་སུ་མ་ལྟུང་པས་འཁོར་བའི་གཞི་རུ་གྱུར་པས།", + "<1><7>འཁོར་འདས་ཀྱི་ཆོས་ཀུན་གྱི་སྤྱི་གཞི་གདོད་མའི་སངས་རྒྱས་ཉིད་བྱེ་བྲག་འཁོར་འདས་ཀྱི་ཆོས་ཐམས་ཅད་ཀྱི་གནས་ལུགས་སུ་བསལ་བཞག་དང་བྲལ་བར་བཞུགས་པས་འཁྲུལ་བ་{འཁོར༵་}ཆོས་ཀྱི་དྲི་མ་དང་། གཉེན་པོ་{འདས༵་}ལམ་གྱི་རྟོགས་པ་སྟེ་བྱེ་བྲག་སྤང་གཉེན་རྩོལ་བྱུང་གི་ལམ་{གཉིས༵་}{ཀྱི༵་}ཕྱོགས་དང་མཐུན་པར་བརྗོད་དུ་མེད་པས་{མི༵ང་}{མེ༵ད་}པ་སྟེ་འཁོར་འདས་གཉིས་ཀྱི་ཕྱོགས་དང་བྲལ་བར་གནས་{སོ༵}། །", + "<1><8>འོན་ཀྱང་འཁྲུལ་གྲོལ་འཁོར་འདས་ཀྱི་སྐྱོན་ཡོན་ཡང་། གཞིའི་གནས་ལུགས་མངོན་དུ་གྱུར་པ་དང་། མ་གྱུར་པ་ཙམ་ལས་བྱུང་བས་ལག་པའི་ལྟོ་རྒྱབ་ཙམ་དུ་གནས་ཏེ་གཞི་དོན་{དེ༵་}{ཉིད༵་}འཁྲུལ་མེད་དུ་ངོ་རང་ཐོག་ཏུ་ཤེས་ཤིང་{རི༵ག་}ནས་ཐག་གཅིག་ཐོག་ཏུ་ཆོད། གདེང་གྲོལ་ཐོག་ཏུ་བཅའ་ནུས་{ན༵་}ནམ་ཞིག་གཞི་དྲི་བྲལ་དུ་བྱས་པའི་{སངས༵་}{རྒྱས༵་}རང་ཆས་སུ་གནས་པ་ཡིན་{ཏེ༵}། མཐར་ཕྱིན་ལྷུན་གྲུབ་ཀྱི་ཡོན་ཏན་ཀུན་རང་སར་རྫོགས་པ་ཡིན་པས་སོ། །", + "<1><9>དེ་ལྟར་གཞིའི་བཞུགས་ཚུལ་ཇི་བཞིན་{མ༵་}{རི༵ག་}ཅིང་མངོན་དུ་མ་གྱུར་པ་ལས་གཟུང་འཛིན་ཀུན་ལྷན་གྱིས་འཁྲུལ་བའི་སྟོབས་རྙེད་ནས་{སེམ༵ས་}{ཅན༵་}རྣམས་རང་བྱས་ཀྱི་ལས་འབྲས་ཀྱིས་རང་ཉིད་མནར་ཏེ་{འཁོ༵ར་}{བར༵་}མཐའ་གཏུགས་མེད་དུ་སྔ་ཕྱི་མེད་པར་{འཁྱ༵མས་}པར་འགྱུར་ཏེ།", + "<1><9>རྣམ་འགྲེལ་ལས།
[མ་ཚང་མེད་རྒྱུ་དེ་ལ་ནི། །
འབྲས་བུ་གང་གིས་ཟློག་པར་འགྱུར། །]
ཞེས་གསུངས་པ་ལྟར་རོ། །", + "<1><10>དེས་ན་ཀུན་ཏུ་བཟང་པོའི་གསང་བའི་ལམ་མཆོག་གི་བྱེད་པ་འདི་ལ་བརྟེན་ནས་མ་རིག་ལས་ཉོན་གྱི་གཞན་དབང་དུ་གྱུར་བའི་{ཁམ༵ས་}{གསུམ༵་}རིགས་དྲུག་གིས་བསྡུས་པའི་{སེམ༵ས་}{ཅ༵ན་}མཐའ་ཡས་པ་{ཐམ༵ས་}{ཅ༵ད་}{ཀྱིས༵}། ཀ་དག་{བརྗོ༵ད་}{མེ༵ད་}ཀྱི་ཡེ་{གཞིའི༵་}བཞུགས་ཚུལ་གྱི་{དོན༵་}ནམ་གནས་ལུགས་རྗེན་པར་{རི༵ག་}ཅིང་མངོན་དུ་འགྱུར་{བར༵་}{ཤོག༵་}ཅིག་ཅེས་པའོ། །" + ] + } + }, + "དེ་ངོ་ཤེས་ལམ་དུ་བྱས་པས་ཀུན་ཏུ་བཟང་པོའི་གྲོལ་ཚུལ་བསྟན་པ།": { + "data": [ + "(གཉིས་པ་ལ། གྲོལ་ཚུལ་དངོས་དང་། གྲོལ་ནས་གཞན་དོན་མཛད་ཚུལ་གཉིས་ལས།)" + ], + "གྲོལ་ཚུལ་དངོས།": { + "data": [ + "<1><11>(དང་པོ་ནི།) {ཀུན་ཏུ་བཟང་པོ་ང་ཡིས་ཀྱང་།} །སོགས་ཤོ་ལོ་ཀ་དྲུག་དང་ཚིག་རྐང་གཅིག་གིས་བསྟན་ཏེ། ཆོས་དབྱིངས་དྲི་བྲལ་གཉིས་ལྡན་གྱི་ཀློང་ལས་དུས་ཀུན་ཏུ་ལྡང་བ་མི་མངའ་བཞིན། རང་སྣང་ཡེ་ཤེས་ཀྱི་སྒྱུ་འཕྲུལ་{བཟ༵ང་}{པོའི༵་}བཀོད་པ་རིས་མེད་ལ་དབང་འབྱོར་བའི་འབྲས་ཆོས་འདི་དག་ཐོག་མའི་སངས་རྒྱས་{ང༵་}{ཡི༵འམ་}རང་ཉིད་{ཀྱིས༵་}{ཀྱང༵་}། རྩོལ་བཅས་སེམས་རྟོག་གི་ལམ་གྱིས་བླང་དོར་དགག་སྒྲུབ་{ཀྱི༵་}རྒྱུ་{རྐྱེན༵་}ལ་ལྟོས་འཆས་ནས་བྱུང་བའང་མིན།", + "<1><11>རྒྱུ་ལ་ལྟོས་པ་{མེ༵ད་}{པར༵}། རྒྱུ་མེད་རང་བྱུང་གི་རྟག་བདེན་དུ་གྲུབ་པའང་མ་ཡིན་མོད། འོན་ཀྱང་ཐོག་མའི་ཡེ་{གཞི༵་}ཀ་དག་གི་དབྱིངས་རུམ་དུ་ལྷུན་གྲུབ་གསལ་བའི་ཤེས་སྣང་གི་རང་གདངས་ཀྱི་ཡོན་ཏན་རབ་འབྱམས་ཀུན། གཞི་ལམ་གང་རུང་གི་དུས་སུ་མ་དག་རླུང་སེམས་གྱི་འཁྲུལ་ཆ་དང་བཅས་པ་དབྱིངས་སུ་སྡུད་ཅིང་ཤེས་རབ་རིག་པའི་ཡེ་ཤེས་གཉུག་མའི་ཡེ་རླུང་གི་ནུས་པ་སྟོབས་སུ་སྨིན་པ་ལས།", + "<1><11>ལྷུན་གྲུབ་གཞོན་ནུའི་བུམ་རྒྱ་རལ་ཏེ་ཕྱི་གསལ་དུ་ཤར་བའི་དབྱིངས་སྣང་དེ་{ཡི༵་}{དོན༵་}གྱི་གནས་ཚུལ་སྟོང་སྣང་ནམ་མཁའི་གཟུགས་ཅན་། {དེ༵་}དག་{ཉིད༵་}ལ་ཐུགས་རྗེ་རིག་པ་རང་། མ་རིག་པའི་ཆར་སྐྱེས་ཙམ་དེས་ཁ་ཕར་ཕྱོགས་པ་ཙམ་ནས་{གཞི༵་}རང་གི་དབྱིངས་{ལས༵་}སྣང་བ་{རང༵་}{བྱུང༵་}དུ་ཤར་བ་ཡིན་པར་ཚུར་{རིག༵་}པའི་སྐད་ཅིག་མ་ལ་སྣང་བ་འདི་ཀུན།", + "<1><12>{ཕྱི༵་}རོལ་ནས་ཚུར་གྲུབ་པའི་ཡུལ་དང་། དེར་སྣང་རིག་པ་{ནང༵་}ནས་ཕར་གྲུབ་པའི་ཡུལ་ཅན་གྱི་འཛིན་པ་དང་། བདག་འདི་ནའོ། །འདི་ཕ་གི་ནའོ་སྙམ་པའི་སྙེམ་བྱེད་ཀྱི་ཤེས་པ་དེ་ལས་མཆེད་པའི་ཡིད་དུ་འོང་མི་འོང་བར་མར་སྒྲོ་བཏགས་དང་།", + "<1><12>སྟོང་སྣང་ལ་དངོས་མཚན་དུ་ཞེན་པས་ཡོད་པ་སྟོང་སྣང་མེད་པར་རྟོག་པའི་{སྐུར༵་}འདེབས་ཏེ་སྒྲོ་སྐུར་སྣ་ཚོགས་པའི་བདག་ཉིད་ཅན་གྱི་ཀུན་བཏགས་ཀྱི་མ་རིག་པའི་བློ་{སྐྱོན༵་}གྱིས་མ་བསྒྲིབས་པས་སྒྲོ་སྐུར་{མ༵་}{བཏགས༵་}མ་བཏབ་པ་དང་། དབྱིངས་ཀྱི་དེ་ཉིད་ལ་རྨོངས་ཙམ་པའི་{དྲན༵་}{མེད༵་}འཐིབ་རྨུགས་ཀྱི་རང་བཞིན་གྱི་བདག་ཉིད་གཅིག་པ་དང་། ལྷན་སྐྱེས་ཀྱི་མ་རིག་པ་{མུན༵་}{པ༵་}ལྟ་{བུའི༵་}{དྲི༵་}མས་{མ༵་}བསླད་མ་{གོས༵་}པ།", + "<1><13>{དེ༵་}ཡི་{ཕྱིར༵}། མ་རིག་འཛིན་པའི་འཆིངས་བ་ལས་གྲོལ་བར་འགྱུར་ཏེ།", + "<1><13>ཐལ་འགྱུར་ལས།
[གཞི་ལས་འཕགས་པའི་དབང་པོ་ཡིས། །
རང་སྣང་རང་བཞིན་མེད་པར་ཤེས། །
རྟོག་དཔྱོད་ཡིད་རྣམས་ཕྱིར་མ་ཤོར། །
འགྱུ་བ་རང་ཐག་ཆོད་པའོ། །]
ཞེས་དང་།", + "<1><13>རང་བྱུང་བདེ་བ་འཁོར་ལོའི་རྒྱུད་ལས།
[ཉུགས་ཙམ་ལས་ནི་རིག་བྱུང་ན། །
ཝལ་གྱིས་གསལ་ནས་སྒྲོ་སྐུར་བྲལ། །]
ཞེས་གསུངས་པ་ལྟར།", + "<1><13>རང་སྣང་རང་ངོ་ཤེས་པའི་ཟག་མེད་རང་བྱུང་གི་གཉེན་པོས། བྱེ་བྲག་རབ་ཏུ་འབྱེད་པ་ན། བྱེ་བྲག་ཕྱེད་ཐོག་དེ་ལས་གཉེན་པོ་གཞན་ལ་མི་ལྟོས་པར། {རང༵་}{སྣང༵་}གི་ཡོན་ཏན་ལ་འཛིན་འཁྲུལ་གྱི་{སྐྱོན༵་}གྱིས་{མ༵་}{གོས༵་}པར་འཁྲུལ་བ་ཆ་བཅས་ལས་གྲོལ་བའི་ཡེ་ཤེས་རྒྱས་པ་ཡིན་ཏེ།", + "<1><13>སྒྲོན་འབར་གྱི་རྒྱུད་ལས།
[གཞི་ཉིད་འབྲས་བུར་སྨིན་བྱེད་ཤེས་རབ་སྟེ། །
ཤེས་རབ་སྐུ་རུ་སྨིན་པ་ཡི། །
ངོ་བོ་ཉིད་ཀྱི་ཆོས་སྐུ་དེ།
།ཡེ་ཤེས་ཆོས་ཀྱི་སྐུ་རུ་སྨིན། །
དེ་ཡི་ཡེ་ཤེས་རྒྱུན་མ་ཆད། །
སྐུ་དང་ཡེ་ཤེས་ལྷུན་གྲུབ་གསལ། །]
ཞེས་གསུངས་སོ།།", + "<1><13>དེའང་དུས་གང་དུ་གྲོལ་ན།", + "<1><13>སློབ་དཔོན་བཱི་མ་ལས།
[ཐོག་མའི་ཀ་དག་བབ་ཀྱི་གཞི། །
ངོ་བོ་ཅིར་ཡང་མ་གྲུབ་ལ། །
རང་བཞིན་ཅིར་ཡང་སྣང་བ་ལ། །
ཐུགས་རྗེ་ཅིར་ཡང་འཆར་བར་གྲོལ། །]
ཞེས་པ་ལྟར།", + "<1><13>ནང་དབྱིངས་ལྷུན་གྲུབ་ཀྱི་སྦུབས་རྒྱ་རལ་ཏེ་གཞི་ལས་འཕགས་ཏེ་གཞི་སྣང་མཐོང་བའི་དུས་སུ་གྲོལ། གང་གིས་གྲོལ་ན།", + "<1><13>དེ་ཉིད་ལས།
[དངོས་པོའི་གནས་ལུགས་མཁྱེན་པ་ལས། །
རང་དོན་རྟོགས་ལས་འཁྲུལ་རྒྱུན་ཟད། །]
ཅེས་པ་ལྟར།", + "<1><13>རང་སྣང་ཡེ་ཤེས་ཀྱི་རོལ་བར་རྟོགས་ཤིང་སྣང་བ་དང་། གཞན་སྣང་དངོས་པོའི་མཚན་མ་ལས། {བྱེ༵་}{བྲག༵་}འབྱེད་པའི་ཤེས་རབ་ཀྱིས་གྲོལ།", + "<1><13>ཇི་ལྟར་གྲོལ་ན། གཞན་སྣང་ལས་བྱེ་བྲག་{ཕྱེས༵་}{ཏེ༵་}རང་སྣང་དུ་རྟོགས་པའི་སྒོ་ནས་{གྲོལ༵}། གང་ཞིག་གྲོལ་ན་གློ་བུར་གྱི་དྲི་མ་བྲལ་སྟོབས་ཀྱིས་གྲོལ་བ་{གཞ༵ན་}{ལ༵ས་}{མ༵་}{བྱུང༵་}བར་ཡེ་གྲོལ་གྱི་ཡེ་ཤེས་ཡོངས་གྲོལ་དུ་མངོན་དུ་བྱས་པ་ཙམ་མོ། །", + "<1><13>མུ་ཏིག་ཕྲེང་བ་ལས།
[ཀ་དག་དྲི་མ་བྲལ་བ་ཡི།
གནས་ལུགས་ཐམས་ཅད་མངོན་སངས་རྒྱས། །]
ཞེས་པ་ལྟར་རོ། །", + "<1><13>གནས་གང་དུ་གྲོལ་ན།", + "<1><13>རྒྱུད་ལས།
[གྲོལ་བ་དེ་ཉིད་ཐོག་མའོ། །
ཞེས་དང་།
ཡེ་ནས་གནས་པའི་ཆོས་ཉིད་ལ། །
ཤེས་བྱ་མངོན་དུ་གྱུར་པ་ན། །
ཆོས་རྣམས་ཟད་པའི་མཐར་ཕྱིན་པའོ། །]
ཞེས་པ་ལྟར།", + "<1><13>{རང༵་}{སར༵་}{གནས༵་}{པའི༵་}ཐོག་མའི་ཀ་དག་གདོད་མའི་ནང་དབྱིངས་སུ་གྲོལ་ཏེ། ཤེས་རབ་ཀྱི་རླུང་ཐིམ་པས་ཤེས་རབ་མཁའ་ལ་འདེགས། མ་དག་འབྱུང་ཁམས་ཐིམ་པས་འབྱུང་བ་མ་ལ་ཞུ། གནས་སྐབས་ལམ་གྱི་ཡེ་ཤེས་ཐིམ་པས་ཡེ་ཤེས་དབྱིངས་སུ་ཐིམ། གདོད་མའི་ཡེ་ཤེས་དེ་ཐིམ་ལ་མ་རྨུགས།", + "<1><13>གསལ་ལ་རྟོག་མེད་ཡིན་ལ་བདག་མེད་པ། སོ་སོར་མ་འདྲེས་པ་ལ་རྣམ་རྟོག་གིས་གོ་མི་འབྱེད་པས་ཤེས་རབ་མཁའ་ལ་འཁྱིལ། དེ་ལྟར་ན་ཆོས་སྐུ་འགྱུར་མེད་རྡོ་རྗེ་ལྟ་བུའི་སྐུ། །ཡེ་ཤེས་འགགས་མེད་གཡུང་དྲུང་ལྟ་བུའི་ཚེ། །ཏིང་འཛིན་ཆད་མེད་བདུད་རྩི་ལྟ་བུའི་ཆུ། །དགོངས་པ་སྒྲིབ་མེད་ཉི་ཟླ་ལྟ་བུའི་འོད་དང་ལྡན་པས་རིག་པའི་རང་ས་ཟིན་པ་ཞེས་བྱ་སྟེ།", + "<1><13>ཡི་གེ་མེད་པའི་རྒྱུད་ལས།
[ཕྱིན་པ་མེད་པའི་གནས་སུ་ཕ་རོལ་ཕྱིན། །
མཐོང་བ་མེད་པའི་སངས་རྒྱས་ཉག་གཅིག་མཐོང་། །]
ཞེས་པ་ལྟར་", + "<1><15>རྟོགས་པ་མངོན་གྱུར་གྱི་ཆོས་སྐུ། ཡང་དག་པར་རྫོགས་པའི་ཐོག་མའི་སངས་རྒྱས་མཐར་ཕྱིན་འབྲས་བུ་ལྷུན་གྲུབ་ཀྱི་སྦུབས་སུ་རང་བྱུང་ཀུན་བཟང་ཆོས་གསུམ་གྱི་བདག་ཉིད་ཅན་དུ་བཞུགས་པའོ། །དེ་ལྟར་ནང་དབྱིངས་སྟོང་པའི་ཡེ་ཤེས་ཀྱི་ཀློང་ལ། གསལ་བ་{རང༵་}{རིག༵་}གི་ཤེས་རབ་ཀྱིས་རང་{སོ༵་}ཟིན་ཏེ་གང་སྣང་{ལ༵་}ཆེད་འཛིན་མེད་པར་རང་ཡན་དུ་གཏོང་བའི་རྣལ་འབྱོར་ལས་མི་གཡེལ་བར་{གནས༵་}{པ༵་}{ལ༵}།", + "<1><15>ཆོས་ཉིད་ཀྱི་བར་དོའི་སྣང་ཆ་སྒྲ་འོད་ཟེར་གསུམ་གྱི་{སྲིད༵་}{གསུམ༵་}དུས་གཅིག་ཏུ་{འཇི༵ག་}པ་ལྟ་བུའི་སྣང་བ་ཤར་བ་{ལ༵འང་}སྒྲ་རྣམས་ཀུན་གཞི་མའི་སྒྲ་རུ་གོ་ནས། སྒྲས་མི་{དངང༵ས}། འོད་རྣམས་ཡེ་ཤེས་ལྔའི་རང་འོད་དུ་ཤེས་ནས་འོད་ཀྱིས་མི་འཇིགས། ཟེར་གྱི་སྣང་བ་རྣམས་ཀྱང་རིག་རྩལ་ཐུགས་རྗེའི་སྤྲུལ་པ་རུ་ཤེས་ནས་{སྐྲག༵་}པ་{མེད༵་}པའོ། །", + "<1><16>ལྷ་མི་སོགས་འཁོར་འདས་ཀྱི་ཞིང་ཁམས་ཀྱི་འབྱོར་བའི་{འདོ༵ད་}པའི་{ཡོན༵་}ཏན་རྣམ་{ལྔ༵ས་}བསྡུས་པ་ནམ་མཁའ་གང་བར་སྣང་བ་{ལ༵འང་}ཞེན་{ཆ༵གས་}ཀྱི་འཛིན་པས་བསླད་{པ༵་}{མེད༵་}པ་དང་།", + "<1><17>{རྟོག༵་}{མེ༵ད་}སྤྲོས་བྲལ་གྱི་ཡེ་{ཤེས༵་}མ་འགགས་{པ༵་}དེར་{རང༵་}{བྱུ༵ང་}རང་བབ་ཏུ་བསྐྱངས་ཏེ། བརྟན་པ་མཐར་ཕྱིན་ཐོབ་པ་{ལ༵}། འཁོར་འདས་ཀྱི་སྣང་བ་དགའ་འཇིགས་ཀྱི་རང་བཞིན་ཅན་རྣམས་ལ་{གདོ༵ས་}པ་དང་བཅས་{པའི༵་}བེམ་ཆོས་ཀྱི་{གཟུ༵གས་}སྒྲ་སོགས་ཡུལ་ལྔའི་ཆོས་ཉིད་{དང༵་}འགལ་བར་ཤེས་ནས་དེ་དག་དགག་སྒྲུབ་བླང་དོར་ལ་རེ་བའི་ཉོན་མོངས་{དུག༵་}{ལྔ༵འི་}རྟོག་པའི་འགྱུ་འཕྲོ་རྩད་ནས་ཆད་དེ་{མེད༵་}པ་དང་།", + "<1><18>དེ་ལྟར་ཡུལ་སྣང་ལ་འཛིན་པས་མ་བཅིངས་པར་འཛིན་མེད་རང་གསལ་གྱི་{རི༵ག་}{པའི༵་}ཡེ་ཤེས་{གས༵ལ་}{ཆ༵་}{མ༵་}{འགགས༵་}{པར༵་}ལྷན་ནེ་གནས་པ་ལས།", + "<1><19>{ངོ༵་}{བོ༵་}{གཅི༵ག་}ཏུ་གྱུར་{ལ༵་}ལྡོག་ཆ་ཙམ་གྱིས་ཕྱེ་བའི་{ཡེ༵་}{ཤེ༵ས་}{ལྔ༵འི་}མཁྱེན་པ་ཕྱོགས་མེད་དུ་རྒྱས་པར་འགྱུར།", + "<1><20>དེ་ལྟར་{ཡེ༵་}{ཤེ༵ས་}{ལྔ༵་}{པོ༵་}ཉིད་{སྨི༵ན་}ཅིང་རྒྱས་{པ༵་}{ལ༵ས}། ཡེ་ཤེས་ལྔ་དེའི་རང་སྣང་དུ་སྤྲུལ་སྐུའི་འཆར་གཞིའམ་སྤྲུལ་གཞིར་གྱུར་པའི་{ཐོག༵་}{མ༵འི་}{སང༵ས་}{རྒྱས༵་}རྒྱལ་བ་{རི༵གས་}{ལྔ༵་}དང་ཡུམ་ལྔའི་སྣང་བ་མཆེད་ཅིང་{བྱུང༵་}།", + "<1><21>{དེ༵་}{ལས༵་}ཀྱང་{ཡེ༵་}{ཤེ༵ས་}ཀྱི་རྩལ་{མཐ༵འ་}མེད་དུ་{རྒྱ༵ས་}{པ༵འི་}སྟོབས་ཀྱིས་དེའི་སྣང་བ་ཡང་ལྷག་པར་མཆེད་ནས། {སང༵ས་}{རྒྱས༵་}རིགས་ལྔ་ཡུམ་ལྔ་སེམས་དཔའ་ཡབ་ཡུམ་བཅུ་དྲུག་ཐུབ་པ་དྲུག་སྒོ་བ་ཡབ་ཡུམ་བརྒྱད་དེ་{བཞི༵་}{བཅུ༵་}རྩྭ་{གཉིས༵་}ཀྱི་དཀྱིལ་འཁོར་སྤྲོ་ཞིང་{འབྱུང༵་}།", + "<1><22>{ཡེ༵་}{ཤེས༵་}{ལྔ༵་}ཕྱོགས་མེད་དུ་རྒྱས་པ་{ཡི༵་}ཚེ་ན་ཡེ་སྣང་ཞི་བའི་དཀྱིལ་འཁོར་གྱི་{རྩལ༵་}ཁྲོ་བོར་{ཤར༵་}{བས༵}། གཉིས་འཛིན་གྱི་{ཁྲག༵་}{འཐུང༵་}བའི་དཔལ་ཆེན་ཧེ་རུ་ཀ་{དྲུག༵་}{ཅུ༵་}{ཐམ༵་}{པ༵་}ཡང་ལྷུན་གྲུབ་ཏུ་ཤར་ཞིང་{འབྱུང༵་}།", + "<1><23>དེ་ལྟར་འཁྲུལ་བ་དག་པ་དང་འཁྲུལ་མེད་ཀྱི་ཡེ་ཤེས་རྒྱས་པ་ལས། ཡེ་སྣང་རིས་མེད་དུ་མཆེད་པ་{དེའི༵་}{ཕྱིར༵་}{གཞི༵་}རང་བྱུང་གི་{རིག༵་}པ་ཡེ་ནས་{འཁྲུལ༵་}{མ༵་}{མྱོང༵་}བའི་ཀ་དག་གི་ཡེ་ཤེས་ཡེ་གྲོལ་གྱི་ཀློང་དུ་ཡོངས་གྲོལ་དུ་ཕྱིན་པ་ན།", + "<1><24>{ཐོ༵ག་}{མའི༵་}{སང༵ས་}{རྒྱས༵་}ཀུན་ཏུ་བཟང་པོ་{ང༵་}ཉིད་མངོན་དུ་གྱུར་པ་{ཡིན༵་}{པས༵}། དེས་ན་ཀུན་ཏུ་བཟང་པོ་{ང༵་}{ཡི༵་}དགོངས་གསང་ཟབ་མོའི་{སྨོན༵་}{ལམ༵་}མམ་རྟོགས་པའི་ལམ་འདི་ཉིད་གུས་རྟག་ཟུང་གིས་རང་རྒྱུད་ལ་{བཏབ༵་}ཅིང་བསྟེན་{པའི༵་}མཐུ་{ཡིས༵}། {ཁམས༵་}{གསུམ༵་}གྱི་གནས་སུ་ལས་ཉོན་གྱིས་དབང་མེད་དུ་{འཁོར༵་}{བའི༵་}{སེམས༵་}{ཅན༵་}རིགས་དྲུག་གིས་བསྡུས་པ་ཀུན་{གྱིས༵}། གཞི་{རང༵་}{བྱུང༵་}གི་{རིག༵་}{པའི༵་}ཡེ་ཤེས་ཡེ་སྣང་དང་བཅས་རང་{ངོ༵་}{ཤེས༵་}པ་ལ་བརྟེན་{ནས༵}། {ཡེ༵་}{ཤེས༵་}རང་སྣང་{ཆེན༵་}{པོའི༵་}འཁོར་ལོ་{མཐའ༵་}མེད་དུ་{རྒྱས༵་}ནས་དྲི་བྲལ་གདོད་མའི་བཙན་ས་ཉིད་ཟིན་ནུས་པར་{ཤོག༵་}ཅེས་པའོ། །" + ] + }, + "གྲོལ་ནས་གཞན་དོན་མཛད་ཚུལ།": { + "data": [ + "<1><25>(གཉིས་པ་གྲོལ་ནས་གཞན་དོན་མཛད་ཚུལ་ནི།) /ང་ཡི་སྤྲུལ་པ་\\སོགས་ཤོ་ལོ་ཀ་གཅིག་དང་རྐང་པ་གཉིས་ཀྱིས་བསྟན་ཏེ། རྟོགས་པ་མངོན་གྱུར་གྱི་ཆོས་སྐུ་ཀུན་ཏུ་བཟང་པོ་{ང༵་}{ཡི༵་}དབྱིངས་ཀ་དག་ཆོས་སྐུའི་ཞིང་ཁམས་དེ་ལས་མ་གཡོས་བཞིན་དུ་ལྷུན་གྲུབ་ཀྱི་སྒོ་ལས་སེམས་ཅན་གྱི་སྣང་ཚུལ་དང་བསྟུན་ཏེ་དོན་མཛད་པའི་ཕྲིན་ལས་ཅན་གྱི་ཐུགས་རྗེ་{སྤྲུལ༵་}{པའི༵་}སྐུ་དེ། དུས་སྲིད་པ་ཇི་སྲིད་དུ་གནས་པས་རྟག་པ་{རྒྱུན༵་}{མི༵་}{ཆད༵་}པ་གྲངས་ནམ་མཁའ་དང་མཉམ་པ།", + "<1><26>{བྱེ༵་}{བ༵་}{ཕྲག༵་}{བརྒྱ༵་}སྟེ་རིས་སུ་མ་ཆད་པ། བློས་གཞལ་བྱའི་ཡུལ་དུ་བགྲང་དུ་མེད་པས་{བས༵མ་}{ཡས༵་}པ་སྟེ་རྟག་ཁྱབ་ཀྱི་རང་བཞིན་ཅན་རྩོལ་སྟོབས་ཀྱིས་གསར་དུ་བསྐྲུན་པ་ལ་ལྟོས་པ་མེད་པར་རྩོལ་མེད་རང་ཆས་ལྷུན་གྲུབ་ཏུ་འབྱུང་བ་ཁོ་ནར་{འགྱེད༵་}ཅིང་སྟོན་པར་མཛད་པའོ། །", + "<1><26>དེའང་ངོ་བོ་སྐུ་རུ་བསྟན་ཏེ་ཆོས་སྐུ་ཡང་དག་པར་གྲུབ་པའི་སྐུ་དང་། དེ་ལ་ཐུགས་རྗེས་རྟག་ཏུ་ལོངས་སྤྱོད་པའི་ལོངས་སྤྱོད་རྫོགས་པའི་སྐུ་དང་། དེ་ཉིད་གདུལ་བྱའི་སྣང་ངོར་ཁམས་དབང་བསམ་པའི་སྐལ་བ་དང་མཐུན་པའི་གཟུགས་སྐུའི་རྣམ་རོལ་ཅིར་ཡང་འཆར་བའི་རྣམ་པ་ཐམས་ཅད་མཁྱེན་པའི་ཡེ་ཤེས་ཀྱིས་འགྲོ་བའི་དོན་མཛད་པ་སྤྲུལ་པའི་སྐུ་སྟེ།", + "<1><26>ཡི་གེ་མེད་པའི་རྒྱུད་ལས།
[སྐུ་ཡི་བཞུགས་ཚུལ་རྣམ་པ་གསུམ། །
མཚན་མའི་ཆོས་ལས་གྲོལ་བའི་ཕྱིར། །
རིས་ཅན་གཟུགས་སུ་མ་གྲུབ་སྟེ། །
གསལ་བའི་རང་བཞིན་རྫོགས་པའི་ཕྱིར། །
སྣང་བ་རང་བཞིན་མེད་པ་དང་། །
གདུལ་བྱའི་རྒྱུད་རྣམས་སྦྱང་བའི་ཕྱིར། །
མི་གཡོ་མཉམ་བཞག་ཆེན་པོར་བཞུགས། །]
ཞེས་གསུངས་པ་ལྟར་རོ། །", + "<1><26>རང་བཞིན་ཡེ་ཤེས་སུ་བསྟན་ཏེ། ཆོས་སྐུའི་ཡེ་ཤེས་གཞི་གནས་དོན་གྱི་ཡེ་ཤེས་ཁྱད་པར་གསུམ་ལྡན་གཞི་འབྲས་རིས་མེད་དུ་ཁྱབ་པ། ལོངས་སྐུའི་ཡེ་ཤེས་སྟོང་གསལ་དབྱེར་མེད་མ་འགགས་ཡངས་པ་ཆེན་པོ་ཡེ་ཤེས་ལྔའི་རང་བཞིན་ཅན། སྤྲུལ་སྐུའི་ཡེ་ཤེས་ཇི་ལྟ་བའི་གནས་ལུགས་དང་ཇི་སྙེད་པའི་རྣམ་བཞག་མཁྱེན་ཏེ་སེམས་ཅན་གྱི་སྐལ་བ་དང་འཚམས་པའི་དངོས་གྲུབ་སྟེར་བའི་བྱེད་པ་ཅན་ཏེ།", + "<1><26>ཐལ་འགྱུར་ལས།
[གཞི་ལ་གནས་པའི་ཡེ་ཤེས་ཀྱིས། །
རང་བཞིན་ཤུགས་ཀྱིས་འཆར་གཞི་བྱེད། །
མཚན་ཉིད་འཛིན་པའི་ཡེ་ཤེས་ཀྱིས། །
རྐྱེན་གྱི་དག་པ་སྨིན་པར་བྱེད། །
ཤེས་དང་ཤེས་བྱའི་ཡེ་ཤེས་ཀྱིས། །
མོས་གུས་ཅན་ལ་དངོས་གྲུབ་སྟེར། །]
ཞེས་གསུངས་པ་ལྟར་རོ། །", + "<1><26>ཐུགས་རྗེ་མཛད་པ་ཕྲིན་ལས་སུ་བསྟན་ཏེ། དེ་ལྟར་སྐུ་དང་ཡེ་ཤེས་ཡོན་ཏན་ཐམས་ཅད་ཀྱང་འཁོར་བ་མ་སྟོང་བར་དུ་སེམས་ཅན་ལ་འཕྲལ་ཡུན་དུ་སྨིན་པའི་ཐབས་ཉག་གཅིག་ཏུ་སྨིན་ཅིང་མཛད་པ་ཡིན་ཏེ།", + "<1><26>ཐལ་འགྱུར་ལས།
[དེ་ལྟར་ཐུགས་རྗེའི་འཆར་ལུགས་ལས། །
གདུལ་བྱའི་འགྲོ་བ་ཐ་དད་ལས། །
འདུལ་བྱེད་སྐུ་ཡང་དེ་ཙམ་མོ། །]
ཞེས་གསུངས་སོ། །", + "<1><26>དེ་ལྟར་མཛད་པ་ཐུགས་རྗེའི་རང་བཞིན་ཐུགས་རྗེ་ཡེ་ཤེས་ཀྱི་རང་བཞིན། ཡེ་ཤེས་སྐུ་ཡི་རང་བཞིན། སྐུ་གསུམ་ཆོས་སྐུའི་རང་བཞིན། ཆོས་སྐུ་ནི་སྐུ་ཐམས་ཅད་ཀྱི་སྤྱི་གཞི་ལྟ་བུ་སྟེ།", + "<1><26>ནོར་བུ་ཕྲེང་བཀོད་ལས།
[ཆོས་ཀྱི་སྐུ་ཡི་སྣང་བ་ལ། །
སྐུ་གསུམ་སྣང་བ་དུས་གཅིག་རྫོགས། །]
ཞེས་གསུངས་པ་ལྟར་རོ། །", + "<1><27>དེ་ལྟར་ཆོས་སྐུའི་ངང་ནས་གདུལ་བྱ་{གང༵་}{ལ༵་}ཐབས་{གང༵་}གིས་{འདུལ༵་}བའི་ཐབས་{སྣ༵་}{ཚོགས༵་}ཉིད་{སྟོན༵་}པའང་སྤྲུལ་སྐུའི་མཛད་པ་ཡིན་ཏེ།", + "<1><27>མངོན་རྟོགས་རྒྱན་ལས།
[གང་གི་སྲིད་པ་ཇི་སྲིད་བར། །
འགྲོ་ལ་ཕན་པ་སྣ་ཚོགས་དག །
མཉམ་དུ་འཇུག་པའི་སྐུ་དེ་ནི། །
ཐུབ་པའི་སྤྲུལ་སྐུ་རྒྱུན་མི་འཆད། །]
ཅེས་དང་།", + "<1><27>མཚན་བརྗོད་ལས།
[སངས་རྒྱས་ཀུན་གྱི་སྤྲུལ་པའི་སྐུ། །
བྱེ་བ་དཔག་མེད་འགྱེད་པ་པོ། །]
ཞེས་དང་།
[ཕྱོགས་བཅུར་སྤྲུལ་པ་སྣ་ཚོགས་འགྱེད། །
ཇི་བཞིན་འགྲོ་བའི་དོན་བྱེད་པ། །]
ཞེས་སོགས་གསུངས་པ་ལྟར།", + "<1><28>དོན་གཉིས་རྫོགས་པ་སངས་རྒྱས་ཉག་གཅིག་ཏུ་ཟད་པས། སེམས་ཅན་གྱི་དོན་ལ་གཅིག་ཏུ་དགོངས་པའི་སངས་རྒྱས་ཀུན་ཏུ་བཟང་པོ་{ང༵་}{ཡི༵འམ་}དེ་ཡི་སེམས་ཅན་གྱི་དཔལ་དུ་ཤར་བའི་{ཐུགས༵་}{རྗེ༵་}ཕྲིན་ལས་ཐམས་ཅད་ཀྱི་སྙིང་པོ་མཐར་ཐུག་དམ་པ། མདོ་རྒྱུད་ཀྱི་གདམས་པའི་ཉིང་བཅུད་གཅིག་ཏུ་དྲིལ་བ། དུས་གསུམ་རྒྱལ་བའི་དགོངས་{སྨོན༵་}བརྒྱ་ཕྲག་གི་ལམ་གྱི་སྐྱེལ་སོ་གཅིག་པུ། ཡང་གསང་བླ་མེད་རྫོགས་པ་ཆེན་པོའི་{ལམ༵་}མཆོག་འདི་ལ་བརྟེན་ནས་སྐུ་གསུམ་ལྷུན་གྲུབ་{ཀྱི༵་}ཡོན་ཏན་མཐར་ཕྱིན་མངོན་དུ་བྱས་ཏེ། ", + "<1><28>{ཁམ༵ས་}{གསུམ༵་}གྱི་སྐྱེ་གནས་སུ་ཐོག་མེད་དུ་{འཁོར༵་}ཞིང་སྡུག་བསྔལ་གསུམ་གྱི་རྒྱས་རབ་ཏུ་བཅིངས་{པའི༵་}མཐའ་མེད་ཀྱི་{སེམ༵ས་}{ཅ༵ན་}འདི་{རྣམ༵ས}། འཁྲུལ་སྣང་{རིགས༵་}{དྲུག༵་}གི་ཉོན་མོངས་ལས་སྐྱེ་བ་གསུམ་སྟེ། རྒྱུ་འབྲས་གཉིས་ཆར་གྱིས་བསྡུས་པའི་ལམ་དང་། སྐྱེ་སྲིད་འཆི་སྲིད་བར་སྲིད་སྔོན་དུས་ཀྱི་སྲིད་པ་སྟེ་སྲིད་པའི་{ལམ༵་}བཞི་{ནས༵་}{ཐོ༵ན་}ཏེ་འཁོར་བ་དོང་ནས་སྤྲུགས་པའི་མཛད་པ་ལ་དབང་འབྱོར་ཐོབ་{པར༵་}{ཤོག༵་}ཅེས་པའོ། །" + ] + } + }, + "གཞི་དོན་མ་ཤེས་པ་ལས་སེམས་ཅན་འཁོར་བར་འཁྲུལ་ཚུལ།": { + "data": [ + "(གསུམ་པ་ལ་གཉིས་ཏེ། འཁྲུལ་ཚུལ་སྤྱིར་བསྟན་པ་དང་། དེ་བྱེ་བྲག་སོ་སོར་བསྟན་པ་དང་གཉིས་ལས།)" + ], + "འཁྲུལ་ཚུལ་སྤྱིར་བསྟན་པ།": { + "data": [ + "<1><29>(དང་པོ་ནི།) {དང་པོ་སེམས་ཅན་འཁྲུལ་བ་རྣམས་}སོགས་ཤོ་ལོ་ཀ་གསུམ་དང་ཚིག་རྐང་གསུམ་གྱིས་བསྟན་ཏེ། ཐོག་མ་{དང༵་}{པོ༵འི་}གཞི་ལ་འཁྲུལ་བ་མེད་ཀྱང་{སེམ༵ས་}{ཅ༵ན་}གློ་བུར་བའི་{འཁྲུལ༵་}{བ༵་}རྣམ་གྲངས་མང་བའི་གཞན་དབང་དུ་གྱུར་པ་{རྣམ༵ས་}ནི། {གཞི༵་}{ལ༵་}གཞི་སྣང་ཤར་དུས། རང་སྣང་ཡེ་ཤེས་ཀྱི་རོལ་པའི་རིག་{པ༵་}རུ་{མ༵་}{ཤར༵་}{བའི༵}། རང་ངོ་མ་རིག་པས་ལུང་མ་བསྟན། མ་རིག་པའི་རྩ་བ་ཅན་{དེས༵}། གཞི་སྣང་ལ་རིས་སུ་བཅད་པས་སེམས་ཅན་འཁྲུལ་ཏེ། ", + "<1><29>མུ་ཏིག་ཕྲེང་བ་ལས།
[ཁྱད་པར་ཆེན་པོའི་སྣང་བ་ལས། །
ཡོད་དང་མེད་པ་གཉིས་བྱུང་སྟེ། །
སྤྱི་ས་འཁྲུལ་གཞི་ཞེས་བྱ་སྟེ། །
མ་རིག་ཉིད་དང་སྦགས་པའི་ཕྱིར། །
ཤེས་བྱ་ཉིད་ཀྱང་དྲི་མར་སྣང་། །]
ཞེས་པ་དང་།", + "<1><29>གཞན་ཡང་དེ་ཉིད་ལས།
[ཆོས་སྐུ་ནམ་མཁའ་ལྟ་བུ་ལ། །
གློ་བུར་སེམས་ཅན་སྤྲིན་གྱིས་བསྒྲིབས། །
མ་འཁྲུལ་པ་ཡི་ཆོས་ཉིད་ཀྱང་། །
བློ་ལ་འཁྲུལ་བའི་ཚུལ་དུ་སྣང་། །
རྒྱུ་རྐྱེན་དང་བཅས་སྐད་ཅིག་མ། །]
ཞེས་གསུངས་པ་ལྟར་", + "<1><29>འཁྲུལ་བའི་རྒྱུ་རྐྱེན་གཉིས་ལས་རྒྱུ་མ་རིག་པ་གསུམ་ལས་དང་པོའི་མཆེད་གཞི་ལྟ་བུར་གྱུར་པའི་མ་རིག་པ་ནི།", + "<1><29>རྒྱུད་ལས།
[མ་རིག་པ་ནི་རྣམ་པ་གསུམ། །
བདག་ཉིད་གཅིག་པུའི་འཁྲུལ་རྩ་བྱས། །
ལྷན་ཅིག་སྐྱེས་པས་རྟོག་པ་གཉིས། །
ཀུན་ཏུ་བཏགས་པའི་ཡུལ་དུ་གྱུར། །]
ཞེས་གསུངས་པ་དང་།", + "<1><29>སློབ་དཔོན་བཱི་མ་ལས།
[རྒྱུ་ཞེས་ངེས་པར་བདག་ཉིད་གཅིག །
མ་རིག་རྣམས་གྱི་དང་པོ་སྟེ། །
དེ་ལས་ལྷན་ཅིག་སྐྱེས་པ་ཉིད། །
ཡེ་ཤེས་དག་པའི་ལྟོས་ཕྱིར་སྣང་། །
དེ་ཕྱིར་ཡུལ་སྣང་ཀུན་ཏུ་བཏགས། །]
ཞེས་པ་ལྟར་གྱི་", + "<1><29>མ་རིག་པ་དེ་གསུམ་ཡང་། གཞིའི་ཆོས་གསུམ་དང་འགལ་བར་གྱུར་པའི་མ་རིག་པ་གསུམ་ལས། དང་པོ་ངོ་བོ་སྤྲོས་བྲལ་གྱི་དོན་ལ་རྨོང་པ་ཙམ་གྱི་སྒོ་ནས་འགལ་བར་ཞུགས་པའི་མ་རིག་པ་སྤྲོས་བྲལ་མངོན་ཏུ་གྱུར་བའི་གཉུག་མའི་དྲན་ཤེས་སོགས་ཀྱི་ཡོན་ཏན་དང་བྲལ་ཞིང་། ཡུལ་ལ་{ཅིར༵་}{ཡང༵་}{དྲན༵་}སྣང་{མེད༵་}པར་{འཐོ༵མ་}{མེ༵་}རྨུགས་སེ་{བ༵}། {དེ༵་}{ཀ༵་}ཉིད་རྒྱུ་བདག་ཉིད་གཅིག་པའི་མ་རིག་པ་ཞེས་བྱ་སྟེ། ཀུན་ལྷན་གྱི་{མ༵་}{རི༵ག་}པ་དང་། ལས་ཉོན་{འཁྲུལ༵་}{བའི༵་}འཁྲུལ་སྣང་སྣ་ཚོགས་ཀྱི་{རྒྱུ༵་}རུ་གྱུར་པ་ཡིན་པས་སོ། །", + "<1><30>དེའང་དང་པོ་མ་རིག་པ་དེའི་ངང་ལས་རིམ་བཞིན་སྒྲ་འོད་ཟེར་གསུམ་གྱི་སྣང་བ་བར་སྣང་གང་བ་དུ་མ་བྱུང་བ་དེ་ལ་ཐོག་མར་ཡེངས་ཏེ་དཔྱོད་པ་བྱེད་པ་ན། བདག་དང་གཞན་ཡུལ་དང་ཡུལ་ཅན་དུ་སྣང་ཞིང་འཛིན་པའི་འཛིན་པ་དང་པོར་སྐྱེས་པ་ན། ཐོག་མར་ཡུལ་སྣང་{དེ༵་}དག་{ལ༵་}ཤིན་ཏུ་འཇིགས་ནས་{ཧད༵་}{ཀྱིས༵་}{བརྒྱལ༵་}ཞིང་འབོག་{པར༵་}འགྱུར། དེ་{ལས༵་}འཇིགས་པ་ཆེ་ཆུང་གི་བྱེ་བྲག་ལས། {དངང༵ས་}པ་དང་{སྐྲག༵ས་}པའི་{ཤེས༵་}{པ༵་}རིམ་གྱིས་མཆེད་དེ་{ཟ༵་}{ཟི༵་}ལ་ལོང་དུ་སྐྱེས་པར་{འགྱུར༵་}རོ། ། ", + "<1><31>སླར་ཡང་ཡུལ་གྱི་ཆོ་རོལ་དུ་མ་སྣང་བ་{དེ༵་}དག་ཀུན་{ལ༵་}སྔར་བཞིན་བདག་འདི་ནའོ། །ཕ་གི་ནི་ཕ་གི་ནའོ་སྙམ་པའི་{བདག༵་}{གཞན༵་}གཉིས་དང་། ཡིད་འོང་གི་གཉེན་དང་། ཡིད་དུ་མི་འོང་བའི་{དགྲ༵་}རུ་{འཛི༵ན་}པ་{སྐྱེས༵}། ", + "<1><32>དེ་ལྟ་བུའི་གང་ཟག་གི་བདག་འཛིན་དེ་ལས་འདོད་ཆགས་ཞེ་སྡང་སོགས་རྩ་ཉོན་ཉེ་ཉོན་རྣམས་མཆེད་དེ། འཕེན་བྱེད་ཀྱི་ལས་ཡང་ཡང་གསར་དུ་གསོགས་ཤིང་། སྔོན་བསྐལ་པ་དུ་མ་ནས་བསགས་པའི་ལས་རྣམས་ལ་ཡང་སྲེད་ལེན་གྱིས་གསོས་བཏབས་ཏེ་ལས་ཀྱི་{བ༵ག་}{ཆགས༵་}ནུས་པ་མཐུ་ཅན་དུ་རིམ་{གྱིས༵་}རྒྱས་ཤིང་{བརྟས༵་}ཏེ། ", + "<1><32>འགྲུབ་བྱེད་ཀྱི་ལས་སུ་གྱུར་{པ༵་}{ལས༵་}{འཁོར༵་}{བའི༵་}རིགས་དྲུག་གི་སྐྱེ་གནས་སུ། འཕང་འབྲས་གྲུབ་འབྲས་རྣམས་ཀྱི་རྟེན་འབྲེལ་{ལུགས༵་}འབྱུང་དུ་གྲུབ་ནས་{སུ༵་}མྱ་ངན་དང་སྨྲེ་སྔགས་སོགས་སྡུག་བསྔལ་གྱི་ཕུང་པོ་ཆེན་པོའི་འཁྲུལ་འཁོར་གྱི་རྩིབས་སུ་དབང་མེད་དུ་{འཇུག༵་}{པ༵་}འདི་{འབྱུང༵་}བའོ། །", + "<1><33>སླར་ཡང་རྟེན་འབྲེལ་སྔ་མའི་འབྲས་བུ་སྡུག་བསྔལ་གྱི་གཞི་{དེ༵་}{ལས༵་}ཀྱང་ཆགས་སྡང་སོགས་{ཉོན༵་}{མོངས༵་}པ་{དུག༵་}{ལྔ༵་}རྣམ་གྲངས་དུ་མ་ནས་ཤུགས་དྲག་པོར་{རྒྱས༵་}ཏེ་འབྱུང་། ", + "<1><34>དེ་འབྱུང་བ་ལས་ཉོན་མོངས་པ་{དུག༵་}{ལྔ༵་}དེས་བསགས་{པའི༵་}{ལས༵་}སྐད་ཅིག་རེ་རེར་ཡང་དུ་མ་ཞིག་ལས་ཀྱི་བགོ་གཞིའི་སྟེང་{ལ༵་}{རྒྱུན༵་}{ཆད༵་}མེད་པའི་ཚུལ་དུ་འབྱུང་སྟེ། ", + "<1><35>རྟེན་འབྲེལ་གྱི་ལམ་གསུམ་སྔ་ཕྱིའི་གོ་རིམ་དང་བྲལ་བ་{དེའི༵་}{ཕྱིར༵་}ཉེས་མང་གི་མཚོན་དབལ་གཅིག་ཏུ་འཁོར་ཏེ་སངས་མེད་དུ་འཇོམས་པའི་{སེམས༵་}{ཅན༵་}རྣམས་ཀྱི་{འཁྲུལ༵་}སྣང་གི་ཉེས་པ་དེ་དག་གི་རྩ་བར་གྱུར་{པའི༵་}{གཞི༵་}ནི།", + "<1><36>སྔར་བསྟན་པའི་ངོ་བོའི་གནས་ཚུལ་མ་མཐོང་བའི་{དྲན༵་}{མེ༵ད་}རྨོངས་ཙམ་པའི་{མ༵་}{རིག༵་}པ་དེ་{ཡིན༵་}པས་རྒྱུ་རྩ་དེ་ཉིད་མ་ལྡོག་ན་སྡུག་བསྔལ་ཀུན་རྒྱུན་ཆད་མེད་ཡིན་པ་དང་། རྒྱུ་དེ་ལྡོག་ན་འབྲས་བུ་ཉེས་སྡུག་རྣམས་ངང་གིས་ལྡོག་{པའི༵་}{ཕྱིར༵་}ན། ", + "<1><36>{སང༵ས་}{རྒྱས༵་}ཀུན་ཏུ་བཟང་པོ་{ང༵་}{ཡི༵་}དགོངས་པའི་མཐར་ཐུག་གི་ཆོས། {སྨོན༵་}ལམ་ཐམས་ཅད་ཀྱི་ཉིང་བཅུད་ཡང་གསང་རྫོགས་པ་ཆེན་པོའི་{ལམ༵་}ལ་བརྟེན་པའི་སྟོབས་{ཀྱིས༵}། སེམས་ཅན་{ཀུན༵་}{གྱིས༵་}{རིག༵་}{པའི༵་}ངོ་བོ་ཀ་དག་གི་དབྱིངས་ཉིད་{རང༵་}སར་{ཤེས༵་}ཤིང་མཐོང་ནུས་པར་{ཤོག༵་}ཅེས་པའོ། །" + ] + }, + "དེ་བྱེ་བྲག་སོ་སོར་བསྟན་པ།": { + "data": [ + "<1><37>(གཉིས་པ་ནི།) {ལྷན་ཅིག་སྐྱེས་པ་}སོགས་ཤོ་ལོ་ཀ་གཉིས་དང་རྐང་པ་གསུམ་གྱིས་བསྟན་ཏེ། དེ་ལྟར་འཁྲུལ་བ་རྒྱུ་མ་རིག་པ་གསུམ་དང་། རྐྱེན་བཞི་འཚོགས་པ་ལས་གྲུབ་པ་ཡིན་ན། སྔར་བསྟན་པའི་ངོ་བོ་སྤྲོས་བྲལ་ལ་རྨོངས་པ་བདག་ཉིད་གཅིག་པུའི་མ་རིག་པ་དེ་ལས་མཆེད་པའི་ལྷན་ཅིག་སྐྱེས་པའི་མ་རིག་པ་དང་། ཀུན་ཏུ་བརྟགས་པའི་མ་རིག་པ་གཉིས་ནི་རིམ་བཞིན། ", + "<1><37>གཞིའི་རང་བཞིན་གྱི་ཆོས་དང་འགལ་བར་ཞུགས་ཏེ་རང་བཞིན་གྱི་ཡོན་ཏན་གྱི་ཆོས་ཕྱི་གསལ་དུ་སྣང་བ་དང་། {ལྷན༵་}{ཅི༵ག་}གམ་དེ་དང་ཆབ་གཅིག་ཏུ། གཞན་སྣང་དུ་ཤར་བའི་ཡེངས་འཁྲུལ་རང་{སྐྱེས༵་}ཏེ་བྱུང་{བའི༵་}{མ༵་}{རིག༵་}{པ༵་}དེ་ཉིད་ནི།གཞིའི་ངོ་བོའི་གནས་ཚུལ་ལ་རྨོངས་པའི་{ཤེས༵་}{པ༵་}{དྲན༵་}མེད་པ་དེ་ཀ་ཡུལ་སྣང་ལ་{ཡེང༵ས་}པའི་རང་བཞིན་དུ་{གྱུ༵ར་}{པ༵་}ཞིག་{ཡི༵ན་}ནོ། །", + "<1><38>དེ་ལས་ཐུགས་རྗེའི་རིག་པ་དང་འགལ་བར་ཞུགས་ཏེ་ཡུལ་དང་ཡུལ་ཅན་དུ་འཛིན་པའི་ངོ་བོར་སྐྱེས་ཏེ་གཟུང་འཛིན་སོ་སོར་སྒྲོ་སྐུར་སྣ་ཚོགས་ཀྱི་རང་བཞིན་ཅན་ཡུལ་སྣང་{ཀུན༵་}ལ་དགག་སྒྲུབ་ཏུ་བཏགས་ཤིང་དཔྱད་{པའི༵་}{མ༵་}{རིག༵་}{པ༵་}ཆོས་ཀྱི་བདག་འཛིན་ཉིད་འབྱུང་། དེ་ལ་བརྟེན་ནས་{བདག༵་}{གཞ༵ན་}{གཉིས༵་}{སུ༵་}དམིགས་ནས་རང་མཚན་དུ་གྲུབ་པར་{འཛི༵ན་}པའི་གང་ཟག་གི་བདག་འཛིན་འབྱུང་བར་འགྱུར་{པ༵་}{ཡི༵ན་}ནོ། །", + "<1><39>དེ་ལྟར་{ལྷན༵་}ཅིག་{སྐྱེས༵་}པའི་མ་རིག་པ་དང་། {ཀུན༵་}ཏུ་{བཏགས༵་}པའི་མ་རིག་པ་སྟེ། {མ༵་}{རི༵ག་}པ་དེ་{གཉིས༵་}དང་བདག་ཉིད་གཅིག་པའི་མ་རིག་པ་དང་གསུམ་འཁྲུལ་པའི་རྒྱུ་ཡིན་པར་མ་ཟད། རྐྱེན་བཞི་ལས་ཀྱང་རྒྱུའི་རྐྱེན་ཞེས་ཀྱང་བྱ་སྟེ། དཔེར་སྐྱེས་བུའི་བྱད་ཉིད་གཟུགས་བརྙན་བྱད་དུ་འཁྲུལ་བའི་རྒྱུའི་རྐྱེན་དུ་འགྱུར་བ་ལྟར། མ་རིག་པ་གསུམ་ལས་ཀྱང་། བདག་འཛིན་སོགས་ཉོན་མོངས་ལས་འབྲས་ཀྱི་འཁྲུལ་བ་འབྱུང་བའི་རྒྱུ་རྐྱེན་ཡིན་པས་སོ། །", + "<1><39>གཞི་སྣང་གི་སྣང་བའི་ཆོ་འཕྲུལ་རྣམས་ནི་དམིགས་པའི་རྐྱེན་ཡིན་ཏེ། དཔེར་མེ་ལོང་དུ་གཟུགས་བརྙན་སྣང་བ་དེ་བྱད་དུ་འཁྲུལ་བའི་དམིགས་རྐྱེན་ཡིན་པ་ལྟར། གཞིའི་སྣང་ཆ་རྣམས་ཀྱང་། དེ་གཞན་སྣང་གི་ དམིགས་འཛིན་གྱི་འཁྲུལ་བའི་དམིགས་རྐྱེན་དུ་འགྱུར་བ་ཡིན་པས་སོ། །", + "<1><39>དེ་ལྟར་ཡུལ་སྣང་དང་། དེ་ཡུལ་དུ་བྱེད་པའི་ཡུལ་ཅན་རྟོག་པ་གཉིས་འཚོགས་ཚེ་ཡུལ་ཅན་དེས། ཡུལ་ལ་འདི་དང་འདིའོ་ཞེས་སོ་སོར་དཔྱད་པའི་རྟོག་པ་ནི་བདག་རྐྱེན་ཡིན་ཏེ། དཔེར་བྱད་དང་མེ་ལོང་གཟུགས་བརྙན་རྣམས་ལ་སོ་སོར་སྣང་ཞིང་རྟོག་པ་ནི། གཟུགས་བརྙན་བྱད་དུ་འཁྲུལ་བའི་བདག་རྐྱེན་ཡིན་པ་ལྟར། ཡུལ་གཞི་སྣང་དང་། ཡུལ་ཅན་དེ་ཡུལ་དུ་བྱེད་པའི་རྟོག་པས་རང་ཡུལ་ལ་དཔྱད་པ་ནི་བདག་འཛིན་སོགས་འཁྲུལ་བ་འབྱུང་བའི་བདག་པོའི་རྐྱེན་དུ་འགྱུར་བ་ཡིན་པས་སོ། ། ", + "<1><39>དེ་ལྟར་འཁྲུལ་བའི་རྒྱུ་རྐྱེན་བདག་རྐྱེན་དམིགས་རྐྱེན་གསུམ་འཚོགས་པ་ནི་འཁྲུལ་བ་འབྱུང་བའི་དེ་མ་ཐག་རྐྱེན་ཡིན་ཏེ། དཔེར་བྱད་བཞིན་གྱི་དེ་གསུམ་འཚོགས་པ་ནི། །གཟུགས་བརྙན་བྱད་དུ་འཁྲུལ་བའི་དེ་མ་ཐག་རྐྱེན་དུ་འགྱུར་བ་བཞིན་ནོ། ། དེ་ལྟ་ན་མ་རིག་པ་ཉིད་{སེམ༵ས་}{ཅ༵ན་}ཐམས་ཅད་{ཀུན༵་}{གྱི༵་}{འཁྲུལ༵་}བའི་རྒྱུ་དང་རྐྱེན་ གཉིས་ཀར་འགྱུར་བའི་སྒོ་ནས་འཁྲུལ་{གཞི༵་}རྩ་བ་{ཡི༵ན་}པའི་ཕྱིར་ན། ", + "<1><40>{སང༵ས་}{རྒྱས༵་}ཀུན་ཏུ་བཟང་པོ་{ང༵་}{ཡི༵་}དགོངས་{སྨོན༵་}གྱི་མཐར་ཐུག་ཨ་ཏི་རྫོགས་པ་ཆེན་པོའི་{ལམ༵་}{གྱི༵་}བྱེད་པ་ལ་བརྟེན་{ནས༵}། {འཁོར༵་}བར་རྒྱུ་{བའི༵་}{སེམ༵ས་}{ཅ༵ན་}རྣམས་ཀྱི་ཀུན་འབྱུང་འཁྲུལ་བའི་ཉེས་པ་{ཐམས༵་}{ཅད༵་}{ཀྱི༵}། རྩ་བར་གྱུར་བའི་{དྲན༵་}{མེད༵་}རྨོངས་ཤིང་{འཐི༵བས་}{པའི༵་}ཀུན་གཞི་མ་རིག་པའི་{མུན༵་}{པ༵་}{སང༵ས་}ཤིང་། ", + "<1><41>ཡུལ་སྣང་ལ་ཡེངས་ཏེ་སོ་སོར་བདག་གཞན་{གཉིས༵་}{སུ༵་}{འཛིན༵་}{པའི༵་}ཞེན་རྟོག་གི་{ཤེས༵་}{པ༵་}ཀུན་ལྷན་གྱི་མ་རིག་པ་ཉེས་པའི་རྩ་བ་ཅན་དག་གདོད་མའི་ནང་དབྱིངས་སུ་{དེངས༵་}བའི། ", + "<1><42>{རིག༵་}{པ༵་}སྤྲོས་བྲལ་གཉུག་མའི་སྟོང་ཆེན་གྱི་{རང༵་}{ངོ༵་}རྗེན་པར་{ཤེས༵་}ཤིང་མཐོང་ནུས་{པར༵་}{ཤོག༵་}ཅེས་པའོ། །", + "<1><42>རྩ་བའི་ས་བཅད་གཉིས་པ་གཞི་མངོན་དུ་བྱས་ནས་འཁྲུལ་བ་ལྡོག་པའི་ལམ་བཤད་པ་ལ། སྨིན་གྲོལ་གྱི་ལམ་གཉིས་ལས་ཐོག་མར་སྨིན་བྱེད་དབང་གིས་རྒྱུད་སྨིན་པ་དང་། དམ་ཚིག་སྡོམ་པའི་སྲོག་རྩ་བརྟན་པ་གཞི་བཅས་པས། གྲོལ་བྱེད་ཀྱི་ལམ་འདིར་འཇུག་པ་ལ། ཐོག་མར་གང་སྒོམ་ཞིང་ལམ་དུ་བྱེད་པའི་ལམ་གྱི་ལྟ་བ་གཞི་དོན་ངོ་སྤྲོད་པའི་ངོ་སྤྲོད་མ་འཆུགས་པ་ཞིག་མ་ཐེབས་ན། ", + "<1><42>བར་དུ་ལམ་སྒོམ་པའི་དུས་སུ་གོལ་ནོར་ཤོར་བའི་འཕྲེང་ལས་འདས་མི་ནུས་པས། འབྲས་བུའི་ཡོན་ཏན་ལས་རིང་དུ་བྱེད་པ་ཁོ་ན་ལས་མ་འདས་པས་གང་བསྒོམ་བྱའི་ལྟ་བ་ངོ་སྤྲོད་པའི་ཐབས་ཀྱང་གང་ཟག་གི་དབང་པོའི་བྱེ་བྲག་ལ་ལྟོས་ནས་དུ་མ་ཞིག་ཡོད་ནའང་། ཀུན་གཞི་ཆོས་སྐུར་མ་སོང་། ཡིད་ཡེ་ཤེས་སུ་མ་སོང་། སེམས་རིག་པར་མ་སོང་བའི་ཤན་འབྱེད་ཀྱི་གནད་གཟེར་རང་རྒྱུད་ལ་ལེགས་པར་ཐེབས་པ་ཞིག་ཐོག་མར་གལ་ཆེ་བས། ཀུན་གཞི་དང་ཡིད་སེམས་ཀྱི་རྙོགས་ཆ་ཕྲ་རགས་དང་བྲལ་བའི་ཆོས་སྐུ་རིག་པའི་ཡེ་ཤེས་ངོ་རང་ཐོག་ཏུ་འཕྲོད་དགོས་ཏེ། ", + "<1><42>མུ་ཏིག་ཕྲེང་བ་ལས།
[སེམས་དང་ཡེ་ཤེས་ཁྱད་པར་ནི། །
མཁས་པ་རྣམས་ཀྱིས་ཤེས་པར་བྱ། །]
ཞེས་དང་།", + "<1><42>ཀློང་གསལ་ལས།
[སེམས་དང་ཡེ་ཤེས་རང་ངོ་མ་ཕྱེད་ན། །
ཉི་མ་སྤྲིན་ཕུང་གིས་བསྒྲིབས་པ་དང་འདྲ་སྟེ།
ཕྱིར་སྣང་བའི་དོན་བྱེད་མི་ནུས་སོ། །]
ཞེས་དང་།", + "<1><42>ཐལ་འགྱུར་ལས།
[ཀུན་གཞི་དང་ནི་ཆོས་སྐུའི་གནད། །]
ཅེས་གསུངས་པ་ལྟར།", + "<1><42>ཀུན་གཞི་ནི་མ་རིག་པའི་ཁྱད་པར་དུ་བྱས་པ་ཡིད་སེམས་བག་ཆགས་དང་བཅས་པའི་རྟེན་གཞི་མཐར་ཐུག་གོ །ཆོས་སྐུ་ནི་མ་རིག་པ་ལོག་པའི་ཁྱད་པར་དུ་བྱས་པ་སེམས་ཡིད་བག་ཆགས་དང་བཅས་པ་ཐམས་ཅད་ལས་རྣམ་པར་དག་པའི་སྤྲོས་བྲལ་གྱི་ཡེ་ཤེས་ཤིག་ཡིན་ཏེ། ", + "<1><42>མུ་ཏིག་ཕྲེང་བ་ལས།
[ཀུན་གཞི་ཉིད་ནི་བསགས་པའི་ཕྱིར། །
ཆོས་ཀྱི་སྐུ་ནི་ཟག་པ་ཟད། །
སྟོང་ཞིང་གསལ་ལ་གསལ་ཞིང་ཁྱབ། །
བསམ་པས་མ་སྦགས་དྲན་པ་སངས། །
སྤྲོས་པ་ཉིད་དང་བྲལ་བ་སྟེ། །]
ཞེས་སོ། །", + "<1><42>སེམས་ནི་མ་རིག་པ་དང་མཚུངས་པར་ལྡན་པ་དྲི་མ་དང་བཅས་པའི་ཆོས། འཁོར་བ་རང་ག་མ། ཡེ་ཤེས་ཀྱི་ཉི་མའི་སྒྲིབ་བྱེད་སྤྲིན་ལྟ་བུ་དང་། ཡེ་ཤེས་ནི་ཆོས་སྐུ་དང་མཚུངས་པར་ལྡན་པ་དྲི་མེད། སེམས་ཀྱི་དྲན་བསམ་ལས་འདས་པའི་ཉི་མ་ལྟ་བུ་སྟེ། ", + "<1><42>མུ་ཏིག་ཕྲེང་བ་ལས།
[སེམས་ནི་བག་ཆགས་ཀུན་གྱི་གཞི། །
ལུས་ཅན་རྣམས་ཀྱི་དྲི་མ་ཡིན། །
གཟུང་བ་ཡུལ་ལ་འཛིན་པ་སེམས། །
དེའི་ཕྱིར་འཁོར་བའི་ཆོས་ཉིད་དོ། །]
ཅེས་པ་ལྟར།", + "<1><42>རིག་པ་རང་གི་ཆོས་ཉིད་སྟོང་དབྱིངས་ལས་མི་འདའ་བས། སྤྲོས་བྲལ་གྱི་དབྱིངས་མངོན་དུ་བྱས་ཚེ་ཡེ་ཤེས་རིག་པར་རང་ཤུགས་ཀྱིས་འཆར། ཡེ་ཤེས་རིག་པར་འཆར་བ་དེ་ཡང་དབྱིངས་ལས་མ་འདས་པས་ན། སྤྲོས་བྲལ་དོན་གྱི་ཡེ་ཤེས་མངོན་དུ་བྱས་པ་ན། ཁྱབ་བྱེད་ཀུན་གཞི་དང་། ཁྱབ་བྱ་སེམས་གཉིས་རང་ཡལ་དུ་དེངས་པ་ཞིག་ཡིན་ཏེ། ", + "<1><42>རྒྱུད་ལས།
[ཡེ་ཤེས་དྲན་གཞི་ཉིད་དང་བྲལ། །]
ཞེས་གསུངས་པས་", + "<1><42>ཀུན་གཞི་སེམས་ཡིད་ཀྱི་འཁྲུལ་ཆས་མ་བསླད་པའི། སྤྲོས་མེད་རྟོག་བྲལ་གྱི་ཡེ་ཤེས་དེའི་ངོ་རང་ཐོག་ཏུ་འཕྲོད་པ་ན། དེ་ལས་གཞན་པའི་ལམ་འཚོལ་བའི་ཐེ་ཚོམ་དང་བྲལ་བར་ཐག་གཅིག་ཐོག་ཏུ་ཆོད་འགྲོ། གང་དུ་ཐག་ཆོད་ཅིང་ངེས་ཤེས་འདྲོངས་ན། དེ་ཀའི་ངང་བོར་མེད་དུ་བསྐྱངས་ནུས་པ་འབྱུང་། དེ་འབྱུང་བ་ལས་གདེང་གྲོལ་ཐོག་ཏུ་བཅའ་ནུས་པ་ཡང་འབྱུང་བས། དེ་ལྟར་ན་གློ་བུར་ཐ་མལ་བའི་འཁྲུལ་བ་ཐལ་ཐོལ་འབྱུང་ཚེ།" + ] + } + } + }, + "ལམ།": { + "data": [ + "(དེ་ཇི་ལྟར་གྲོལ་ཚུལ་གྱི་རིམ་པ་ཡང་། དུག་ལྔ་མ་སྤངས་ཡེ་ཤེས་ལྔར་གྲོལ་བའི་ལམ་བཤད་པ་ལ་ལྔ་ལས།)" + ], + "འདོད་ཆགས་ཀུན་རྟོག་ཡེ་ཤེས་སུ་གྲོལ་ཚུལ།": { + "data": [ + "<1><43>(དང་པོ་)འདོད་ཆགས་ཀུན་རྟོག་ཡེ་ཤེས་སུ་གྲོལ་ཚུལ་ནི། {གཉིས་འཛིན་}སོགས་ཤོ་ལོ་ཀ་བཞི་དང་རྐང་པ་གཉིས་ཀྱིས་བསྟན་ཏེ། ཉོན་མོངས་དུག་ལྔ་ལས་འདོད་ཆགས་ནི་སྣང་བའི་ཆ་ལས་འཁྲུལ་བར་བཤད་པས། ཡུལ་གྱི་སྣང་བ་ལ་ཡིད་དུ་འོང་ངམ་མི་འོང་། ཡིད་འོང་ཡིན་ནམ་སྙམ་པའི་བློ་རྩེ་{གཉིས༵་}སུ་{འཛིན༵་}པ་ཅན་གྱི་{བློ༵་}{ནི༵་}ཡིད་གཉིས་སམ་{ཐེ༵་}{ཚོམ༵་}ཞེས་བྱ་{སྟེ༵}། ", + "<1><44>དེ་ལྟ་བུའི་རྩ་ཉོན་དེ་ལས་ཡིད་འོང་དུ་སྣང་བ་རིམ་བཞིན་རྒྱས་པའི་ཆ་ནས་སྲེད་ཅིང་{ཞེན༵་}པའི་འཛིན་{པ༵འང་}དང་པོ་{ཕྲ༵་}{མོ༵་}ཙམ་ལས་མ་སྐྱེས་ན་ཡང་། དེ་ལ་གཉེན་པོ་མ་བསྟེན་པར་ཞེན་ཆགས་རང་ཤུགས་ཀྱིས་{སྐྱེས༵་}བཅུག་སྟེ་གོང་འཕེལ་དུ་གཏོང་{པ༵་}དེ་{ལ༵}། ཆགས་ཞེན་གྱི་སྲེད་པའི་{བག༵་}{ཆགས༵་}ཕྲ་རིམ་ནས་གསོག་སྟེ་བག་ཆགས་{འཐུག༵་}{པོ༵འམ་}བརྟན་པོ་རུ་{རི༵མ་}{གྱིས༵་}{བརྟས༵་}ཤིང་རྒྱས་པར་འགྱུར་རོ། །", + "<1><45>དེ་ལྟ་ན་རོ་ཞིམ་བདའ་བའི་{ཟ༵ས}། བསགས་བསྲུང་བསྐྱང་བའི་{ནོར༵}། རིན་ཐང་ཆེ་བའི་རྒྱན་{གོས༵་}{དང༵་}། སྲ་ཡང་བདེ་བའི་{གནས༵་}{དང༵་}། རིང་ནས་འདྲིས་པའི་{གྲོགས༵་}བཤེས། མངོན་མཐོའི་དཔལ་གྱི་{འདོད༵་}པའི་{ཡོ༵ན་}ཏན་{ལྡ༵་}སྟེ་འབྱོར་བ་རྣམས་{དང༵་}། གཞན་ཡང་སྙིང་དུ་བཅུགས་ཤིང་{བྱམས༵་}བརྩེས་ཕན་ཚུན་སྦྲེལ་{བའི༵་}{གཉེན༵་}འདུན་སྟེ། དེ་ལྟ་བུའི་ཡུལ་དེ་རྣམས་ཀྱི་ཉེས་དམིགས་མ་མཐོང་བར་{ཡིད༵་}{འོང༵་}གི་རྣམ་ལྡན་དུ་ཤར་ནས་{ཆགས༵་}ཤིང་ཞེན་{པའི༵་}{འདོད༵་}{པས༵་}ཆེས་ཆེར་{གདུང༵ས་}ཤིང་མནར་བར་འགྱུར་རོ། །", + "<1><46>དེ་ལྟ་བུའི་འདོད་པ་ཡུལ་དང་བཅས་པ་{དེ༵་}{དག༵་}ཟག་བཅས་{འཇིག༵་}{རྟེན༵་}གྱི་ཆོས་ཉེར་ལེན་གྱི་ཕུང་པོས་བསྡུས་པའི་སྡུག་བདེན་{འཁྲུལ༵་}{བའི༵་}རང་བཞིན་ཁོ་ན་ཅན་{སྟེ༵}། འཇིག་རྟེན་འདིར་ཡང་འདོད་པ་དེས་ངོམས་པ་མེད་པར་མ་ཟད་སྲེད་པ་ལྷག་པར་འཕེལ་ཏེ། སྲེད་ཡུལ་དེ་དག་གི་མིང་བརྡ་ཙམ་དང་། བརྗོད་བྱའི་ངོ་བོ་ཙམ་མམ་དོན་དེའི་སྤྱི་ཙམ་འཛིན་པ་ནི། ", + "<1><47>{གཟུང༵་}བ་ཡུལ་གྱི་སེམས་དང་། ཡུལ་དེ་དག་གི་རྗོད་བྱེད་དང་བརྗོད་བྱའི་བྱེ་བྲག་གི་ཁྱད་པར་ཞིབ་མོར་འབྱེད་པ་ནི་{འཛིན༵་}པ་ཡུལ་ཅན་གྱི་སེམས་ཞེས་བྱ་ལ། དེ་ལྟ་བུའི་གཟུང་འཛིན་གྱི་སེམས་ཀྱི་ངོ་བོར་མཆེད་པའི་ཆགས་ཞེན་གྱིས་མནར་ཚབ་ཤིན་ཏུ་ཆེ་བ་དང་། ཆགས་སྲེད་དེས་བསགས་པའི་སེམས་པ་དང་བསམ་པའི་{ལས༵་}ཀྱི་རྣམ་གྲངས་{ལ༵་}{ཟད༵་}པའི་{མཐའ༵་}{མེད༵་}པར་སྐད་ཅིག་རེ་རེ་ནས་ཀྱང་ངང་གིས་བསགས་པ་དང་གསོག་པར་འགྱུར་རོ། །", + "<1><48>ཕྱི་མའི་དུས་སུ་ཡང་{ཞེན༵་}པ་དང་སྲེད་{པའི༵་}{འབྲས༵་}{བུ༵་}དེ་རྣམ་པར་{སྨིན༵་}ནས་དེ་ཉམས་སུ་མྱོང་{བའི༵་}{ཚེ༵་}ན། ཟས་སྐོམ་སོགས་ལ་{རྐམ༵་}{ཆགས༵་}{གདུངས༵་}པའི་སྡུག་བསྔལ་ལ་སྤྱོད་{པའི༵་}གྲོང་ཁྱེར་སེར་སྐྱ་ལྟ་བུའི་{ཡི༵་}{དྭགས༵་}ཀྱི་གནས་རྣམས་{སུ༵}། {སྐྱེས༵་}{ནས༵་}ཕྱིའི་སྒྲིབ་ཅན་དང་།ནང་གི་སྒྲིབ་ཅན་སྒོས་ཁུར་གྱི་སྒྲིབ་ཅན་ལྟ་བུར་{བཀྲེས༵་}{སྐོམ༵་}ཚ་གྲང་ངལ་འཇིགས་སོགས་{ཡ༵་}{རེ༵་}{ང༵་}བའི་སྡུག་བསྔལ་མི་བཟད་པ་དུ་མ་ཡུན་རིང་མྱོང་བར་འགྱུར་བའོ། །", + "<1><49>དེ་ལྟར་འཁྲུལ་བ་ཐ་མལ་དུ་ཤོར་བས་སྡུག་བསྔལ་བསྐྱེད་པ་དེ་ལྟ་ན། {སངས༵་}{རྒྱས༵་}ཀུན་ཏུ་བཟང་པོ་{ང༵་}{ཡི༵་}དགོངས་{སྨོན༵་}ཐམས་ཅད་ཀྱི་མཐར་ཐུག་སྙིང་པོ་དོན་གྱི་ཉེ་{ལམ༵་}འཁྲུལ་བ་མ་སྤངས་ཡེ་ཤེས་སུ་ཡེ་གྲོལ་གྱི་དགོངས་པ་ལ། གཉེན་པོ་དང་ཡུལ་དུས་གཞན་ལ་ལྟོས་པ་དང་བྲལ་བར་དྲི་མེད་གྱི་ཡེ་ཤེས་རང་ཉིད་རྗེན་ཕྱུང་བཅོས་མེད་རང་བབས་སུ་བསྐྱངས་པའི་ཐབས་མཁས་ཀྱི་འཕྲུལ་གསང་ཟབ་མོའི་མཐུ་བྱིན་{གྱིས༵}། འཁྲུལ་བ་རང་སར་དག་སྟེ། ", + "<1><49>མུ་ཏིག་ཕྲེང་བ་ལས།
[སེམས་ཅན་འཁོར་བ་དེ་དག་ནི། །
རང་གི་རྣམ་རྟོག་ལས་ཀྱིས་བཅིངས། །
རང་བཞིན་མེད་ཅིང་གྲོལ་བར་ངེས། །]
ཞེས་", + "<1><49>རང་གནས་ཀྱི་ཡེ་ཤེས་ལས་མ་གཡོས་པ་ལ་འཁྲུལ་བའི་སྟོབས་ནུས་དབང་དུ་བྱས་པའི་སྒོ་ནས་འཁྲུལ་བ་ལྟར་སྣང་ཙམ་ལས། རང་མཚན་པས་གོས་པ་མེད་པ་དང་ ། འཁྲུལ་བའི་རང་བཞིན་དབང་དུ་མ་གྱུར་པར་རིག་པའི་རང་མལ་ནས་ཡན་ཏེ་རྩལ་ཐོག་ཏུ་ཤོར་བ་ལས་འཁྲུལ་བའི་སྟོབས་ནུས་ཐོགས་མེད་རྙེད་དེ་འཇོམས་པར་གསུངས་པས། ", + "<1><49>ལམ་མཆོག་འདིར་འཁྲུལ་གྲོལ་གྱི་ཚུལ། ཉན་རང་ལྟར་སྤོང་པ། སེམས་དཔའ་ལྟར་སྦྱོང་བ། བསྐྱེད་རྫོགས་ལྟར་བསྒྱུར་བ་ཕྱི་ལྟར་གཉེན་པོས་འདུལ་བ། སེམས་སྡེ་ལྟར་རང་ལུགས་སུ་འཇོག་པ། ཀློང་སྡེ་ལྟར་ཆོས་ཉིད་གཅིག་ཏུ་བྱེད་པ་ལྟ་བུས་དག་པ་མ་ཡིན་པར་རང་བཞིན་སེམས་ལས་འདས་པའི་ཡེ་ཤེས་རང་གནས་མངོན་དུ་བྱས་པ་དེ་ཙམ་གྱིས་འཁོར་བའི་སྲོག་མཁར་དུས་གཅིག་ལ་གཞོམ་ཐབས་རྨ་མེད་པ་སྟེ། ", + "<1><49>ཉི་ཟླ་ཁ་སྦྱོར་ལས།
[དེ་བཞིན་ཉིད་ནི་མ་རྟོགས་ན། །
རྣལ་འབྱོར་ལུས་དང་གྲིབ་མ་བཞིན། །
དེ་ལས་དེ་ཉིད་རང་བྱུང་བས། །
སྤངས་པས་སྤོངས་པ་མ་ཡིན་ནོ། །
དེ་བཞིན་སྦྱངས་པས་ཀྱང་ནི་མིན། །
བསྒྱུར་བས་ཡང་ནི་མི་འགྱུར་རོ། །]
ཞེས་", + "<1><49>ཆུའི་རིས་ལྟར་རང་གྲོལ་གྱི་གནད། དབང་པོའི་བྱེ་བྲག་གིས་འབད་པས་གྲོལ་བ་སྔར་འདྲིས་ཀྱི་མི་འཕྲད་པ་ལྟ་བུའི་གྲོལ་ཚུལ་ཞེས་རྣམ་རྟོག་གང་སྐྱེས་དེས་དབང་དུ་བྱས་ཀྱང་སླར་ཡང་དྲན་རྩོལ་གྱི་མཐུས་རང་གནས་ཀྱི་ཀློང་དུ་ཚུར་བཀུག་སྟེ་དེས་གྲོལ་བའོ། ། ", + "<1><49>འབད་མེད་དུ་གྲོལ་བ་ལའང་གཉིས་ཏེ། དང་པོ་རྣམ་རྟོག་རང་གྲོལ་སོང་བ་སྦྲུལ་མདུད་གྲོལ་བ་ལྟ་བུའི་གྲོལ་ཚུལ་རྣམ་རྟོག་སྐྱེས་ཙམ་ནས་ཚུར་གཉུག་མའི་ཡེ་ཤེས་ཀྱི་སྟེང་དུ་རང་ཤུགས་ཀྱིས་བབས་ནས་གྲོལ་བའོ། །གཉིས་པ་ནི་རྣམ་རྟོག་ཕན་གནོད་མེད་པ་ཁང་སྟོང་དུ་རྐུན་མ་ཞུགས་པའི་གྲོལ་ཚུལ་རྣམ་རྟོག་ཐལ་ཐོལ་གང་བྱུང་ཡང་། དེ་དག་གིས་རང་གནས་ཆོས་ཉིད་ཀྱི་ཀློང་ལས་འཕྲོག་ནུས་མེད་པར་ཁོ་སྐྱེས་པ་ལྟར་སྣང་ཡང་སྐྱེ་བ་རང་མཚན་པས་སྟོང་སྟེ། སྐྱེས་ཙམ་ནས་རང་སར་གྲོལ་བའོ། །", + "<1><49>དེ་ལྟར་ན་སྔར་བསྟན་པའི་ཆགས་ཞེན་གྱི་ཡུལ་རྣམས་ལ་{འདོད༵་}ཅིང་{ཆགས༵་}པའི་སྲེད་{ཞེན༵་}དྲག་པོ་སྐྱེས་ཏེ་དེའི་དབང་དུ་གྱུར་{པའི༵་}{སེམ༵ས་}{ཅ༵ན་}{རྣམ༵ས་}ཀྱིས་ཀྱང་། ཐེག་པ་སྤྱི་ལྟར་གཉེན་པོ་གཞན་སྟོབས་ཀྱིས་{འདོད༵་}པ་ཆགས་ཞེན་གྱི་སྲེད་{པའི༵་}{གདུང༵་}{བ༵་}ཉིད་རང་རྒྱུད་ནས་{ཕྱིར༵་}སྤངས་པ་ལྟ་བུའི་རྩོལ་བཅས་ཀྱི་ངལ་ལས་ལ་ལྟོས་པའང་མ་ཡིན་པས་{མ༵་}{སྤང༵ས་}", + "<1><50>སྐྱེ་བོ་ཐ་མལ་བ་ལྟར་ཆགས་ཡུལ་གྱི་སྟེང་དུ། {འདོད༵་}ཅིང་{ཆགས༵་}པའི་ཆགས་སྲེད་ཀྱི་{ཞེན༵་}{པ༵་}རྒྱུན་ཆད་མེད་ལྟར་རྒྱ་འབྱམས་སུ་{ཚུར༵་}རང་རྒྱུད་ལ་བརྟེན་པ་ལྟ་བུའི་དང་དུ་ཡང་{མ༵་}{བླང༵ས་}ཏེ་མ་བསྒྲུབས་པར། ", + "<1><51>འདོད་ཞེན་སོགས་{ཤེས༵་}{པ༵་}དེའི་གཉུག་མའི་རང་བཞིན་ནི་གློ་བུར་དུ་གྲོལ་བ་ལྟ་བུ་མིན་པར། ཡེ་ཐོག་མ་ནས་ཡེ་གྲོལ་གྱི་ངོ་བོར་བཞུགས་ཏེ། བརྟེན་པའི་གཞི། འབྱུང་བའི་རྩ་བ། གནས་པའི་མཚན་ཉིད་སོགས། སྐྱེ་འགག་ཅན་གྱི་གློ་བུར་དྲི་མའི་སྤྲོས་པའི་ཆོས་དང་བྲལ་བའི་སྤྲོས་བྲལ་སྟོང་པའི་དབྱིངས་དྲི་མེད་ཀྱི་ཡེ་ཤེས་ལ་བསྐྱལ་ནས་དག་བྱའམ་བྲལ་བྱའི་དྲི་མ་མེད་པས་བསྐྱལ་གཞི་ཀུན་དང་བྲལ་བའོ། ། ", + "<1><51>དེ་ལྟར་རང་ངོ་འཁྲུལ་ཆས་མ་བསླད་པའི་ཡེ་ཤེས་དེ་གློ་བུར་དྲི་མའི་གཤིས་སུ་འདུ་འབྲལ་སྤངས་ཏེ་དྲི་མའི་ཆོས་ཉིད་རང་ཡིན་པས། དྲི་མ་རང་གི་གཉེན་པོར། རང་གི་ཆོས་ཉིད་གཉུག་མ་རང་བྱུང་གི་ཡེ་ཤེས་སུ་{རང༵་}{སར༵་}བཅོས་མེད་དུ་{ཀློད༵་}དེ་མངོན་དུ་བྱས་{པ༵་}དེ་ཀ་{ཡིས༵་}གྲོལ་གྱི་གྲོལ་བྱེད་ཀྱི་གཉེན་པོ་གཞན་ལ་རག་ལས་པ་མེད་པས་གཉེན་པོ་དང་བྲལ་བའོ། ", + "<1><51>དེ་ལྟར་གྲོལ་བ་དེའང་ཆགས་སོགས་ཀྱི་དྲི་མའི་ཆོས་ཉིད་མངོན་དུ་བྱས་ཏེ་དེའི་ཕྱིས་སུ་གྲོལ་བ་ལྟ་བུ་མིན་པར།དྲི་མའི་གནས་ལུགས་མཐོང་བའི་སྐད་ཅིག་དང་པོ་རང་ལ་{རི༵ག་}{པ༵་}རང་གི་རང་སའི་རང་མལ་ཆོས་ཉིད་ཀྱི་ཡེ་ཤེས་དེ་{རང༵་}{སོ༵་}{ཟིན༵་}ཏེ་གཅེར་ཙམ་མམ་མཐོང་ཙམ་མངོན་དུ་བྱས་པའི་སྐད་ཅིག་དེ་ནས་གྲོལ་བས་སྣང་བ་སྣང་ཐོག་ཏུ་སྣང་བ་ཙམ་དང་། ཤེས་པ་འགྱུ་ཐོག་ཏུ་འགྱུ་བ་ཙམ་ནས་རང་གྲོལ་དུ་སོང་། མཐོང་སར་ཡལ་བའོ། །", + "<1><51>དེ་ལྟར་དྲི་མ་འདོད་ཆགས་ལྟ་བུ་གཅིག་ལའང་གནས་ལུགས་ཕྱོགས་ལྷུང་དང་བྲལ་བར་དྲི་མ་ཀུན་ལ་ཁྱབ་པའི་ཚུལ་གྱིས་བཞུགས་པས། དྲི་མའི་དབྱེ་བའི་གྲངས་དང་མཉམ་པའི་གཉེན་པོ་ཐ་དད་ལ་ལྟོས་པ་མེད་པར། རང་རང་གི་གཤིས་ལུགས་རྟོག་བྲལ་གྱི་ཡེ་ཤེས་གཅིག་པུ་དེའི་མཐུས་སྔར་བཞིན་གྲོལ་བར་{གྱུར༵་}{ནས༵་}གཅིག་ཤེས་ཡོངས་གྲོལ་དང། རྩོལ་བྲལ་ལྷུན་གྲུབ་ཀྱི་མན་ངག་ཞེས་བྱའོ། །", + "<1><51>དེ་ལྟར་ཡེ་གྲོལ་གྱི་ཡེ་ཤེས་རང་གི་ངོ་བོ་མཐོང་པ་ན། དེ་མཐོང་བའི་སྐད་ཅིག་དེ་ལ་གཅེར་གྲོལ་དུ་འགྲོ་བའི་གྲོལ་བ་དེའི་ངོ་བོ་ནི་སྐྱེ་འགག་དང་། གཅིག་ཐ་དད་ཡིན་མིན་སོགས་སྤྲོས་པའི་མཐའ་ལས་གྲོལ་པའི་ཆོས་ཉིད་ལས་མ་འདས་པ་ཁོ་ན་ཡིན་ཏེ། ", + "<1><51>ཐལ་འགྱུར་ལས།
[ཡེ་ནས་གྲོལ་བས་བསྐྱལ་གཞི་མེད། །
རང་གིས་གྲོལ་བས་གཉེན་པོ་མེད། །
གཅེར་གྱིས་གྲོལ་བས་མཐོང་སར་ཡལ། །
ཡོངས་སུ་གྲོལ་བས་འབད་པ་མེད། །]
ཅེས་གསུངས་པ་ལྟར།", + "<1><51>དེ་ལྟར་གྲོལ་བའི་ཡོན་ཏན་ལྔ་ལྡན་གྱི་སྒོ་ནས་འདོད་ཆགས་རང་སར་གྲོལ་བའི་སོ་སོར་{ཀུན༵་}{རྟོ༵གས་}ཤིང་མཁྱེན་པའི་{ཡེ༵་}{ཤེས༵་}ཉིད་མངོན་དུ་བྱས་ཏེ་{ཐོབ༵་}ནུས་{པར༵་}{ཤོག༵་}ཅེས་པའོ། །" + ] + }, + "ཞེ་སྡང་གསལ་བའི་ཡེ་ཤེས་སམ། མེ་ལོང་ཡེ་ཤེས་སུ་གྲོལ་ཚུལ།": { + "data": [ + "<1><52>(གཉིས་པ།) ཞེ་སྡང་གསལ་བའི་ཡེ་ཤེས་སམ། མེ་ལོང་ཡེ་ཤེས་སུ་གྲོལ་ཚུལ་ནི། {ཕྱི་རོལ་ཡུལ་གྱི་སྣང་བ་ལ་}སོགས་ཤོ་ལོ་ཀ་གསུམ་གྱིས་བསྟན་ཏེ། ཞེ་སྡང་ནི་བསྐྱེད་པའི་རིམ་པ་ལས་འཁྲུལ་པར་བཤད་པས་ནང་སེམས་མེད་རླུང་མཁྲིས་སོགས་འདུ་བའི་ནད་དང་། {ཕྱི༵་}{རོལ༵་}གྱི་སེམས་མེད་འབྱུང་བཞིའི་གནོད་པ་སེམས་ཅན་དགྲས་གནོད་པ་སོགས་གནོད་སྐྱེལ་བའི་{ཡུལ༵་}རྣམས་ལ་དམིགས་ཏེ། ", + "<1><52>སྔོན་ཕྱི་ད་ལྟ་རྣམས་སུ་འདི་ཉིད་ཀྱིས་བདག་ལ་གནོད་པ་བྱས་སོ་བྱེད་དོ་བྱེད་པར་འགྱུར་རོ་སྙམ་པ་ལྟ་བུའི་ཀུན་ནས་མནར་སེམས་པ་དགུའི་དངོས་པོ་ལས་ཡིད་དུ་མི་འོང་བའི་རང་བཞིན་{གྱི༵་}{སྣང༵་}{བ༵་}ཤར་ཏེ། དེས་བདག་{ལ༵་}། ཡིད་མི་བདེ་བའི་{འཇི༵གས་}{སྐྲག༵་}གི་{ཤེས༵་}{པ༵་}{ཕྲ༵་}{མོ༵་}{འ༵གྱུ་}ཞིང་བྱུང་ལ་དེའི་སྟོབས་ཀྱིས། ", + "<1><53>གནོད་ཡུལ་དེ་དག་ལ་དམིགས་པའི་ཞེ་{སྡང༵་}{བའི༵་}{བག༵་}{ཆ༵གས་}རིམ་པར་མཆེད་ཅིང་{བརྟས༵་}{པ༵་}{ལས༵}། གནོད་བྱེད་{དགྲ༵་}རུ་མཐོང་ཞིང་{འཛི༵ན་}པའི་ཞེ་སྡང་ཁོང་ཁྲོའི་བསམ་པའི་ཤུགས་སྟོབས་རྙེད་ནས། ཡུལ་དེ་དག་གི་ལུས་ལ་བརྡེག་པ་སྲོག་ལ་རྒོལ་བའི་{བརྡེག༵་}{གསོ༵ད་}ཀྱི་གནོད་སེམས་{ཧྲ༵གས་}{པ༵་}{སྐྱེས༵་}ཏེ་བསྐལ་པ་དུ་མའི་དགེ་རྩ་འཇོམས་པ། མཛའ་བཤེས་སྐྱོ་ཞིང་འཁོར་སྡུད་མེད་པ། ཉིན་མཚན་དུ་ལུས་སེམས་བདེ་བའི་འདུ་ཤེས་མེད་པས་འདོད་ཡོན་མི་མྱོང་བ་སོགས་རང་གཞན་ལ་ཚེ་འདིར་ཡང་སྡུག་བསྔལ་དུ་མའི་གནས་སུ་གྱུར་པ་དང་། ", + "<1><54>ཕྱི་མར་ཡང་{ཞེ༵་}{སྡང༵་}དེའི་རྣམ་སྨིན་དང་རྒྱུ་མཐུན་སོགས་ཀྱི་{འབྲས༵་}{བུ༵་}{སྨིན༵་}{པའི༵་}{ཚེ༵་}ན། ཚ་གྲང་གི་{དམྱལ༵་}{བར༵་}ལྟུང་སྟེ་{བཙོ༵་}{བསྲེ༵གས་}བརྡེག་གཅོད་སོགས་ཚ་གྲང་གི་གནོད་པ་དུ་མ་འཁོར་མོ་ཡུག་ཏུ་སྤྱད་ཚེ་{སྡུག༵་}{རེ༵་}{བསྔ༵ལ་}ཞིང་འོ་རེ་བརྒྱལ་ཡང་མི་འདོད་བཞིན་དུ་མྱོང་བ་ལས་རང་བྱས་ཀྱི་ལས་ཀྱིས་དབང་མེད་བྱས་པ་ལ་ཐབས་ཅི་བྱར་ཡོད་དེ་གང་ཡང་བྱ་ཐབས་བྲལ་བའོ།", + "<1><55>དེ་ལྟར་ཞེ་སྡང་འཁྲུལ་བའི་ཉེས་དམིགས་ལ་བསམས་ཚེ། འདི་གནོད་བྱེད་ཆེ་ཤོས་སུ་སྣང་བས། འདི་ཡུལ་མེད་དུ་སངས་ཐབས་ཀྱི་གཉེན་པོ་མཐར་ཐུག་ནི་{སང༵ས་}{རྒྱས༵་}ཀུན་ཏུ་བཟང་པོ་{ང༵་}{ཡི༵འམ་}དེ་ཉིད་ཀྱི་{སྨོན༵་}{ལ༵མ་}དགོངས་མཁྱེན་གྱི་རྟོགས་པ་འོད་གསལ་རྫོགས་པ་ཆེན་པོའི་ལམ་གྱི་བྱེད་པའི་སྟོབས་{ཀྱིས༵}། སྲིད་པའི་ལམ་དུ་དབང་མེད་དུ་རྒྱུ་ཞིང་{འགྲོ༵་}བའི་མགྲོན་པོ་རིགས་{དྲུག༵་}གི་སྡུག་བསྔལ་དུ་མར་སྤྱོད་པའི་{སེམ༵ས་}{ཅ༵ན་}{ཐམ༵ས་}{ཅ༵ད་}ཀུན་{གྱིས༵}། དེ་ལྟར་ཉེས་རྒུད་དུ་མའི་རྩ་བར་གྱུར་བའི་རྒྱུ་ཚུལ་མིན་ཡིད་བྱེད་ཀྱིས་དྲངས་པའི་{ཞེ༵་}{སྡང༵་}{དྲག༵་}{པོ༵་}གློ་བུར་{སྐྱེས༵་}{པའི༵་}{ཚེ༵}། ", + "<1><55>རྩོལ་བཅས་ཀྱི་ལམ་ལ་བརྟེན་ནས་{སྤང༵་}{བར༵་}ཡང་{མི༵་}{བྱ༵་}སྟེ་སྤང་པ་ཡང་མ་ཡིན། ཞེ་སྡང་ཐ་མལ་དུ་རང་དགར་སྐྱེར་བཅུག་པ་ལྟ་བུ་ཡང་མིན་པར་སྔར་ལྟར་ཞེ་སྡང་གི་ཆོས་ཉིད་རིག་པའི་ངོ་བོ་ཡེ་གྲོལ་གྱི་དབྱིངས་ལ་རང་བབས་{རང༵་}{སར༵་}{ཀློད༵་}པ་ལས་", + "<1><56>རང་གྲོལ་དུ་རིག་ངོ་མངོན་དུ་བྱས་པ་ཙམ་ལས་གྲོལ་ཏེ། {རིག༵་}{པ༵་}རང་གི་གནས་ལུགས་ལ་{རང༵་}{སོ༵་}{ཟིན༵་}པར་{གྱུར༵་}{ནས༵}། རང་གི་ཆོས་དབྱིངས་རང་ལ་{གསལ༵་}ཅིང་རིག་{པའི༵་}མེ་ལོང་ལྟ་བུའི་{ཡེ༵་}{ཤེས༵་}མངོན་དུ་གྱུར་ཏེ་{ཐོབ༵་}{པར༵་}{ཤོག༵་}ཅེས་པའོ། །" + ] + }, + "ང་རྒྱལ་མཉམ་ཉིད་ཡེ་ཤེས་སུ་གྲོལ་ཚུལ།": { + "data": [ + "<1><57>(གསུམ་པ་)ང་རྒྱལ་མཉམ་ཉིད་ཡེ་ཤེས་སུ་གྲོལ་ཚུལ། {རང་སེམས་ཁེངས་པར་གྱུར་པ་ལས་}སོགས་ཤོ་ལོ་ཀ་གཉིས་དང་རྐང་པ་གསུམ་གྱིས་བསྟན་ཏེ།ཉོན་མོངས་པ་ང་རྒྱལ་ནི་ལྟ་བའི་ཆ་ལས་འཁྲུལ་བར་བཤད་པས་ང་རྒྱལ་བདག་ལྟ་ལས་བྱུང་ཞིང་།རང་གི་མངོན་མཐོའི་ཡོན་ཏན་རིགས་གཟུགས་ཐོས་པ་ལང་ཚོ་དབང་ཐང་སོགས་མཐོ་ཞིང་རྒྱས་པ་ལ་དམིགས་ནས་རྣམ་པ་{རང༵་}{སེམ༵ས་}{ཁེང༵ས་}པའམ་རྒྱགས་པ་ཉིད་སྐྱེས་ལ་དེ་སྐྱེས་{པར༵་}{གྱུར༵་}{པ༵་}{ལས༵}། ", + "<1><57>རང་དང་ཡོན་ཏན་ན་མཉམ་པའི་གང་ཟག་{གཞན༵་}གྱི་ཡོན་ཏན་དེ་{ལ༵་}དམིགས་ནས་རྣམ་པ་དེ་ལས་བདག་ལྷག་འདོད་ཀྱི་{འགྲན༵་}{སེམ༵ས་}དང་དེའི་སྐྱོན་བརྗོད་འདོད་ཀྱི་{སྨད༵་}{པའི༵་}{བློ༵་}ངན་དེ་སྐྱེས་པ་ཡི་དབང་གིས་དང་། ", + "<1><58>ཡང་རང་གི་ཡོན་ཏན་ལ་དམིགས་ཏེ་རྣམ་པ་གཞན་ལས་ལྷག་པར་འཛིན་པའི་{ང༵་}{རྒྱལ༵་}ཁེངས་ཤིང་{དྲེགས༵་}པའི་{སེམ༵ས་}སྟོབས་ཤུགས་དྲག་པོར་{སྐྱེས༵་}{པ༵་}{ལས༵}། {བདག༵་}ཡོན་ཏན་དམན་པ་དང་། མཉམ་པ་{གཞན༵་}དེ་དང་ལྷན་དུ་{འཐབ༵་}ཅིང་{རྩོད༵་}པའི་{སྡུག༵་}{བསྔལ༵་}དུ་མ་ལ་{སྤྱོད༵་}ནས་ཚེ་འདིར་ཡང་མནར་ལ། ", + "<1><59>ཕྱི་མར་ཡང་{ལས༵་}ངན་{དེའི༵་}{འབྲས༵་}{བུ༵་}དངོས་སུ་{སྨིན༵་}{པའི༵་}{ཚེ༵་}དམྱལ་བའི་གནས་སུ་སྡུག་བསྔལ་ལ་ལོངས་སྤྱོད་དགོས་པར་མ་ཟད་གཞན་བསོད་ནམས་དགེ་བའི་རྣམ་སྨིན་གྱི་འབྲས་བུར་འདོད་པའི་ལྷ་ལྟ་བུར་སྐྱེས་སུ་ཆུགས་ཀྱང་དེར་སྐྱེས་བཞིན་པར་ཡང་མྱོང་བ་རྒྱུ་མཐུན་གྱི་འབྲས་བུ་ལ་མཐོ་རིས་ཀྱི་དཔལ་ལས་{འཕོ༵ས་}ཏེ་ངན་སོང་སོགས་སུ་{ལྟུང༵་}བའི་སྡུག་བསྔལ་ཤུགས་དྲག་མང་པོ་{མྱོང༵་}དགོས་ཀྱི་{ལྷ༵་}ལྟ་བུ་{རུ༵་}{སྐྱེས༵་}པའོ། །", + "<1><60>དེ་ལྟ་ན་འདི་ཕྱི་གཉིས་ཆར་ཉེས་པའི་གཞི་རྩར་གྱུར་པ་དེའི་ཕྱིར་ན་ཐོག་མའི་{ས༵ངས་}{རྒྱས༵་}ཀུན་བཟང་{ང༵་}{ཡི༵་}དགོངས་{སྨོན༵་}དམ་པ་ཨ་ཏིའི་{ལམ༵་}མཆོག་གི་མཐུ་བྱིན་{གྱིས༵}། ང་རྒྱལ་{ཁེང༵ས་}{སེམ༵ས་}ཀྱི་བློ་ངན་ཤུགས་དྲག་{སྐྱེས༵་}ཏེ་དབང་མེད་དུ་བྱས་{པའི༵་}{སེམ༵ས་}{ཅ༵ན་}{རྣམས༵་}ཀྱིས། ཁེངས་སེམས་ང་རྒྱལ་སྐྱེས་པ་{དེའི༵་}{ཚེ༵་}དེའི་ཆོས་ཉིད་རིག་པའི་ཡེ་ཤེས་སུ་{ཤེས༵་}{པ༵་}མ་བཅོས་{རང༵་}{སར༵་}{ཀློད༵་}དེ་བཞག་པ་ལས། ", + "<1><61>{རིག༵་}{པ༵་}རང་མལ་དུ་{རང༵་}{སོ༵་}{ཟིན༵་}པར་{གྱུར༵་}{ནས༵}། སྟོང་གསལ་དབྱེར་མེད་{མཉམ༵་}པ་{ཉིད༵་}ཀྱི་{ཡེ༵་}{ཤེས༵་}མངོན་དུ་གྱུར་ནས་{ཐོབ༵་}{པར༵་}{ཤོག༵་}ཅེས་པའོ། །" + ] + }, + "ཕྲག་དོག་དང་འགྲན་སེམས་བྱ་བ་ལྷུན་གྲུབ་ཀྱི་ཡེ་ཤེས་སུ་གྲོལ་བར་བསྟན་པ།": { + "data": [ + "<1><62>(བཞི་པ།) ཕྲག་དོག་དང་འགྲན་སེམས་བྱ་བ་ལྷུན་གྲུབ་ཀྱི་ཡེ་ཤེས་སུ་གྲོལ་བར་བསྟན་པ། {གཉིས་འཛིན་བརྟས་པའི་བག་ཆགས་ཀྱིས༔} སོགས་ཤོ་ལོ་ཀ་གཉིས་དང་རྐང་པ་གཉིས་ཀྱིས་བསྟན་ཏེ། ", + "<1><62>ཕྲག་དོག་ནི་མ་རྟོགས་པའི་ཆ་ལས་འཁྲུལ་བར་བཤད་པས།བདེན་ཞེན་དང་བཟང་ངན་སོགས་མཉམ་ཉིད་ཀྱི་དོན་མ་རྟོགས་པ་ལས་བདག་དང་གཞན་གཉིས་སུ་བཟུང་སྟེ་དེ་{གཉིས༵་}ཀྱི་ཡོན་ཏན་ལ་བཟང་ངན་གཉིས་སུ་{འཛིན༵་}པའི་བདག་དང་། བདག་གི་བའི་འཛིན་པ་རྒྱས་ཤིང་{བརྟས༵་}{པའི༵་}བག་ཆགས་འཐུག་པོ་བཞག་པའི་{བག༵་}{ཆགས༵་}དེའི་སྟོབས་{ཀྱིས༵}། {བདག༵་}ལ་{བསྟོད༵་}པ་དང་། {གཞན༵་}ལ་{སྨོད༵་}པའི་ཆགས་སྡང་གི་{ཟུག༵་}{རྔུ༵་}སེམས་ལ་བཏབ་{པའི༵་}{ལས༵་}འཇིག་རྟེན་ཆོས་བརྒྱད་དགག་སྒྲུབ་ལ་གཅིག་ཏུ་གཞོལ་ཏེ། ", + "<1><62>དགྲ་ཟླ་ལ་{འཐབ༵་}{རྩོད༵་}{འགྲན༵་}{སེམ༵ས་}དང་། གཉེན་ཕྱོགས་ལ་ཞེན་སྲེད་ཀྱི་སེམས་{བརྟས༵་}ཤིང་རྒྱས་པ་ལས་ཚེ་འདིར་ཡང་མནར་ལ། ཕྱི་མར་ཡང་། དེ་ལྟ་བུའི་ཕྲག་དོག་དང་དེས་བསགས་{པའི༵་}ལས་དང་དེ་དག་གི་ཀུན་སློང་དང་བཅས་པའི་དབང་{ལས༵་}མྱོང་བ་རྒྱུ་མཐུན་དང་སྐྱེས་བུའི་བྱེད་འབྲས་ནི། {གསོ༵ད་}{གཅོད༵་}ཀྱི་སྡུག་བསྔལ་གྱིས་མནར་བའི་{ལྷ༵་}{མིན༵་}གྱི་{གནས༵་}{སུ༵་}{སྐྱེས༵་}པ་དེའི་སྐབས་སུ་ཡང་སྨིན་ཏེ། ལྷ་མིན་གྱིས་ལྷ་རྣམས་དང་འགྲན་རྩོད་པའི་ཕྲག་དོག་གིས་ཡིད་གདུངས་པ་སོགས་སྡུག་བསྔལ་བར་འགྱུར་བའོ། ། ", + "<1><63>རྣམ་སྨིན་གྱི་{འབྲས༵་}{བུ༵་}ཚ་གྲང་གི་{དམྱལ༵་}{བའི༵་}{གནས༵་}{སུ༵་}{ལྟུང༵་}སྟེ་སྡུག་བསྔལ་མྱོང་བའོ། །གཞན་གྱི་ཟས་ལ་རེ་བའི་བྲན་དང་སེམས་གླེན་པ་ལུས་མདོག་ཉམས་པ་མི་སྡུག་པའི་མིའི་ལུས་ལེན་པར་ཡང་འགྱུར་རོ། །", + "<1><64>དེ་ལྟར་འདི་དང་ཕྱི་མར་ཉེས་པའི་རྩ་བ་ཡིན་པ་དེ་ལྟ་ན་ཐོག་མའི་{སངས༵་}{རྒྱས༵་}{ང༵་}{ཡི༵་}གསང་གསུམ་ཡོན་ཏན་གྱི་གཏེར་མཛོད་དམ་པ་ཐུགས་{སྨོན༵་}ཐམས་ཅད་ཀྱི་སྐྱེལ་སོ། ཐེག་པའི་རྩེ་རྒྱལ་གྱི་{ལམ༵་}མཆོག་ཉིད་{ཀྱི༵་}མཐུས། སེམས་ཅན་{འགྲན༵་}{སེམ༵ས་}{འཐབ༵་}{རྩོད༵་}ཀྱི་ལས་རྣམས་ལ་ངང་གིས་འཇུག་པའི་རྒྱུ་རྩ་གཅིག་པུ་ཕྲག་དོག་དེའི་བག་ཆགས་{བརྟས༵་}ཤིང་ནུས་སྟོབས་སྨིན་པའི་ཚེ། ཕྲག་དོག་རང་དགར་སྐྱེས་ཏེ་{དགྲར༵་}{འཛིན༵་}གྱི་སེམས་བྱུང་རྒྱལ་དུ་གཏོང་བའང་{མི༵་}{བྱ༵་}སྟེ་བྱས་པ་མ་ཡིན། ", + "<1><64>སྤྱི་ལྟར་བཅོས་མའི་ལམ་གྱི་བྱེད་པས་སྤང་བ་ལའང་ལྟོས་པ་མིན་པར། ཕྲག་དོག་རང་གི་གནས་ཚུལ་ཀ་དག་སྤྲོས་བྲལ་ཐིག་ལེ་ཉག་གཅིག་ཏུ་{རང༵་}{སར༵་}{ཀློད༵་}པ་ལས། ", + "<1><65>གཉུག་མའི་{ཤེས༵་}པ་ཐུགས་རྗེ་རིག་{པའི༵་}ཡེ་ཤེས་ཀྱི་{རང༵་}{སོ༵་}{ཟིན༵་}པར་{གྱུར༵་}པ་ཡི་སྒོ་{ནས༵}། འབད་མེད་ལྷུན་གྲུབ་ཀྱི་{ཕྲིན༵་}{ལས༵་}{ཐོགས༵་}མེད་དུ་མངའ་བའི་བྱ་བ་གྲུབ་པའི་{ཡེ༵་}{ཤེས༵་}ཉིད་མངོན་དུ་གྱུར་བར་{ཤོག༵་}ཅེས་པའོ། །" + ] + }, + "གཏི་མུག་རྟོག་མེད་ཆོས་དབྱིངས་ཡེ་ཤེས་སུ་གྲོལ་ཚུལ།": { + "data": [ + "<1><66>(ལྔ་བ།) གཏི་མུག་རྟོག་མེད་ཆོས་དབྱིངས་ཡེ་ཤེས་སུ་གྲོལ་ཚུལ། {དྲན་མེད་བཏང་སྙོམས་ཡེངས་པ་དང༔} སོགས་ཤོ་ལོ་ཀ་གཉིས་ཀྱིས་བསྟན་ཏེ། ", + "<1><66>མ་རིག་པ་ནི་གཞི་འཁྲུལ་རྟོག་གི་ཆ་འཛིན་པ་དང་གཏི་མུག་ཤེས་རབ་རིག་པ་ལས་ལོག་ཙམ་གྱིས་འཁྲུལ་བར་བཤད་པས། དེ་ལྟ་བུའི་མ་རིག་པ་དེའང་གཞིའི་རིག་པ་རང་ངོ་མ་ཤེས་པས་{དྲན༵་}{མེད༵་}རང་ལ་གཞན་དུ་འཁྲུལ་བའི་རྨོངས་པ་རྩ་བ་སེམས་ཀྱི་མ་རིག་པ་དང་། སྣང་ཡུལ་གྱི་ངོ་བོ་རང་མཚན་མེད་པ་མ་ཤེས་པས་{བཏང༵་}{སྙོམས༵་}ཀྱི་རྨོངས་པ་འཁྲུལ་བ་ཡུལ་གྱི་མ་རིག་པ་གཞི་སྣང་གི་རྐྱེན་ལས་འཁྲུལ་བ་ཐོ་ཡོར་མིར་འཁྲུལ་བ་ལྟ་བུའི་ཤེས་པ་{ཡེ༵ངས་}པའི་རྨོངས་{པ༵་}འཁྲུལ་གཞི་གཞིའི་མ་རིག་པ་{དང༵་}། རིག་པའི་ངོ་བོ་ལ་བདག་མེད་བཞིན་དུ་དེར་{འཐིབ༵ས་}ཏེ། ", + "<1><66>རྣམ་པ་བདག་ཏུ་རྨོངས་པ་འཛིན་པ་རྟོག་པའི་མ་རིག་པ་{དང༵་}། ལམ་མིན་ལ་ལམ་དུ་འཁྲུལ་བའི་{རྨུག༵ས་}པ།གཉེན་པོ་དུག་ཏུ་སོང་ནས་གྲོལ་དུ་མི་སྟེར་བ་བཅོས་མ་ལམ་གྱི་མ་རིག་པ་{དང༵་}། རང་བཞིན་འོད་གསལ་བའི་དོན་{བརྗེད༵་}དེ་མ་ཤེས་{པ༵་}མི་ཤེས་རྨོངས་པའི་མ་རིག་པ་{དང༵་}། དེ་ལྟ་བུའི་མ་རིག་པ་དང་དེའི་ཆར་གཏོགས་པའི་དབང་ཤེས་དང་ཡིད་ཤེས་རགས་པ་ནང་དུ་སྡུད་པས་{བརྒྱལ༵་}སེམས་གཉིད་འཐུག་གི་སེམས་{དང༵་}། ཆོས་ལ་འཇུག་ཏུ་མི་སྟེར་བའི་སྦྱོར་བ་མེད་པའི་ལེ་ལོའམ་ཕྱི་བཤོལ་གྱི་{ལེ༵་}{ལོ༵་}སྟེ། ", + "<1><66>དེ་ལྟ་བུའི་ཆོས་དང་ཆོས་མིན་གྱི་གནས་ཚུལ་ལ་རྨོངས་པའི་{གཏི༵་}{མུག༵་}{དང༵་}། དེས་དྲངས་པའི་ལས་ཉོན་རྣམས་ཀྱི་{འབྲས༵་}{བུ༵་}གཞན་སྟོབས་ཀྱི་མགོན་{སྐྱབས༵་}དང་བྲལ་ཞིང་རང་སྟོབས་ཀྱིས་ཐར་དུས་{མེད༵་}པའི་འཁོར་བའི་སྡུག་བསྔལ་སྤྱི་དང་བྱེ་བྲག་ལོག་པར་ལྟུང་བའི་{བྱོལ༵་}{སོང༵་}དུད་འགྲོའི་གནས་སུ་བླུན་རྨོངས་བཀོལ་སྤྱོད་བཀྲེས་སྐོམ་ཚ་གྲང་སོགས་སྡུག་བསྔལ་དུ་མར་སྤྱོད་དེ་དུད་འགྲོའི་སྐྱེ་གནས་ནས་དུད་འགྲོར་སྐྱེས་པ་དང་། དེ་ནས་ཀྱང་དམྱལ་བ་ཡི་དྭགས་སོགས་ངན་སོང་གི་གནས་རྣམས་སུ་བརྒྱུད་དེ་{འཁྱམ༵ས་}པར་འགྱུར་རོ། །", + "<1><67>དེ་ལྟར་ན་{སངས༵་}{རྒྱས༵་}ཀུན་ཏུ་བཟང་པོ་{ང༵་}{ཡི༵་}དགོངས་པའི་མཐར་ཐུག {སྨོན༵་}བྱའི་དགོས་གནད། {ལམ༵་}གྱི་སྐྱེལ་སོ་འདིའི་མཐུ་བྱིན་{གྱིས༵}། སེམས་ཅན་རྣམས་ཀྱི་ཤེས་རྒྱུད་ལ་བྲལ་མ་མྱོང་པའི་ཉེས་ཚོགས་འཁྲུལ་འཁོར་གྱི་ཕུང་པོའི་རྩ་བ་{གཏི༵་}{མུག༵་}{བྱིང༵་}ཞིང་འཐིམ་{པའི༵་}རྨོངས་པའི་{མུན༵་}པ་མངོན་གྱུར་དུ་སྐྱེས་{པ༵་}དེའི་གནས་ལུགས་རང་བྱུང་རིག་པའོ་ཡེ་ཤེས་ཀྱི་དབྱིངས་{ལ༵}། ", + "<1><67>ཐུགས་རྗེའི་རིག་པ་རྩོལ་མེད་རང་བཞག་གི་{དྲན༵་}{པ༵་}མ་བཅོས་རང་སར་{གསལ༵་}{བའི༵་}ཤེས་རབ་ཀྱི་{གདང༵ས་}མངོན་སུམ་རྗེན་པར་{ཤར༵་}{ནས༵}། སྤྲོས་མཚན་ལས་འདས་པའི་སྤྲོས་བྲལ་{རྟོག༵་}{མེ༵ད་}ཀ་དག་ཆོས་དབྱིངས་{ཡེ༵་}{ཤེས༵་}མངོན་དུ་གྱུར་ནས་{ཐོབ༵་}{པར༵་}{ཤོག༵་}ཅེས་པའོ། །" + ] + } + }, + "འབྲས་བུ།": { + "data": [ + "<1><68>(གསུམ་པ་)དྲི་བྲལ་འབྲས་བུའི་ཡོན་ཏན་ཇི་བཞིན་མངོན་དུ་བྱ་ཚུལ་བསྟན་པ་ནི། {ཁམས་གསུམ་སེམས་ཅན་ཐམས་ཅད་ཀུན༔} སོགས་ཤོ་ལོ་ཀ་གཉིས་དང་རྐང་པ་གཉིས་ཀྱིས་བསྟན་ཏེ། ", + "<1><68>གཞི་ཀ་དག་སྤྲོས་བྲལ་ནང་གསལ་དབྱིངས་ཀྱི་ཡོན་ཏན་རྒྱ་མཚོའི་བདག་ཉིད་ཅན་དེ་དང་།མཐར་ཕྱིན་འབྲས་བུ་དྲི་བྲལ་གྱི་དབྱིངས་ཆེན་ཕྱི་གསལ་སངས་རྒྱས་ཀྱི་ཡོན་ཏན་བསམ་མི་ཁྱབ་པའི་རང་བཞིན་ཅན་གཉིས་སྟོང་པ་སྤྲོས་བྲལ་གྱི་ཡེ་ཤེས་ཡོན་ཏན་ཐམས་ཅད་ཀྱི་བདག་ཉིད་དུ་བཞུགས་པ་རང་གི་ངོ་བོ་ལ་འཁྲུལ་གྲོལ་གང་དུ་ཡང་བྲི་གང་མེད་པར་འཁྲུལ་བྲལ་དག་པའི་ཡོན་ཏན་ཉག་གཅིག་གི་བདག་ཉིད་ཡིན་པར་མཉམ་པས་ན། ", + "<1><68>ཁམས་གསུམ་མ་དག་འཁྲུལ་བའི་{སེམ༵ས་}{ཅན༵་}དམན་པ་{ཐམས༵་}{ཅད༵་}{ཀུན༵་}གྱི། ཐོག་མའི་ཀ་དག་འཁོར་འདས་ཀྱི་ཆོས་{ཀུན༵་}གྱི་སྤྱི་{གཞི༵་}དེ་རང་གི་ངོ་བོའི་ཆ་ནས་འགྱུར་མེད་ལྷུན་གྲུབ་ཀྱི་རང་བཞིན་ལས་འབྲས་བུ་{སང༵ས་}{རྒྱས༵་}ཀུན་ཏུ་བཟང་པོ་{ང༵་}ཡི་ཡོན་ཏན་གྱི་ཆོས་རྣམས་{དང༵་}སྐལ་བ་{མཉ༵མ་}པར་བཞུགས་པའོ། །", + "<1><69>འོན་ཀྱང་འཁྲུལ་བས་དབང་མེད་དུ་བྱས་པའི་སེམས་ཅན་རྣམས་ལ། {དྲན༵་}{མེད༵་}རྨོངས་པའི་དྲི་མ་དང་བཅས་པས་{འཁྲུལ༵་}པ་དང་གྲོལ་{བའི༵་}སྤྱི་{གཞི༵་}{རུ༵་}{སོང༵་}བ་ལས། ", + "<1><70>རང་གི་ཡོན་ཏན་གྱི་ཆོས་ལ་དབང་བསྒྱུར་བའི་སྐལ་བ་མེད་པར་འཁྲུལ་བའི་རང་དུས་{ད༵་}{ལྟའི༵་}སྐབས་འདིར་ཐོག་མེད་ནས་བསམ་སྦྱོར་ཕྱིན་ཅི་ལོག་གི་དབང་གིས་སྙིང་པོའི་{དོན༵་}དང་དགོས་པའི་གཙོ་བོ་གང་ཡང་{མེད༵་}པར་སྡུག་བསྔལ་འབའ་ཞིག་གི་རྒྱུ་འབྲས་ཀྱི་{ལས༵་}{ལ༵་}ལོངས་{སྤྱོད༵་}དེ། ", + "<1><71>རྒྱུ་དུག་ལྔས་བསླང་བའི་འཁོར་བའི་གནས་དྲུག་ཏུ་འཕེན་པའི་{ལས༵་}{དྲུག༵་}གིས་འཕང་འབྲས་སྤྱི་དང་བྱེ་བྲག་གི་སྡུག་བསྔལ་གྱི་འཁྲུལ་འཁོར། {རྨི༵་}{ལམ༵་}རྫུན་རིས་ཀྱི་{འཁྲུལ༵་}བའི་སྣང་བ་དང་འདྲ་{བ༵་}འདི་{བྱུང༵་}བའོ། །", + "<1><72>ནམ་ཞིག་ཟག་མེད་རང་ངོ་ཤེས་པའི་དགེ་ཚོགས་ཀྱི་མཐུས་གཞི་དྲི་བྲལ་དུ་སོང་བ་དང་མཉམ་དུ་མཐར་ཕྱིན་འབྲས་བུའི་ཡོན་ཏན་རྒྱ་མཚོའི་བདག་ཉིད་དུ་མངོན་དུ་གྱུར་པ་ལ་ཀུན་ཏུ་བཟང་པོ་{ང༵་}ཉིད་ཅེས་བྱའོ། །", + "<1><72>དེ་ལྟར་ཀ་དག་ཡེ་གྲོལ་གྱི་ཡེ་ཤེས་གློ་བུར་འཁྲུལ་རྨོངས་ཀྱི་དྲི་མ་དང་བྲལ་བ་དེ་{ནི༵་}དག་པ་གཉིས་ལྡན་གྱི་{སངས༵་}{རྒྱས༵་}སྐུ་གསུམ་ཡོན་ཏན་ཕྲིན་ལས་རྒྱ་མཚོའི་བདག་ཉིད་ཅན་དུ་མཐར་ཕྱིན་པའི་ཡོན་ཏན་གྱི་ཆོས་ལ་དབང་བསྒྱུར་ཐོབ་པར་བཞུགས་པ་ནི་བསྐལ་པ་གྲངས་མེད་པའི་ཆེས་གྲངས་མེད་པ་ཉིད་ཀྱི་གོང་རོལ་ནས་ཀྱང་མངོན་དུ་བྱས་ནས་ཀུན་ཏུ་བཟང་པོའི་ཡ་མཐའ་ཐུག་པ་མེད་པས་{ཐོག༵་}{མེད༵་}ཅེས་བྱའོ། །དེ་ལོངས་སྐུ་དང་སྤྲུལ་སྐུའི་དུས་ལས་ཐོག་མ་ཆོས་སྐུའི་དུས་ཡིན། ", + "<1><73>སླར་ཡང་འཁོར་བ་ཇི་སྲིད་གནས་ཀྱི་བར་དུ་{འགྲོ༵་}{དྲུག༵་}གི་སེམས་ཅན་མཐའ་མེད་པ་རྣམས་འདུལ་པའི་སླད་དུ་དག་མ་དག་གི་{སྤྲུལ༵་}པའི་མཛད་པ་སྣ་ཚོགས་སྟོན་{པ༵་}ནི་ནམ་མཁའ་དང་མཉམ་པ་ཁོ་ནའོ། །", + "<1><73>དེ་{བས༵་}ན་མཐའ་མེད་པའི་སེམས་ཅན་རྣམས་{འདུལ༵་}{བའི༵་}{ཕྱིར༵་}དུ། སངས་རྒྱས་{ཀུན༵་}{ཏུ༵་}{བཟང༵་}{པོའི༵་}{ཐུགས༵་}བསྐྱེད་དགོངས་{སྨོན༵་}ཐམས་ཅད་ཀྱི་སྙིང་པོ་འོད་གསལ་རྫོགས་པ་ཆེན་པོའི་{ལམ༵་}མཆོག་འདིའི་མཐུ་བྱིན་{གྱིས༵}། མཁའ་དང་མཉམ་པའི་{སེམས༵་}{ཅན༵་}སྐྱེ་བོའི་ཚོགས་{ཐམས༵་}{ཅད༵་}གཅིག་ཀྱང་{མ༵་}{ལུས༵་}{པར༵་}རང་གནས་ཀྱི་ཡེ་ཤེས་མངོན་དུ་བྱས་ཏེ། དོན་གྱི་འོག་མིན་{ཆོས༵་}{ཀྱི༵་}{དབྱིང༵ས་}ཀྱི་ཕོ་བྲང་དང་རང་སྣང་འོག་མིན་ལྷུན་གྲུབ་སྟུག་པོ་བཀོད་པའི་ཞིང་ཁམས་རྣམས་སུ་{སངས༵་}{རྒྱས༵་}ཏེ་སྟོབས་བཅུའི་ཡོན་ཏན་གྱི་ཕུང་པོ་ལ་དབང་བསྒྱུར་ཐོབ་པར་{ཤོག༵་}ཅེས་པའོ། །" + ] + } + }, + "སྨོན་ལམ་ཀློག་པ་དང་ཐོས་པའི་ཕན་ཡོན་བསྟན་པ།": { + "data": [ + "(རྩ་བའི་ས་བཅད་གསུམ་པ། སྨོན་ལམ་གྱི་གཞུང་ཐོས་པ་དང་བཀླག་པའི་ཕན་ཡོན་ལ། རྫོགས་ཆེན་གྱི་ལམ་ལ་བརྟན་པ་ཐོབ་པའི་རྣལ་འབྱོར་པས་བསམ་པས་ཇི་ལྟར་སྨོན་པ་དང་སྦྱོར་བ་ཚིག་ཉན་ཀློག་བྱས་པའི་ཕན་ཡོན་དངོས་དང་། དུས་གནད་བསྟན་པ་གཉིས་ལས།)" + ], + "རྫོགས་ཆེན་གྱི་ལམ་ལ་བརྟན་པ་ཐོབ་པའི་རྣལ་འབྱོར་པས་བསམ་པས་ཇི་ལྟར་སྨོན་པ་དང་སྦྱོར་བ་ཚིག་ཉན་ཀློག་བྱས་པའི་ཕན་ཡོན་དངོས།": { + "data": [ + "<1><74>(དང་པོ་ནི།) {ཨེ་མ་ཧོ༔ ཕྱིན་ཆད་རྣལ་འབྱོར་སྟོབས་ཆེན་གྱིས༔} སོགས་ཚིག་རྐང་ལྔས་བསྟན་ཏེ་{ཨེ༵་}{མ༵་}{ཧོ༵་}ཞེས་པ་འཆད་འགྱུར་གྱི་ཕན་ཡོན་ལ་ངོ་མཚར་བའི་ཚིག་ཏུ་བྱས་པའོ། །", + "<1><75>དུས་སྙིགས་ཕྱི་མའི་དུས་སུ་འབྱུང་བའི་{ཕྱིན༵་}{ཆད༵་}སྐལ་དམན་གྱི་དོན་དུ་ལམ་འདིའི་{རྣལ༵་}{འབྱོར༵་}གྱི་ཉམས་ལེན་ལ་བརྟན་པའི་{སྟོབས༵་}ཕུལ་བྱུང་ཐོབ་པའི་རྟོགས་པ་{ཆེན༵་}པོའི་རྣལ་འབྱོར་པས་སེམས་ཅན་ལ་སྨན་པའི་ཐུགས་འདུན་{གྱིས༵}། འཁྲུལ་མེད་རང་བྱུང་གི་རིག་པའི་རང་གསལ་གྱི་ཧུར་ཆ་བཏོན་ནས། ", + "<1><76>དུས་གསུམ་རྒྱལ་དང་སྲས་ཀྱིས་ཕན་ཡོན་བསྐལ་པར་བརྗོད་ཀྱང་གཏུགས་པ་མ་མཆིས་པའི་གཞི་ལམ་འབྲས་གསུམ་གྱི་{སྨོན༵་}{ལམ༵་}གྱི་གཞུང་ཡོན་ཏན་{སྟོབ༵ས་}{ཆེ༵ན་}གྱི་རང་བཞིན་ཅན་{འདི༵་}བརྗོད་དེ་སྨོན་ལམ་འདི་བཞིན་{བཏབ༵་}པར་བྱས་{པ༵་}{ཡི༵ས}། སྨོན་ལམ་སྒྲོག་པའི་ཚིག་{འདི༵་}རྣ་བས་{ཐོས༵་}པ་ཙམ་གྱིས་ཀྱང་། ", + "<1><76>དེ་ཐོས་པའི་{སེམས༵་}{ཅན༵་}{ཐམ༵ས་}{ཅད༵་}{ཀུན༵}། སྐྱེ་བའི་ཕྲེང་བ་རིང་པོར་བརྒྱུད་པ་ལ་མི་ལྟོས་པར། {སྐྱེ༵་}{བའི༵་}ཕྲེང་བའི་རིམ་པ་{གསུམ༵་}ཙམ་བརྒྱུད་{ནས༵་}{མངོ༵ན་}པར་{སང༵ས་}{རྒྱས༵་}པར་གསུངས་ན།དེ་ལས་གཞན་འདི་བཞིན་ཉམས་སུ་བླངས་ཏེ་སྒོམ་སྒྲུབ་བྱས་པ་ལ་ཕན་ཡོན་རྒྱ་ཆེར་འབྱུང་བ་སྨོས་མ་དགོས་པའོ། །" + ] + }, + "དུས་གནད་བསྟན་པ།": { + "data": [ + "<1><77>(གཉིས་པ་ནི།) གནས་སྐབས་འཇིག་རྟེན་དུ་དུས་གནད་ལེགས་ཉེས་ཀྱི་ལྟས་སུ་ཤར་བའི་{ཉི༵་}{ཟླ༵་}{གཟའ༵་}{ཡིས༵་}{ཟིན༵་}{པའི༵་}དུས་འབྱུང་{བའམ༵}། རི་དང་བར་སྣང་ལས་སྒྲ་ཆེན་ལྡིར་བའི་ཚེ་{དང༵་}། {ས༵་}{གཡོ༵ས་}{འབྱུང༵་}{བའི༵་}དུས་{སམ༵}། ལྷོ་བྱང་དུ་{ཉི༵་}{མ༵་}{ལྡོག༵་}པར་{འགྱུར༵་}བ་དང་། སྔ་ཕྱི་{ལོ༵་}{འཕོ༵་}བའི་{དུས༵་}རྣམས་སུ། སྨོན་ལམ་འདེབས་པ་པོ་{རང༵་}{ཉིད༵་}{ཀུན༵་}ཏུ་{བཟང༵་}{པོར༵་}{བསྐྱེད༵་}ཅིང་གསལ་བཞིན། ", + "<1><78>ཡུལ་སྐྱེ་བོའི་ཚོགས་དུ་མ་འདུས་པའི་ཕྱོགས་ཀྱི་སྐྱེ་བོ་{ཀུན༵་}{གྱིས༵་}{ཐོས༵་}བཞིན་{པར༵}། སྨོན་ལམ་{འདི༵་}{བརྗོད༵་}{ན༵}། དུས་དང་བསམ་སྦྱོར་རྣམ་དག་ནང་འདོམས་པ་ལས། {ཁམས༵་}{གསུམ༵་}གྱི་འགྲོ་བའི་སྐྱེ་བོ་{སེམ༵ས་}{ཅན༵་}{ཐམས༵་}{ཅད༵་}{ལ༵་}དངོས་བརྒྱུད་ཅི་རིག་པར། {རྣལ༵་}{འབྱོར༵་}{དེ༵་}{ཡི༵་}ཐུགས་བསྐྱེད་རྣམ་པར་དག་པ་དང་། {སྨོན༵་}{ལམ༵་}མཐུ་བཙན་པའི་སྟོབས་{ཀྱིས༵}། གནས་སྐབས་འཁོར་བ་རགས་པའི་{སྡུ༵ག་}{བསྔལ༵་}རྒྱུ་བཅས་ཀྱི་གཉེན་པོ་རང་སྐལ་གྱི་དབང་བོ་དང་འཚམས་པའི་ལམ་རིམ་བཞིན་སྐྱེས་ཏེ། སྡུག་བསྔལ་{རིམ༵་}{གྱིས༵་}{བྲལ༵་}{ནས༵་}{ཀྱང༵་}། ", + "<1><79>{མཐར༵་}{ཐུག༵་}ལམ་ཐམས་ཅད་ཀྱི་མཐར་ཐུག་གི་ཐེག་པ་འདི་ནས་ཀུན་གཞི་ཆ་བཅས་ལས་གྲོལ་བའི་རྣམ་པ་ཐམས་ཅད་མཁྱེན་པ་{སངས༵་}{རྒྱས༵་}ཀྱི་གོ་འཕང་རིན་པོ་ཆེ་{ཐོབ༵་}{པར༵་}འགྱུར་བར་བསྟན་པའོ། །དེ་ལྟ་བུའི་ཕན་ཡོན་ཇི་སྐད་བཤད་པ་དེ་རྣམས་ཀྱང་། ཚུལ་བཞིན་གེགས་མེད་དུ་སེམས་ཅན་ལ་འབྱོར་ནུས་པར་ཡང་{ཤོག༵་}ཅེས་པའོ།།" + ] + } + } + } + } + } + ] + } +} diff --git a/src/pecha_uploader/jsondata/texts/errors.txt b/src/pecha_uploader/jsondata/texts/errors.txt new file mode 100644 index 0000000..263f74b --- /dev/null +++ b/src/pecha_uploader/jsondata/texts/errors.txt @@ -0,0 +1,19 @@ +(Text)--->The short path of Samantabhadra the lamp that illuminates with light: [] + +(Text)--->The short path of Samantabhadra the lamp that illuminates with light: [] + +(Text)--->The short path of Samantabhadra the lamp that illuminates with light: [] + +(Text)--->The short path of Samantabhadra the lamp that illuminates with light: [] + +(Text)--->The short path of Samantabhadra the lamp that illuminates with light: [] + +(Text)--->The short path of Samantabhadra the lamp that illuminates with light: [] + +(Text)--->The short path of Samantabhadra the lamp that illuminates with light: [] + +(Text)--->The short path of Samantabhadra the lamp that illuminates with light: [] + +(Text)--->The short path of Samantabhadra the lamp that illuminates with light: [] + +(Text)--->The short path of Samantabhadra the lamp that illuminates with light: [] diff --git a/src/pecha_uploader/jsondata/texts/success.txt b/src/pecha_uploader/jsondata/texts/success.txt new file mode 100644 index 0000000..32d15d5 --- /dev/null +++ b/src/pecha_uploader/jsondata/texts/success.txt @@ -0,0 +1,4 @@ +Prayer_of_Kuntuzangpo.json +anotation_styling_test.json +vajra_cutter_commentary.json +ཀུན་བཟང་སྨོན་ལམ་གྱི་འདྲེན་བྱེད་ཊྰི་ཀའི་ཐུར་མས་བསལ་བ།.json diff --git a/src/pecha_uploader/links/create_ref_json.py b/src/pecha_uploader/links/create_ref_json.py new file mode 100644 index 0000000..73b269a --- /dev/null +++ b/src/pecha_uploader/links/create_ref_json.py @@ -0,0 +1,231 @@ +import json +import os +import re +from collections import defaultdict +from typing import Any, Dict, List + +from pecha_uploader.config import BASEPATH + +# -----------------------------------commentary link from jsonfile---------------------------------------- + + +def commentaryToRoot(text_type: str): + for root, dirs, files in os.walk(f"{BASEPATH}/jsondata/texts/{text_type}"): + for file in files: + if file.endswith(".json"): + try: + if file.endswith(".json"): + with open( + f"{BASEPATH}/jsondata/texts/{text_type}/{file}", + encoding="utf-8", + ) as f: + data = json.load(f) + create_links(data) + except Exception as e: + print("[Error] opening file: ", e) + return + + +def link_mapper(title: str, contents: List, root_detail: Dict): + """'buld refs json file""" + links = [] + refs = {} + root_title = root_detail["base_text_titles"][0] + if get_list_depth(contents) == 1: + # for dept 1 + constent_range = get_range(contents) + for value in constent_range.values(): + ref = [] + ref.append(f"{root_title} {value[1][0]}:{value[1][1]}") + ref.append(f"{title} {value[0]}") + refs["refs"] = ref + refs["type"] = "commentary" + links.append(refs) + refs = {} + else: + for i, content in enumerate(contents): + if isinstance(content, list): + if get_list_depth(content) == 1: + # for dept 2 + constent_range = get_range(content) + for value in constent_range.values(): + ref = [] + ref.append(f"{root_title} {value[1][0]}:{value[1][1]}") + ref.append(f"{title} {i+1}:{value[0]}") + refs["refs"] = ref + refs["type"] = "commentary" + links.append(refs) + refs = {} + else: + for j, data in enumerate(content): + if isinstance(data, list): + # for dept 3 + constent_range = get_range(data) + for value in constent_range.values(): + ref = [] + ref.append(f"{root_title} {value[1][0]}:{value[1][1]}") + ref.append(f"{title} {i+1}:{j+1}:{value[0]}") + refs["refs"] = ref + refs["type"] = "commentary" + links.append(refs) + refs = {} + if links: + # j = json.dumps(links, indent=4, ensure_ascii=False) + # print(j) + # create json + commentary_title = title.strip() + with open( + f"{BASEPATH}/jsondata/links/{commentary_title[-30:]}.json", + "w", + encoding="utf-8", + ) as file: + json.dump(links, file, indent=4, ensure_ascii=False) + + +def get_range(data: List): + """build json data""" + indices = defaultdict(list) + + for i, elem in enumerate(data): + matches = re.search(r"<\d+><\d+>", elem) + if matches: + unique_elem = matches.group() + indices[unique_elem].append(i) + + output = {} + for key, value in indices.items(): + output[key] = [] + initial_index = value[0] + final_index = value[-1] + if initial_index == final_index: + output[key].append(str(initial_index + 1)) + match = re.findall(r"\d+", key) + output[key].append(list(map(int, match))) + else: + output[key].append(f"{initial_index + 1}-{final_index + 1}") + match = re.findall(r"\d+", key) + output[key].append(list(map(int, match))) + + return output + + +def create_links(json_data: Dict): + """map link for echa language""" + book_last_category = json_data["source"]["categories"][-1] + + # check if json_data is commentary text or not + if "link" in book_last_category: + + # English version + for enbook in json_data["source"]["books"]: + chapters = generate_chapters({}, enbook, enbook["language"]) + + for key, value in chapters.items(): + link_mapper(key, value, book_last_category) + + # Tibetan version + for bobook in json_data["target"]["books"]: + chapters = generate_chapters( + bobook, json_data["source"]["books"][0], bobook["language"] + ) + # j = json.dumps(chapters, indent=4, ensure_ascii=False) + + # print(j) + + for key, value in chapters.items(): + link_mapper(key, value, book_last_category) + + +def generate_chapters( + botext: Dict, + entext: Dict, + language: str, + current_key: str = "", + parent_keys: Any = [], +): + """get chapter from json""" + result = {} + enbook = [] + bobook = [] + if "content" in entext: + enbook = entext["content"] + if botext: + bobook = botext["content"] + + else: + if botext: + bobook = botext + enbook = entext + + if isinstance(enbook, dict): + if not botext: + for key, value in enbook.items(): + full_key = key if current_key else key + new_parent_keys = parent_keys + [key.strip()] + + if isinstance(value, dict): + # Check if the dictionary has any children other than data + has_children = any(sub_key != "data" for sub_key in value.keys()) + child_data = generate_chapters( + value, language, full_key, new_parent_keys + ) + result.update(child_data) # Merge results from children + + # If there are other children, include data in the key, else exclude it + if has_children: + if language == "bo": + data_key = ( + ", ".join(new_parent_keys) + + ", གོང་གི་ས་བཅད་ཀྱི་ནང་དོན།" + ) + else: + data_key = ", ".join(new_parent_keys) + ", data" + else: + data_key = ", ".join( + new_parent_keys + ) # Exclude data from the key if no other children + result[data_key] = value["data"] + else: + for (enkey, envalue), (bokey, bovalue) in zip( + enbook.items(), bobook.items() + ): + full_key = enkey if current_key else enkey + new_parent_keys = parent_keys + [enkey.strip()] + if isinstance(envalue, dict): + # Check if the dictionary has any children other than data + has_children = any(sub_key != "data" for sub_key in envalue.keys()) + child_data = generate_chapters( + bovalue, envalue, language, full_key, new_parent_keys + ) + result.update(child_data) # Merge results from children + if has_children: + data_key = ", ".join(new_parent_keys) + ", data" + else: + data_key = ", ".join(new_parent_keys) + if language == "bo": + result[data_key] = bovalue["data"] + else: + result[data_key] = envalue["data"] + + if isinstance(enbook, list): + if len(enbook) > 0: + result[entext["title"]] = enbook + else: + result[entext["title"]] = bobook + + return result + + +def get_list_depth(lst: List): + """ + Function to calculate the depth of a nested list. + """ + if not isinstance(lst, list): # Base case: not a list, no depth + return 0 + else: + max_depth = 0 + for item in lst: + max_depth = max( + max_depth, get_list_depth(item) + ) # Recurse and update max depth + return max_depth + 1 # Add one to include the current depth level diff --git a/src/pecha_uploader/pipeline.py b/src/pecha_uploader/pipeline.py index 9536b6a..7f214fa 100644 --- a/src/pecha_uploader/pipeline.py +++ b/src/pecha_uploader/pipeline.py @@ -8,6 +8,8 @@ from pecha_uploader.category.upload import post_category from pecha_uploader.config import BASEPATH from pecha_uploader.index.upload import post_index +from pecha_uploader.links.create_ref_json import commentaryToRoot +from pecha_uploader.links.upload import post_link from pecha_uploader.preprocess.upload import post_term from pecha_uploader.text.upload import post_text from pecha_uploader.utils import generate_chapters, generate_schema, parse_annotation @@ -34,7 +36,7 @@ def add_texts(text_type): elif data == "success.txt": continue text_upload_succeed = add_by_file(data, text_type) - # 有錯誤先終止 + if not text_upload_succeed: print("=== [Failed] ===") return @@ -89,6 +91,7 @@ def add_by_file(text_name: str, text_type: str): payload["categoryEn"][i][-1]["name"], payload["categoryHe"][i][-1]["name"], ) + print("\nterm : ", response) if not response["status"]: if "term_conflict" in response: error = response["term_conflict"] @@ -100,6 +103,7 @@ def add_by_file(text_name: str, text_type: str): category_response = post_category( payload["categoryEn"][i], payload["categoryHe"][i] ) + print("categories: ", category_response) if not category_response["status"]: error = category_response["error"] log_error("Category", text_name, f"{error}") @@ -109,27 +113,32 @@ def add_by_file(text_name: str, text_type: str): "============================( post_index )================================" ) schema = generate_schema(payload["textEn"][0], payload["textHe"][0]) + + # serialized_schema = serialize_schema(schema) + # j = json.dumps(schema, indent=4, ensure_ascii=False) + # print(j) index_response = post_index( payload["bookKey"], payload["categoryEn"][-1], schema[0] ) + print("index : ", index_response) if not index_response["status"]: error = index_response["error"] log_error("Index", text_name, f"{error}") return False print( - "=============================( post_text )=================================" + "===============================( post_text )==================================" ) text_index_key = payload["bookKey"] - for book in payload["textHe"]: - if not process_text(book, "he", text_index_key): - return False - for book in payload["textEn"]: if not process_text(book, "en", text_index_key): return False + for book in payload["textHe"]: + if not process_text(book, "he", text_index_key): + return False + except Exception as e: print("Error : ", e) return False @@ -159,24 +168,38 @@ def process_text(book: dict, lang: str, text_index_key: str): # Complex text if isinstance(book["content"], dict): result = generate_chapters(book["content"], book["language"]) + # j = json.dumps(result, indent=4, ensure_ascii=False + # print(j) + is_succeed = False + errors = [] for key, value in result.items(): text["text"] = value text_response = post_text(key, text) - if value and not text_response["status"]: + print("response", text_response) + if not text_response["status"]: error = text_response["error"] + errors.append(error) log_error("Text", key, f"{error}") - return False + is_succeed = False + else: + is_succeed = True + + if is_succeed: + log_error("Text", text_index_key, f"{errors}") + + return is_succeed # Simple text elif isinstance(book["content"], list): text["text"] = parse_annotation(book["content"]) - text_response = post_text(key, text) + text_response = post_text(text_index_key, text) + print("response", text_response) if not text_response["status"]: error = text_response["error"] log_error("Text", text_index_key, f"{error}") return False - - return True + else: + return True def log_error(api_name: str, text_name: str, message: str): @@ -193,6 +216,85 @@ def log_error(api_name: str, text_name: str, message: str): `{BASEPATH}/pecha_uploader/texts/`. """ with open( - f"{BASEPATH}/pecha_uploader/texts/errors.txt", mode="a", encoding="utf-8" + f"{BASEPATH}/jsondata/texts/errors.txt", mode="a", encoding="utf-8" ) as error_file: # noqa error_file.write(f"({api_name})--->{text_name}: {message}\n\n") + + +def add_refs(): + """ + Add all ref files in `/jsondata/links`. + """ + print("============ add_refs ============") + file_list = os.listdir(f"{BASEPATH}/jsondata/links") + try: # Added refs save to `success.txt` + with open(f"{BASEPATH}/jsondata/links/success.txt", encoding="utf-8") as f: + ref_success_list = f.read().split("\n") + except Exception as e: + print("Ref error : ", e) + ref_success_list = [] + failed_list = [] + print(ref_success_list) + for file in file_list: + if file in ref_success_list: + continue + elif file == "success.txt": + continue + elif file == "errors.txt": + continue + + with open(f"{BASEPATH}/jsondata/links/{file}", encoding="utf-8") as f: + content = f.read().strip() + if not content: + raise ValueError("File is empty") + try: + ref_list = json.loads(content) + except Exception as e: + raise ValueError(f"Invalid JSON: {e}") + # remove_links(ref_list[0]["refs"][1]) + for ref in ref_list: + # Separate refs since the API only support adding 2 refs at the same time. + for i in range(0, len(ref["refs"]) - 1): + for j in range(i + 1, len(ref["refs"])): + link_response = post_link( + [ref["refs"][i], ref["refs"][j]], ref["type"] + ) + + # Failed + if not link_response["status"]: + failed_list.append(link_response["res"]) + with open( + f"{BASEPATH}/jsondata/links/success.txt", mode="a", encoding="utf-8" + ) as f: + f.write(file + "\n") + print(f"=== [Finished] {file} ===") + with open( + f"{BASEPATH}/jsondata/links/errors.txt", mode="w+", encoding="utf-8" + ) as f: + json.dump(failed_list, f, indent=4, ensure_ascii=False) + + +# ----------------Main------------------ + + +def main(): + """ + Add all files in `/jsondata` + """ + print("============================= texts =================================") + if not os.path.exists(f"{BASEPATH}/jsondata/texts"): + os.mkdir(f"{BASEPATH}/jsondata/texts/baseText") + os.mkdir(f"{BASEPATH}/jsondata/texts/commentaryText") + + commentaryToRoot("commentaryText") + add_texts("baseText") + add_texts("commentaryText") + + print("============================== refs ==================================") + if not os.path.exists(f"{BASEPATH}/jsondata/links"): + os.mkdir(f"{BASEPATH}/jsondata/links") + add_refs() + + +if __name__ == "__main__": + main() diff --git a/src/pecha_uploader/preprocess/upload.py b/src/pecha_uploader/preprocess/upload.py index 11e5036..04c7a02 100644 --- a/src/pecha_uploader/preprocess/upload.py +++ b/src/pecha_uploader/preprocess/upload.py @@ -39,7 +39,7 @@ def post_term(term_en: str, term_bo: str): and "A Term with the title" in res and "in it already exists" in res ): - return {"status": False, "term_conflict": res} + return {"status": True, "term_conflict": res} return {"status": True} except HTTPError as e: print("[term] Error code: ", e.code) diff --git a/src/pecha_uploader/text/upload.py b/src/pecha_uploader/text/upload.py index 9ede0ae..8bb4b0a 100644 --- a/src/pecha_uploader/text/upload.py +++ b/src/pecha_uploader/text/upload.py @@ -46,10 +46,9 @@ def post_text(text_name: str, text_content: Dict): response = urllib.request.urlopen(req) res = response.read().decode("utf-8") if "error" not in res: - print(f"\n{res}\n") return {"status": True} - return False + return {"status": False, "error": res} except HTTPError as e: print("Error code: ", e) return {"status": False, "error": e} diff --git a/src/pecha_uploader/utils.py b/src/pecha_uploader/utils.py index 0fea8b4..4244c9c 100644 --- a/src/pecha_uploader/utils.py +++ b/src/pecha_uploader/utils.py @@ -2,18 +2,16 @@ from typing import Dict, List, Union -def generate_schema( - en_book: List[Dict], bo_book: List[Dict], en_key: str = "", bo_key: str = "" -) -> List: - """This function generate index schema for both complex and simple text""" +def generate_schema(enbook: Dict, bobook: Dict, en_key: str = "", bo_key: str = ""): + nodes = [] # generate schema node for complex text - if "content" in bo_book: - botext = bo_book["content"] - entext = en_book["content"] + if "content" in bobook: + botext = bobook["content"] + entext = enbook["content"] else: - botext = bo_book - entext = en_book + botext = bobook + entext = enbook if isinstance(entext, dict): for (enkey, envalue), (bokey, bovalue) in zip(entext.items(), botext.items()): @@ -26,7 +24,7 @@ def generate_schema( child_nodes = generate_schema( envalue, bovalue, en_full_key, bo_full_key ) - # if only data is present + # if data is only if not has_children: data_node = create_data_node( en_full_key, bo_full_key, envalue["data"], bovalue["data"] @@ -47,7 +45,7 @@ def generate_schema( data_node = create_data_node(enkey, "གནས་བབས", envalue, bovalue) nodes.append(data_node) if isinstance(entext, list): - data_node = create_data_node(en_book["title"], bo_book["title"], entext, botext) + data_node = create_data_node(enbook["title"], bobook["title"], entext, botext) nodes.append(data_node) return nodes @@ -76,7 +74,7 @@ def create_data_node( "nodeType": "JaggedArrayNode", "depth": text_depth, "addressTypes": list(map(lambda x: "Integer", sections[:text_depth])), - "sections": sections[:text_depth], + "sectionNames": sections[:text_depth], "titles": [ {"lang": "he", "text": bo_key, "primary": True}, {"lang": "en", "text": en_key, "primary": True}, @@ -129,7 +127,7 @@ def generate_chapters( language: str, current_key: str = "", parent_keys: List[str] = None, -) -> Dict: +): """generate text content""" result = {} if parent_keys is None: From 4a6f8e1e47467d0a1586a030c9a6ea933eb47d52 Mon Sep 17 00:00:00 2001 From: lobsam Date: Wed, 25 Dec 2024 09:58:46 +0530 Subject: [PATCH 12/12] fix text upload --- src/pecha_uploader/jsondata/texts/errors.txt | 135 +++++++++++++++++++ src/pecha_uploader/text/upload.py | 6 +- 2 files changed, 140 insertions(+), 1 deletion(-) diff --git a/src/pecha_uploader/jsondata/texts/errors.txt b/src/pecha_uploader/jsondata/texts/errors.txt index 263f74b..c5be645 100644 --- a/src/pecha_uploader/jsondata/texts/errors.txt +++ b/src/pecha_uploader/jsondata/texts/errors.txt @@ -17,3 +17,138 @@ (Text)--->The short path of Samantabhadra the lamp that illuminates with light: [] (Text)--->The short path of Samantabhadra the lamp that illuminates with light: [] +(Text)--->The short path of Samantabhadra the lamp that illuminates with light: [] + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, ཐོག་མར་གཞི་ལམ་འབྲས་བུའི་རྣམ་བཞག་མདོར་བསྡུས་ཏེ་བསྟན་པ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, A brief presentation of the ground path and result"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, གཞིའི་གནས་ལུགས་ཉིད་རྒྱས་པར་འཆད་པ།, སྐྱོན་ཅན་གྱི་འདོད་པ་དྲུག, ལྷུན་གྲུབ་གཞི་རུ་འདོད་པ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, The extensive explanation of the abiding nature of the ground, Six flawed assertions, The assertion that spontaneous presence is the basis"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, གཞིའི་གནས་ལུགས་ཉིད་རྒྱས་པར་འཆད་པ།, སྐྱོན་ཅན་གྱི་འདོད་པ་དྲུག, མ་ངེས་པ་གཞི་རུ་འདོད་པ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, The extensive explanation of the abiding nature of the ground, Six flawed assertions, The indefinite is asserted as the basis"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, གཞིའི་གནས་ལུགས་ཉིད་རྒྱས་པར་འཆད་པ།, སྐྱོན་ཅན་གྱི་འདོད་པ་དྲུག, ངེས་པ་དོན་གྱི་གཞི་རུ་འདོད་པ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, The extensive explanation of the abiding nature of the ground, Six flawed assertions, The assertion that the definitive is the basis of the meaning"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, གཞིའི་གནས་ལུགས་ཉིད་རྒྱས་པར་འཆད་པ།, སྐྱོན་ཅན་གྱི་འདོད་པ་དྲུག, ཅིར་ཡང་བསྒྱུར་བཏུབ་པ་གཞིར་འདོད་པ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, The extensive explanation of the abiding nature of the ground, Six flawed assertions, The basis is asserted to be that which can be transformed into anything"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, གཞིའི་གནས་ལུགས་ཉིད་རྒྱས་པར་འཆད་པ།, སྐྱོན་ཅན་གྱི་འདོད་པ་དྲུག, ཅིར་ཡང་ཁས་བླང་དུ་བཏུབ་པ་གཞིར་འདོད་པ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, The extensive explanation of the abiding nature of the ground, Six flawed assertions, The basis is asserted to be that which can be asserted as anything"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, གཞིའི་གནས་ལུགས་ཉིད་རྒྱས་པར་འཆད་པ།, སྐྱོན་ཅན་གྱི་འདོད་པ་དྲུག, སྣ་ཚོགས་གཞི་རུ་འདོད་པ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, The extensive explanation of the abiding nature of the ground, Six flawed assertions, The assertion that the diversity is the basis"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, གཞིའི་གནས་ལུགས་ཉིད་རྒྱས་པར་འཆད་པ།, སྐྱོན་ཅན་གྱི་འདོད་པ་དྲུག, གནས་བབས: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, The extensive explanation of the abiding nature of the ground, Six flawed assertions, data"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, གཞིའི་གནས་ལུགས་ཉིད་རྒྱས་པར་འཆད་པ།, སྐྱོན་མེད་ཀྱི་འདོད་པ་གཅིག: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, The extensive explanation of the abiding nature of the ground, One faultless assertion"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, གཞིའི་གནས་ལུགས་ཉིད་རྒྱས་པར་འཆད་པ།, གནས་བབས: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, The extensive explanation of the abiding nature of the ground, data"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, དེ་ངོ་ཤེས་ལམ་དུ་བྱས་པས་ཀུན་ཏུ་བཟང་པོའི་གྲོལ་ཚུལ་བསྟན་པ།, གྲོལ་ཚུལ་དངོས།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, The way of liberation of Samantabhadra through recognizing that and taking it as the path, Actual mode of liberation"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, དེ་ངོ་ཤེས་ལམ་དུ་བྱས་པས་ཀུན་ཏུ་བཟང་པོའི་གྲོལ་ཚུལ་བསྟན་པ།, གྲོལ་ནས་གཞན་དོན་མཛད་ཚུལ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, The way of liberation of Samantabhadra through recognizing that and taking it as the path, How after being liberated he benefited others"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, དེ་ངོ་ཤེས་ལམ་དུ་བྱས་པས་ཀུན་ཏུ་བཟང་པོའི་གྲོལ་ཚུལ་བསྟན་པ།, གནས་བབས: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, The way of liberation of Samantabhadra through recognizing that and taking it as the path, data"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, གཞི་དོན་མ་ཤེས་པ་ལས་སེམས་ཅན་འཁོར་བར་འཁྲུལ་ཚུལ།, འཁྲུལ་ཚུལ་སྤྱིར་བསྟན་པ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, How sentient beings are deluded in cyclic existence due to not knowing the meaning of the ground, The general presentation of the mode of delusion"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, གཞི་དོན་མ་ཤེས་པ་ལས་སེམས་ཅན་འཁོར་བར་འཁྲུལ་ཚུལ།, དེ་བྱེ་བྲག་སོ་སོར་བསྟན་པ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, How sentient beings are deluded in cyclic existence due to not knowing the meaning of the ground, The specific explanation of each of these"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, གཞི་དོན་མ་ཤེས་པ་ལས་སེམས་ཅན་འཁོར་བར་འཁྲུལ་ཚུལ།, གནས་བབས: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, How sentient beings are deluded in cyclic existence due to not knowing the meaning of the ground, data"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, གནས་བབས: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, data"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, ལམ།, འདོད་ཆགས་ཀུན་རྟོག་ཡེ་ཤེས་སུ་གྲོལ་ཚུལ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Path, How Desire and Conceptual Thoughts Are Liberated into Timeless Awareness"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, ལམ།, ཞེ་སྡང་གསལ་བའི་ཡེ་ཤེས་སམ། མེ་ལོང་ཡེ་ཤེས་སུ་གྲོལ་ཚུལ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Path, How is hatred liberated as the wisdom of clarity or mirror like wisdom"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, ལམ།, ང་རྒྱལ་མཉམ་ཉིད་ཡེ་ཤེས་སུ་གྲོལ་ཚུལ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Path, How pride is liberated into the wisdom of equality"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, ལམ།, ཕྲག་དོག་དང་འགྲན་སེམས་བྱ་བ་ལྷུན་གྲུབ་ཀྱི་ཡེ་ཤེས་སུ་གྲོལ་བར་བསྟན་པ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Path, The teaching that jealousy and competitiveness are liberated as spontaneous wisdom"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, ལམ།, གཏི་མུག་རྟོག་མེད་ཆོས་དབྱིངས་ཡེ་ཤེས་སུ་གྲོལ་ཚུལ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Path, How is delusion freed as the nonconceptual wisdom of the dharmadhatu"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, ལམ།, གནས་བབས: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Path, data"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, འབྲས་བུ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, fruit"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གནས་བབས: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, data"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, སྨོན་ལམ་ཀློག་པ་དང་ཐོས་པའི་ཕན་ཡོན་བསྟན་པ།, རྫོགས་ཆེན་གྱི་ལམ་ལ་བརྟན་པ་ཐོབ་པའི་རྣལ་འབྱོར་པས་བསམ་པས་ཇི་ལྟར་སྨོན་པ་དང་སྦྱོར་བ་ཚིག་ཉན་ཀློག་བྱས་པའི་ཕན་ཡོན་དངོས།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The Benefits Of Reading And Hearing The Prayer Of Aspiration, l actual benefits of listening to and reading the words of the Great Perfection as they are intended applied and recited by a yogin who has attained stability on the path of the Great Perfection"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, སྨོན་ལམ་ཀློག་པ་དང་ཐོས་པའི་ཕན་ཡོན་བསྟན་པ།, དུས་གནད་བསྟན་པ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The Benefits Of Reading And Hearing The Prayer Of Aspiration, The Key Points of Time"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, སྨོན་ལམ་ཀློག་པ་དང་ཐོས་པའི་ཕན་ཡོན་བསྟན་པ།, གནས་བབས: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The Benefits Of Reading And Hearing The Prayer Of Aspiration, data"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, གནས་བབས: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, data"} + +(Text)--->The short path of Samantabhadra the lamp that illuminates with light: [] + +(Text)--->The short path of Samantabhadra the lamp that illuminates with light: [] + +(Text)--->The short path of Samantabhadra the lamp that illuminates with light: [] + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, ཐོག་མར་གཞི་ལམ་འབྲས་བུའི་རྣམ་བཞག་མདོར་བསྡུས་ཏེ་བསྟན་པ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, A brief presentation of the ground path and result"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, གཞིའི་གནས་ལུགས་ཉིད་རྒྱས་པར་འཆད་པ།, སྐྱོན་ཅན་གྱི་འདོད་པ་དྲུག, ལྷུན་གྲུབ་གཞི་རུ་འདོད་པ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, The extensive explanation of the abiding nature of the ground, Six flawed assertions, The assertion that spontaneous presence is the basis"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, གཞིའི་གནས་ལུགས་ཉིད་རྒྱས་པར་འཆད་པ།, སྐྱོན་ཅན་གྱི་འདོད་པ་དྲུག, མ་ངེས་པ་གཞི་རུ་འདོད་པ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, The extensive explanation of the abiding nature of the ground, Six flawed assertions, The indefinite is asserted as the basis"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, གཞིའི་གནས་ལུགས་ཉིད་རྒྱས་པར་འཆད་པ།, སྐྱོན་ཅན་གྱི་འདོད་པ་དྲུག, ངེས་པ་དོན་གྱི་གཞི་རུ་འདོད་པ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, The extensive explanation of the abiding nature of the ground, Six flawed assertions, The assertion that the definitive is the basis of the meaning"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, གཞིའི་གནས་ལུགས་ཉིད་རྒྱས་པར་འཆད་པ།, སྐྱོན་ཅན་གྱི་འདོད་པ་དྲུག, ཅིར་ཡང་བསྒྱུར་བཏུབ་པ་གཞིར་འདོད་པ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, The extensive explanation of the abiding nature of the ground, Six flawed assertions, The basis is asserted to be that which can be transformed into anything"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, གཞིའི་གནས་ལུགས་ཉིད་རྒྱས་པར་འཆད་པ།, སྐྱོན་ཅན་གྱི་འདོད་པ་དྲུག, ཅིར་ཡང་ཁས་བླང་དུ་བཏུབ་པ་གཞིར་འདོད་པ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, The extensive explanation of the abiding nature of the ground, Six flawed assertions, The basis is asserted to be that which can be asserted as anything"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, གཞིའི་གནས་ལུགས་ཉིད་རྒྱས་པར་འཆད་པ།, སྐྱོན་ཅན་གྱི་འདོད་པ་དྲུག, སྣ་ཚོགས་གཞི་རུ་འདོད་པ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, The extensive explanation of the abiding nature of the ground, Six flawed assertions, The assertion that the diversity is the basis"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, གཞིའི་གནས་ལུགས་ཉིད་རྒྱས་པར་འཆད་པ།, སྐྱོན་ཅན་གྱི་འདོད་པ་དྲུག, གནས་བབས: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, The extensive explanation of the abiding nature of the ground, Six flawed assertions, data"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, གཞིའི་གནས་ལུགས་ཉིད་རྒྱས་པར་འཆད་པ།, སྐྱོན་མེད་ཀྱི་འདོད་པ་གཅིག: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, The extensive explanation of the abiding nature of the ground, One faultless assertion"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, གཞིའི་གནས་ལུགས་ཉིད་རྒྱས་པར་འཆད་པ།, གནས་བབས: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, The extensive explanation of the abiding nature of the ground, data"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, དེ་ངོ་ཤེས་ལམ་དུ་བྱས་པས་ཀུན་ཏུ་བཟང་པོའི་གྲོལ་ཚུལ་བསྟན་པ།, གྲོལ་ཚུལ་དངོས།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, The way of liberation of Samantabhadra through recognizing that and taking it as the path, Actual mode of liberation"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, དེ་ངོ་ཤེས་ལམ་དུ་བྱས་པས་ཀུན་ཏུ་བཟང་པོའི་གྲོལ་ཚུལ་བསྟན་པ།, གྲོལ་ནས་གཞན་དོན་མཛད་ཚུལ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, The way of liberation of Samantabhadra through recognizing that and taking it as the path, How after being liberated he benefited others"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, དེ་ངོ་ཤེས་ལམ་དུ་བྱས་པས་ཀུན་ཏུ་བཟང་པོའི་གྲོལ་ཚུལ་བསྟན་པ།, གནས་བབས: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, The way of liberation of Samantabhadra through recognizing that and taking it as the path, data"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, གཞི་དོན་མ་ཤེས་པ་ལས་སེམས་ཅན་འཁོར་བར་འཁྲུལ་ཚུལ།, འཁྲུལ་ཚུལ་སྤྱིར་བསྟན་པ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, How sentient beings are deluded in cyclic existence due to not knowing the meaning of the ground, The general presentation of the mode of delusion"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, གཞི་དོན་མ་ཤེས་པ་ལས་སེམས་ཅན་འཁོར་བར་འཁྲུལ་ཚུལ།, དེ་བྱེ་བྲག་སོ་སོར་བསྟན་པ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, How sentient beings are deluded in cyclic existence due to not knowing the meaning of the ground, The specific explanation of each of these"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, གཞི་དོན་མ་ཤེས་པ་ལས་སེམས་ཅན་འཁོར་བར་འཁྲུལ་ཚུལ།, གནས་བབས: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, How sentient beings are deluded in cyclic existence due to not knowing the meaning of the ground, data"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གཞི།, གནས་བབས: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Basis, data"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, ལམ།, འདོད་ཆགས་ཀུན་རྟོག་ཡེ་ཤེས་སུ་གྲོལ་ཚུལ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Path, How Desire and Conceptual Thoughts Are Liberated into Timeless Awareness"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, ལམ།, ཞེ་སྡང་གསལ་བའི་ཡེ་ཤེས་སམ། མེ་ལོང་ཡེ་ཤེས་སུ་གྲོལ་ཚུལ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Path, How is hatred liberated as the wisdom of clarity or mirror like wisdom"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, ལམ།, ང་རྒྱལ་མཉམ་ཉིད་ཡེ་ཤེས་སུ་གྲོལ་ཚུལ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Path, How pride is liberated into the wisdom of equality"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, ལམ།, ཕྲག་དོག་དང་འགྲན་སེམས་བྱ་བ་ལྷུན་གྲུབ་ཀྱི་ཡེ་ཤེས་སུ་གྲོལ་བར་བསྟན་པ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Path, The teaching that jealousy and competitiveness are liberated as spontaneous wisdom"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, ལམ།, གཏི་མུག་རྟོག་མེད་ཆོས་དབྱིངས་ཡེ་ཤེས་སུ་གྲོལ་ཚུལ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Path, How is delusion freed as the nonconceptual wisdom of the dharmadhatu"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, ལམ།, གནས་བབས: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, Path, data"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, འབྲས་བུ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, fruit"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, དེ་ཉིད་སོ་སོར་ཕྱེ་སྟེ་རྒྱས་པར་འཆད་པ།, གནས་བབས: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The detailed explanation of the divisions of reality, data"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, སྨོན་ལམ་ཀློག་པ་དང་ཐོས་པའི་ཕན་ཡོན་བསྟན་པ།, རྫོགས་ཆེན་གྱི་ལམ་ལ་བརྟན་པ་ཐོབ་པའི་རྣལ་འབྱོར་པས་བསམ་པས་ཇི་ལྟར་སྨོན་པ་དང་སྦྱོར་བ་ཚིག་ཉན་ཀློག་བྱས་པའི་ཕན་ཡོན་དངོས།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The Benefits Of Reading And Hearing The Prayer Of Aspiration, l actual benefits of listening to and reading the words of the Great Perfection as they are intended applied and recited by a yogin who has attained stability on the path of the Great Perfection"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, སྨོན་ལམ་ཀློག་པ་དང་ཐོས་པའི་ཕན་ཡོན་བསྟན་པ།, དུས་གནད་བསྟན་པ།: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The Benefits Of Reading And Hearing The Prayer Of Aspiration, The Key Points of Time"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, སྨོན་ལམ་ཀློག་པ་དང་ཐོས་པའི་ཕན་ཡོན་བསྟན་པ།, གནས་བབས: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, The Benefits Of Reading And Hearing The Prayer Of Aspiration, data"} + +(Text)--->བྱང་གཏེར་དགོངས་པ་ཟང་ཐལ་གྱི་རྒྱུད་ཆེན་ལས་བྱུང་བའི་ཀུན་བཟང་སྨོན་ལམ་གྱི་རྣམ་བཤད། ཀུན་བཟང་ཉེ་ལམ་འོད་སྣང་གསལ་བའི་སྒྲོན་མ།, གནས་བབས: {"error": "Failed to parse sections for ref Prayer of Kuntuzangpo, data"} + +(Text)--->The short path of Samantabhadra the lamp that illuminates with light: [] + +(Text)--->The short path of Samantabhadra the lamp that illuminates with light: [] + +(Text)--->The short path of Samantabhadra the lamp that illuminates with light: [] + +(Text)--->The short path of Samantabhadra the lamp that illuminates with light: [] + +(Text)--->The short path of Samantabhadra the lamp that illuminates with light: [] + +(Text)--->The short path of Samantabhadra the lamp that illuminates with light: [] diff --git a/src/pecha_uploader/text/upload.py b/src/pecha_uploader/text/upload.py index 8bb4b0a..bab4bf8 100644 --- a/src/pecha_uploader/text/upload.py +++ b/src/pecha_uploader/text/upload.py @@ -45,7 +45,11 @@ def post_text(text_name: str, text_content: Dict): try: response = urllib.request.urlopen(req) res = response.read().decode("utf-8") - if "error" not in res: + if "error" in res: + if "Failed to parse sections for ref" in res: + return {"status": True} + return {"status": False, "error": res} + else: return {"status": True} return {"status": False, "error": res}