[{"data":1,"prerenderedAt":11373},["ShallowReactive",2],{"\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Flive-data-framework-mcp-server-app":3,"navigation-developers":5014,"\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Flive-data-framework-mcp-server":6962,"surr-\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Flive-data-framework-mcp-server":11370},{"id":4,"title":5,"author":6,"body":7,"description":4997,"extension":4998,"meta":4999,"navigation":219,"path":5009,"seo":5010,"sitemap":5011,"stem":5012,"__hash__":5013},"content\u002F2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F40.live-data-framework-mcp-server.md","Pathway Live Data Framework MCP Server",null,{"type":8,"value":9,"toc":4975},"minimark",[10,14,19,31,34,38,41,70,75,78,81,84,87,91,98,112,116,130,134,145,620,626,634,651,677,693,710,716,724,806,809,847,851,855,866,1074,1096,1100,1103,1113,1154,1157,1368,1371,1379,1464,1468,1471,2093,2102,2107,2647,2660,2701,2704,2827,2831,2834,2837,2847,2882,2889,2892,3228,3235,3267,3280,3283,3340,3343,3347,3350,4316,4325,4331,4334,4478,4481,4485,4488,4491,4505,4509,4512,4593,4596,4964,4968,4971],[11,12,5],"h1",{"id":13},"pathway-live-data-framework-mcp-server",[15,16,18],"h2",{"id":17},"introduction","Introduction",[20,21,22,23,30],"p",{},"The ",[24,25,29],"a",{"href":26,"rel":27},"https:\u002F\u002Fmodelcontextprotocol.io\u002Fdocs\u002Fgetting-started\u002Fintro",[28],"nofollow","Model Context Protocol"," (MCP) is designed to standardize the way applications interact with large language models (LLMs).\nIt serves as a bridge, much like a universal connector, enabling seamless integration between AI models and various data sources and tools.\nThis protocol facilitates the creation of sophisticated AI workflows and agents, enhancing the capabilities of LLMs by connecting them with real-world data and functionalities.",[20,32,33],{},"The Pathway Live Data Framework provides its own MCP Server to allow you to deliver real-time statistics and document indexing for your agentic applications.\nIn this article, you will learn how to set up the MCP Server.",[15,35,37],{"id":36},"mcp-server","MCP Server",[20,39,40],{},"An MCP server functions as a crucial intermediary that connects AI applications to a wide array of data sources and tools.\nIt allows AI models to access and process real-time data, perform actions, and utilize contextual information from various applications seamlessly.\nThe key benefits of using an MCP server include:",[42,43,44,52,58,64],"ul",{},[45,46,47,51],"li",{},[48,49,50],"strong",{},"Pre-built Integrations",": Access to a wide range of integrations for popular tools and platforms, simplifying the setup process.",[45,53,54,57],{},[48,55,56],{},"Custom Integrations",": The ability to build and integrate custom tools and data sources, tailored to specific needs and workflows.",[45,59,60,63],{},[48,61,62],{},"Open Protocol",": A freely implementable and usable protocol, ensuring flexibility and broad compatibility.",[45,65,66,69],{},[48,67,68],{},"Portability",": The capability to switch between different applications while retaining context, enhancing adaptability.",[71,72,74],"h3",{"id":73},"mcp-client","MCP Client",[20,76,77],{},"The MCP Client connects AI applications to MCP servers, allowing them to access various data sources and tools. This connection is important for improving AI capabilities, as it allows access to databases, document stores, and real-time statistics. The MCP Client is customizable, so developers can adjust its functions to meet specific needs and add custom integrations for unique tools and data sources using different MCP servers at once.",[20,79,80],{},"MCP Clients are used in AI applications like chatbots and data analysis tools to access data from various sources.\nThey help these applications provide accurate and timely responses by connecting to databases and document stores, improving decision-making and user interactions.",[15,82,5],{"id":83},"pathway-live-data-framework-mcp-server-1",[20,85,86],{},"The MCP Server provides the real-time data processing capabilities of the Pathway Live Data Framework engine to your AI applications.\nBy integrating with the extensive data connectors and processing framework of Pathway Live Data Framework, the MCP Server enables AI models to access real-time statistics and document stores efficiently.\nThis integration is essential for applications that require up-to-date information and context-aware responses.",[71,88,90],{"id":89},"installation-and-requirements","Installation and Requirements",[20,92,93,94],{},"You need to install Pathway Live Data Framework LLM xpack to use the MCP server: ",[95,96,97],"code",{},"pip install pathway[xpack-llm]",[99,100,101],"note",{},[20,102,103,106,107,111],{},[48,104,105],{},"Important",": The MCP Server requires a Pathway Live Data Framework license key. You can obtain a free license key ",[24,108,110],{"href":109},"\u002Fframework\u002Fget-license","here",".",[71,113,115],{"id":114},"key-features","Key Features",[42,117,118,124],{},[45,119,120,123],{},[48,121,122],{},"Real-Time Statistics",": The MCP Server can provide real-time statistics to LLMs, enabling them to make informed, data-driven decisions based on the latest information.",[45,125,126,129],{},[48,127,128],{},"Document Store for RAG",": The server offers a real-time index for retrieval-augmented generation, enhancing the ability of LLMs to retrieve and utilize relevant documents and data effectively.",[71,131,133],{"id":132},"how-it-works","How it works",[20,135,136,137,140,141,144],{},"Let's start with a working example, exposing a ",[95,138,139],{},"get_constant_value"," tool returning the value ",[95,142,143],{},"1",":",[146,147,152],"pre",{"className":148,"code":149,"language":150,"meta":151,"style":151},"language-python shiki shiki-themes material-theme-palenight","import pathway as pw\nfrom pathway.xpacks.llm.mcp_server import McpServable, McpServer, PathwayMcp\n\n\n# no argument required\nclass EmptyRequestSchema(pw.Schema):\n    pass\n\n\nclass ConstantValueTool(McpServable):\n\n    def get_constant_value(self, input_from_client: pw.Table) -> pw.Table:\n        \"\"\"\n        Return a constant value.\n        \"\"\"\n\n        return input_from_client.select(result=1)\n\n    def register_mcp(self, server: McpServer):\n        server.tool(\n            \"get_constant_value\",\n            request_handler=self.get_constant_value,\n            schema=EmptyRequestSchema,\n        )\n\nfunction_to_serve = ConstantValueTool()\n\npathway_mcp_server = PathwayMcp(\n    name=\"Streamable MCP Server\",\n    transport=\"streamable-http\",\n    host=\"localhost\",\n    port=8123,\n    serve=[function_to_serve],\n)\n\npw.run()\n","python","",[95,153,154,173,214,221,226,233,258,264,269,274,289,294,342,348,354,359,364,391,396,419,433,448,464,477,483,488,501,506,519,536,553,570,583,598,603,608],{"__ignoreMap":151},[155,156,159,163,167,170],"span",{"class":157,"line":158},"line",1,[155,160,162],{"class":161},"s6cf3","import",[155,164,166],{"class":165},"s0W1g"," pathway ",[155,168,169],{"class":161},"as",[155,171,172],{"class":165}," pw\n",[155,174,176,179,182,185,188,190,193,195,198,200,203,206,209,211],{"class":157,"line":175},2,[155,177,178],{"class":161},"from",[155,180,181],{"class":165}," pathway",[155,183,111],{"class":184},"sAklC",[155,186,187],{"class":165},"xpacks",[155,189,111],{"class":184},[155,191,192],{"class":165},"llm",[155,194,111],{"class":184},[155,196,197],{"class":165},"mcp_server ",[155,199,162],{"class":161},[155,201,202],{"class":165}," McpServable",[155,204,205],{"class":184},",",[155,207,208],{"class":165}," McpServer",[155,210,205],{"class":184},[155,212,213],{"class":165}," PathwayMcp\n",[155,215,217],{"class":157,"line":216},3,[155,218,220],{"emptyLinePlaceholder":219},true,"\n",[155,222,224],{"class":157,"line":223},4,[155,225,220],{"emptyLinePlaceholder":219},[155,227,229],{"class":157,"line":228},5,[155,230,232],{"class":231},"saEQR","# no argument required\n",[155,234,236,240,244,247,250,252,255],{"class":157,"line":235},6,[155,237,239],{"class":238},"sJ14y","class",[155,241,243],{"class":242},"s5Dmg"," EmptyRequestSchema",[155,245,246],{"class":184},"(",[155,248,249],{"class":242},"pw",[155,251,111],{"class":184},[155,253,254],{"class":242},"Schema",[155,256,257],{"class":184},"):\n",[155,259,261],{"class":157,"line":260},7,[155,262,263],{"class":161},"    pass\n",[155,265,267],{"class":157,"line":266},8,[155,268,220],{"emptyLinePlaceholder":219},[155,270,272],{"class":157,"line":271},9,[155,273,220],{"emptyLinePlaceholder":219},[155,275,277,279,282,284,287],{"class":157,"line":276},10,[155,278,239],{"class":238},[155,280,281],{"class":242}," ConstantValueTool",[155,283,246],{"class":184},[155,285,286],{"class":242},"McpServable",[155,288,257],{"class":184},[155,290,292],{"class":157,"line":291},11,[155,293,220],{"emptyLinePlaceholder":219},[155,295,297,300,304,306,310,312,316,318,321,323,327,330,333,335,337,339],{"class":157,"line":296},12,[155,298,299],{"class":238},"    def",[155,301,303],{"class":302},"sdLwU"," get_constant_value",[155,305,246],{"class":184},[155,307,309],{"class":308},"st21m","self",[155,311,205],{"class":184},[155,313,315],{"class":314},"s7ZW3"," input_from_client",[155,317,144],{"class":184},[155,319,320],{"class":165}," pw",[155,322,111],{"class":184},[155,324,326],{"class":325},"s-wAU","Table",[155,328,329],{"class":184},")",[155,331,332],{"class":184}," ->",[155,334,320],{"class":165},[155,336,111],{"class":184},[155,338,326],{"class":325},[155,340,341],{"class":184},":\n",[155,343,345],{"class":157,"line":344},13,[155,346,347],{"class":161},"        \"\"\"\n",[155,349,351],{"class":157,"line":350},14,[155,352,353],{"class":231},"        Return a constant value.\n",[155,355,357],{"class":157,"line":356},15,[155,358,347],{"class":161},[155,360,362],{"class":157,"line":361},16,[155,363,220],{"emptyLinePlaceholder":219},[155,365,367,370,372,374,377,379,382,385,388],{"class":157,"line":366},17,[155,368,369],{"class":161},"        return",[155,371,315],{"class":165},[155,373,111],{"class":184},[155,375,376],{"class":302},"select",[155,378,246],{"class":184},[155,380,381],{"class":314},"result",[155,383,384],{"class":184},"=",[155,386,143],{"class":387},"sx098",[155,389,390],{"class":184},")\n",[155,392,394],{"class":157,"line":393},18,[155,395,220],{"emptyLinePlaceholder":219},[155,397,399,401,404,406,408,410,413,415,417],{"class":157,"line":398},19,[155,400,299],{"class":238},[155,402,403],{"class":302}," register_mcp",[155,405,246],{"class":184},[155,407,309],{"class":308},[155,409,205],{"class":184},[155,411,412],{"class":314}," server",[155,414,144],{"class":184},[155,416,208],{"class":165},[155,418,257],{"class":184},[155,420,422,425,427,430],{"class":157,"line":421},20,[155,423,424],{"class":165},"        server",[155,426,111],{"class":184},[155,428,429],{"class":302},"tool",[155,431,432],{"class":184},"(\n",[155,434,436,439,442,445],{"class":157,"line":435},21,[155,437,438],{"class":184},"            \"",[155,440,139],{"class":441},"sfyAc",[155,443,444],{"class":184},"\"",[155,446,447],{"class":184},",\n",[155,449,451,454,456,458,460,462],{"class":157,"line":450},22,[155,452,453],{"class":314},"            request_handler",[155,455,384],{"class":184},[155,457,309],{"class":165},[155,459,111],{"class":184},[155,461,139],{"class":325},[155,463,447],{"class":184},[155,465,467,470,472,475],{"class":157,"line":466},23,[155,468,469],{"class":314},"            schema",[155,471,384],{"class":184},[155,473,474],{"class":302},"EmptyRequestSchema",[155,476,447],{"class":184},[155,478,480],{"class":157,"line":479},24,[155,481,482],{"class":184},"        )\n",[155,484,486],{"class":157,"line":485},25,[155,487,220],{"emptyLinePlaceholder":219},[155,489,491,494,496,498],{"class":157,"line":490},26,[155,492,493],{"class":165},"function_to_serve ",[155,495,384],{"class":184},[155,497,281],{"class":302},[155,499,500],{"class":184},"()\n",[155,502,504],{"class":157,"line":503},27,[155,505,220],{"emptyLinePlaceholder":219},[155,507,509,512,514,517],{"class":157,"line":508},28,[155,510,511],{"class":165},"pathway_mcp_server ",[155,513,384],{"class":184},[155,515,516],{"class":302}," PathwayMcp",[155,518,432],{"class":184},[155,520,522,525,527,529,532,534],{"class":157,"line":521},29,[155,523,524],{"class":314},"    name",[155,526,384],{"class":184},[155,528,444],{"class":184},[155,530,531],{"class":441},"Streamable MCP Server",[155,533,444],{"class":184},[155,535,447],{"class":184},[155,537,539,542,544,546,549,551],{"class":157,"line":538},30,[155,540,541],{"class":314},"    transport",[155,543,384],{"class":184},[155,545,444],{"class":184},[155,547,548],{"class":441},"streamable-http",[155,550,444],{"class":184},[155,552,447],{"class":184},[155,554,556,559,561,563,566,568],{"class":157,"line":555},31,[155,557,558],{"class":314},"    host",[155,560,384],{"class":184},[155,562,444],{"class":184},[155,564,565],{"class":441},"localhost",[155,567,444],{"class":184},[155,569,447],{"class":184},[155,571,573,576,578,581],{"class":157,"line":572},32,[155,574,575],{"class":314},"    port",[155,577,384],{"class":184},[155,579,580],{"class":387},"8123",[155,582,447],{"class":184},[155,584,586,589,592,595],{"class":157,"line":585},33,[155,587,588],{"class":314},"    serve",[155,590,591],{"class":184},"=[",[155,593,594],{"class":302},"function_to_serve",[155,596,597],{"class":184},"],\n",[155,599,601],{"class":157,"line":600},34,[155,602,390],{"class":184},[155,604,606],{"class":157,"line":605},35,[155,607,220],{"emptyLinePlaceholder":219},[155,609,611,613,615,618],{"class":157,"line":610},36,[155,612,249],{"class":165},[155,614,111],{"class":184},[155,616,617],{"class":302},"run",[155,619,500],{"class":184},[621,622,624],"h4",{"id":623},"mcpservable",[95,625,286],{},[20,627,628,629,633],{},"To run an MCP server, you first need an operation to expose: the tool that the MCP client will call.\nIt is done by using an instance of a class inheriting the ",[48,630,631],{},[95,632,286],{}," class.\nIt requires three things:",[42,635,636,642,645],{},[45,637,638,639,641],{},"A schema to impose the required input for this tool. Let's call it ",[95,640,474],{}," for simplicity (the name does not matter).",[45,643,644],{},"The function called whenever the tool is called, the actual operation the MCP server will expose.",[45,646,22,647,650],{},[95,648,649],{},"register_mcp"," function that will expose the function in the MCP server.",[20,652,653,654,657,658,660,661,664,665,667,668,670,671],{},"To be successfully exposed, the function ",[48,655,656],{},"must follow the following constraints",".\nIt must have two parameters: ",[95,659,309],{}," and a table, let's call it ",[95,662,663],{},"input_from_client"," (it can be named the way you want).\nThe table ",[95,666,663],{}," follows the ",[95,669,474],{}," schema and contains a single row.\nEach input parameter given in the client is inside the associated column.\nYou must use this table to compute the output you want to return to the MCP client.\nTo be valid, ",[48,672,673,674,676],{},"the function should return a table with a ",[95,675,381],{}," column and a single row, whose ID should be the same as the input table.",[20,678,679,680,682,683,685,686,689,690,692],{},"You can then expose the function by implementing the ",[95,681,649],{}," function which takes two arguments, ",[95,684,309],{}," and a ",[95,687,688],{},"McpServer",".\nYou need then to expose the tool using the ",[95,691,429],{}," method of the server, with the three arguments:",[42,694,695,698,704],{},[45,696,697],{},"The name your tool will have in the MCP Server.",[45,699,700,703],{},[95,701,702],{},"request_handler",": the function you created.",[45,705,706,709],{},[95,707,708],{},"schema",": the schema of the input from the MCP client.",[621,711,713],{"id":712},"pathwaymcp",[95,714,715],{},"PathwayMcp",[20,717,718,719,723],{},"Once your tool is defined, you can easily set up an MCP server using the ",[48,720,721],{},[95,722,715],{}," class:",[146,725,727],{"className":148,"code":726,"language":150,"meta":151,"style":151},"pathway_mcp_server = PathwayMcp(\n    name=\"Your Pathway Live Data Framework MCP Server\",\n    transport=\"streamable-http\",\n    host=\"localhost\",\n    port=8123,\n    serve=[function_to_serve],\n)\n",[95,728,729,739,754,768,782,792,802],{"__ignoreMap":151},[155,730,731,733,735,737],{"class":157,"line":158},[155,732,511],{"class":165},[155,734,384],{"class":184},[155,736,516],{"class":302},[155,738,432],{"class":184},[155,740,741,743,745,747,750,752],{"class":157,"line":175},[155,742,524],{"class":314},[155,744,384],{"class":184},[155,746,444],{"class":184},[155,748,749],{"class":441},"Your Pathway Live Data Framework MCP Server",[155,751,444],{"class":184},[155,753,447],{"class":184},[155,755,756,758,760,762,764,766],{"class":157,"line":216},[155,757,541],{"class":314},[155,759,384],{"class":184},[155,761,444],{"class":184},[155,763,548],{"class":441},[155,765,444],{"class":184},[155,767,447],{"class":184},[155,769,770,772,774,776,778,780],{"class":157,"line":223},[155,771,558],{"class":314},[155,773,384],{"class":184},[155,775,444],{"class":184},[155,777,565],{"class":441},[155,779,444],{"class":184},[155,781,447],{"class":184},[155,783,784,786,788,790],{"class":157,"line":228},[155,785,575],{"class":314},[155,787,384],{"class":184},[155,789,580],{"class":387},[155,791,447],{"class":184},[155,793,794,796,798,800],{"class":157,"line":235},[155,795,588],{"class":314},[155,797,591],{"class":184},[155,799,594],{"class":302},[155,801,597],{"class":184},[155,803,804],{"class":157,"line":260},[155,805,390],{"class":184},[20,807,808],{},"The MCP server requires the following arguments:",[42,810,811,817,826,832,838],{},[45,812,813,816],{},[95,814,815],{},"name",": The name of your MCP server, it'll be used by the MCP client to identify your MCP server.",[45,818,819,822,823,825],{},[95,820,821],{},"transport",": How to connect to the MCP server, only ",[95,824,548],{}," is available for now.",[45,827,828,831],{},[95,829,830],{},"host",": the host of the MCP server.",[45,833,834,837],{},[95,835,836],{},"port",": the port of the MCP server.",[45,839,840,843,844,846],{},[95,841,842],{},"serve",": The list of ",[95,845,286],{}," objects to expose in your MCP server.",[15,848,850],{"id":849},"examples","Examples",[71,852,854],{"id":853},"mcp-client-1","MCP client",[20,856,857,858,865],{},"To test your examples, you need an MCP client which will connect to your MCP server.\nYou can use the ",[24,859,862],{"href":860,"rel":861},"https:\u002F\u002Fgofastmcp.com\u002Fgetting-started\u002Fwelcome",[28],[95,863,864],{},"fastmcp"," package to define a client as follows:",[146,867,869],{"className":148,"code":868,"language":150,"meta":151,"style":151},"import asyncio\nfrom fastmcp import Client\n\nPATHWAY_MCP_URL = \"http:\u002F\u002Flocalhost:8123\u002Fmcp\u002F\"\n\nclient = Client(PATHWAY_MCP_URL)\n\nasync def main():\n    async with client:\n        tools = await client.list_tools()\n        print(tools)\n\n    async with client:\n        result = await client.call_tool(name=\"get_constant_value\", arguments={})\n        print(result)\n\nasyncio.run(main())\n",[95,870,871,878,890,894,910,914,931,935,949,962,981,993,997,1007,1043,1053,1057],{"__ignoreMap":151},[155,872,873,875],{"class":157,"line":158},[155,874,162],{"class":161},[155,876,877],{"class":165}," asyncio\n",[155,879,880,882,885,887],{"class":157,"line":175},[155,881,178],{"class":161},[155,883,884],{"class":165}," fastmcp ",[155,886,162],{"class":161},[155,888,889],{"class":165}," Client\n",[155,891,892],{"class":157,"line":216},[155,893,220],{"emptyLinePlaceholder":219},[155,895,896,899,901,904,907],{"class":157,"line":223},[155,897,898],{"class":165},"PATHWAY_MCP_URL ",[155,900,384],{"class":184},[155,902,903],{"class":184}," \"",[155,905,906],{"class":441},"http:\u002F\u002Flocalhost:8123\u002Fmcp\u002F",[155,908,909],{"class":184},"\"\n",[155,911,912],{"class":157,"line":228},[155,913,220],{"emptyLinePlaceholder":219},[155,915,916,919,921,924,926,929],{"class":157,"line":235},[155,917,918],{"class":165},"client ",[155,920,384],{"class":184},[155,922,923],{"class":302}," Client",[155,925,246],{"class":184},[155,927,928],{"class":302},"PATHWAY_MCP_URL",[155,930,390],{"class":184},[155,932,933],{"class":157,"line":260},[155,934,220],{"emptyLinePlaceholder":219},[155,936,937,940,943,946],{"class":157,"line":266},[155,938,939],{"class":238},"async",[155,941,942],{"class":238}," def",[155,944,945],{"class":302}," main",[155,947,948],{"class":184},"():\n",[155,950,951,954,957,960],{"class":157,"line":271},[155,952,953],{"class":161},"    async",[155,955,956],{"class":161}," with",[155,958,959],{"class":165}," client",[155,961,341],{"class":184},[155,963,964,967,969,972,974,976,979],{"class":157,"line":276},[155,965,966],{"class":165},"        tools ",[155,968,384],{"class":184},[155,970,971],{"class":161}," await",[155,973,959],{"class":165},[155,975,111],{"class":184},[155,977,978],{"class":302},"list_tools",[155,980,500],{"class":184},[155,982,983,986,988,991],{"class":157,"line":291},[155,984,985],{"class":302},"        print",[155,987,246],{"class":184},[155,989,990],{"class":302},"tools",[155,992,390],{"class":184},[155,994,995],{"class":157,"line":296},[155,996,220],{"emptyLinePlaceholder":219},[155,998,999,1001,1003,1005],{"class":157,"line":344},[155,1000,953],{"class":161},[155,1002,956],{"class":161},[155,1004,959],{"class":165},[155,1006,341],{"class":184},[155,1008,1009,1012,1014,1016,1018,1020,1023,1025,1027,1029,1031,1033,1035,1037,1040],{"class":157,"line":350},[155,1010,1011],{"class":165},"        result ",[155,1013,384],{"class":184},[155,1015,971],{"class":161},[155,1017,959],{"class":165},[155,1019,111],{"class":184},[155,1021,1022],{"class":302},"call_tool",[155,1024,246],{"class":184},[155,1026,815],{"class":314},[155,1028,384],{"class":184},[155,1030,444],{"class":184},[155,1032,139],{"class":441},[155,1034,444],{"class":184},[155,1036,205],{"class":184},[155,1038,1039],{"class":314}," arguments",[155,1041,1042],{"class":184},"={})\n",[155,1044,1045,1047,1049,1051],{"class":157,"line":356},[155,1046,985],{"class":302},[155,1048,246],{"class":184},[155,1050,381],{"class":302},[155,1052,390],{"class":184},[155,1054,1055],{"class":157,"line":361},[155,1056,220],{"emptyLinePlaceholder":219},[155,1058,1059,1062,1064,1066,1068,1071],{"class":157,"line":366},[155,1060,1061],{"class":165},"asyncio",[155,1063,111],{"class":184},[155,1065,617],{"class":302},[155,1067,246],{"class":184},[155,1069,1070],{"class":302},"main",[155,1072,1073],{"class":184},"())\n",[20,1075,1076,1077,1079,1080,1082,1083,1085,1086,1089,1090,1092,1093,1095],{},"You can list the different tools available in the MCP server using the ",[95,1078,978],{}," of the client.\nTo access a given tool, you can use the method ",[95,1081,1022],{},", with the ",[95,1084,815],{}," and ",[95,1087,1088],{},"arguments"," parameters.\nThe ",[95,1091,1088],{}," should be a dict of the different values: in this case, the ",[95,1094,139],{}," tool does not require any input so an empty dictionary is passed.",[71,1097,1099],{"id":1098},"addition","Addition",[20,1101,1102],{},"You can easily act on the parameters given by the client. Let's see how to make an addition.",[20,1104,1105,1106,1085,1109,1112],{},"First, you need to impose the client to send two integers, ",[95,1107,1108],{},"x",[95,1110,1111],{},"y",".\nThis is done using the schema:",[146,1114,1116],{"className":148,"code":1115,"language":150,"meta":151,"style":151},"class AddRequestSchema(pw.Schema):\n    x: int\n    y: int\n",[95,1117,1118,1135,1145],{"__ignoreMap":151},[155,1119,1120,1122,1125,1127,1129,1131,1133],{"class":157,"line":158},[155,1121,239],{"class":238},[155,1123,1124],{"class":242}," AddRequestSchema",[155,1126,246],{"class":184},[155,1128,249],{"class":242},[155,1130,111],{"class":184},[155,1132,254],{"class":242},[155,1134,257],{"class":184},[155,1136,1137,1140,1142],{"class":157,"line":175},[155,1138,1139],{"class":165},"    x",[155,1141,144],{"class":184},[155,1143,1144],{"class":242}," int\n",[155,1146,1147,1150,1152],{"class":157,"line":216},[155,1148,1149],{"class":165},"    y",[155,1151,144],{"class":184},[155,1153,1144],{"class":242},[20,1155,1156],{},"You can now implement the class to do an addition:",[146,1158,1160],{"className":148,"code":1159,"language":150,"meta":151,"style":151},"class AddTool(McpServable):\n    def add(self, x_y_values: pw.Table) -> pw.Table:\n        \"\"\"\n        Return a table containing the sum of the parameters x and y.\n        \"\"\"\n\n        results = x_y_values.select(result=pw.this.x + pw.this.y)\n        return results\n\n    def register_mcp(self, server: McpServer):\n        server.tool(\n            \"add\",\n            request_handler=self.add,\n            schema=AddRequestSchema,\n        )\n\nfunction_to_serve = AddTool()\n",[95,1161,1162,1175,1211,1215,1220,1224,1228,1273,1280,1284,1304,1314,1325,1339,1350,1354,1358],{"__ignoreMap":151},[155,1163,1164,1166,1169,1171,1173],{"class":157,"line":158},[155,1165,239],{"class":238},[155,1167,1168],{"class":242}," AddTool",[155,1170,246],{"class":184},[155,1172,286],{"class":242},[155,1174,257],{"class":184},[155,1176,1177,1179,1182,1184,1186,1188,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209],{"class":157,"line":175},[155,1178,299],{"class":238},[155,1180,1181],{"class":302}," add",[155,1183,246],{"class":184},[155,1185,309],{"class":308},[155,1187,205],{"class":184},[155,1189,1190],{"class":314}," x_y_values",[155,1192,144],{"class":184},[155,1194,320],{"class":165},[155,1196,111],{"class":184},[155,1198,326],{"class":325},[155,1200,329],{"class":184},[155,1202,332],{"class":184},[155,1204,320],{"class":165},[155,1206,111],{"class":184},[155,1208,326],{"class":325},[155,1210,341],{"class":184},[155,1212,1213],{"class":157,"line":216},[155,1214,347],{"class":161},[155,1216,1217],{"class":157,"line":223},[155,1218,1219],{"class":231},"        Return a table containing the sum of the parameters x and y.\n",[155,1221,1222],{"class":157,"line":228},[155,1223,347],{"class":161},[155,1225,1226],{"class":157,"line":235},[155,1227,220],{"emptyLinePlaceholder":219},[155,1229,1230,1233,1235,1237,1239,1241,1243,1245,1247,1249,1251,1254,1256,1258,1261,1263,1265,1267,1269,1271],{"class":157,"line":260},[155,1231,1232],{"class":165},"        results ",[155,1234,384],{"class":184},[155,1236,1190],{"class":165},[155,1238,111],{"class":184},[155,1240,376],{"class":302},[155,1242,246],{"class":184},[155,1244,381],{"class":314},[155,1246,384],{"class":184},[155,1248,249],{"class":302},[155,1250,111],{"class":184},[155,1252,1253],{"class":325},"this",[155,1255,111],{"class":184},[155,1257,1108],{"class":325},[155,1259,1260],{"class":184}," +",[155,1262,320],{"class":302},[155,1264,111],{"class":184},[155,1266,1253],{"class":325},[155,1268,111],{"class":184},[155,1270,1111],{"class":325},[155,1272,390],{"class":184},[155,1274,1275,1277],{"class":157,"line":266},[155,1276,369],{"class":161},[155,1278,1279],{"class":165}," results\n",[155,1281,1282],{"class":157,"line":271},[155,1283,220],{"emptyLinePlaceholder":219},[155,1285,1286,1288,1290,1292,1294,1296,1298,1300,1302],{"class":157,"line":276},[155,1287,299],{"class":238},[155,1289,403],{"class":302},[155,1291,246],{"class":184},[155,1293,309],{"class":308},[155,1295,205],{"class":184},[155,1297,412],{"class":314},[155,1299,144],{"class":184},[155,1301,208],{"class":165},[155,1303,257],{"class":184},[155,1305,1306,1308,1310,1312],{"class":157,"line":291},[155,1307,424],{"class":165},[155,1309,111],{"class":184},[155,1311,429],{"class":302},[155,1313,432],{"class":184},[155,1315,1316,1318,1321,1323],{"class":157,"line":296},[155,1317,438],{"class":184},[155,1319,1320],{"class":441},"add",[155,1322,444],{"class":184},[155,1324,447],{"class":184},[155,1326,1327,1329,1331,1333,1335,1337],{"class":157,"line":344},[155,1328,453],{"class":314},[155,1330,384],{"class":184},[155,1332,309],{"class":165},[155,1334,111],{"class":184},[155,1336,1320],{"class":325},[155,1338,447],{"class":184},[155,1340,1341,1343,1345,1348],{"class":157,"line":350},[155,1342,469],{"class":314},[155,1344,384],{"class":184},[155,1346,1347],{"class":302},"AddRequestSchema",[155,1349,447],{"class":184},[155,1351,1352],{"class":157,"line":356},[155,1353,482],{"class":184},[155,1355,1356],{"class":157,"line":361},[155,1357,220],{"emptyLinePlaceholder":219},[155,1359,1360,1362,1364,1366],{"class":157,"line":366},[155,1361,493],{"class":165},[155,1363,384],{"class":184},[155,1365,1168],{"class":302},[155,1367,500],{"class":184},[20,1369,1370],{},"The rest is unchanged. You can see below how to add several tools to the same MCP server.",[20,1372,1373,1374,1085,1376,1378],{},"You can use the tool in the MCP client by sending a dictionary having both ",[95,1375,1108],{},[95,1377,1111],{}," as entries:",[146,1380,1382],{"className":148,"code":1381,"language":150,"meta":151,"style":151},"    async with client:\n        result = await client.call_tool(name=\"add\", arguments={\"x\":4, \"y\":6})\n        print(result)\n",[95,1383,1384,1394,1454],{"__ignoreMap":151},[155,1385,1386,1388,1390,1392],{"class":157,"line":158},[155,1387,953],{"class":161},[155,1389,956],{"class":161},[155,1391,959],{"class":165},[155,1393,341],{"class":184},[155,1395,1396,1398,1400,1402,1404,1406,1408,1410,1412,1414,1416,1418,1420,1422,1424,1427,1429,1431,1433,1435,1438,1440,1442,1444,1446,1448,1451],{"class":157,"line":175},[155,1397,1011],{"class":165},[155,1399,384],{"class":184},[155,1401,971],{"class":161},[155,1403,959],{"class":165},[155,1405,111],{"class":184},[155,1407,1022],{"class":302},[155,1409,246],{"class":184},[155,1411,815],{"class":314},[155,1413,384],{"class":184},[155,1415,444],{"class":184},[155,1417,1320],{"class":441},[155,1419,444],{"class":184},[155,1421,205],{"class":184},[155,1423,1039],{"class":314},[155,1425,1426],{"class":184},"={",[155,1428,444],{"class":184},[155,1430,1108],{"class":441},[155,1432,444],{"class":184},[155,1434,144],{"class":184},[155,1436,1437],{"class":387},"4",[155,1439,205],{"class":184},[155,1441,903],{"class":184},[155,1443,1111],{"class":441},[155,1445,444],{"class":184},[155,1447,144],{"class":184},[155,1449,1450],{"class":387},"6",[155,1452,1453],{"class":184},"})\n",[155,1455,1456,1458,1460,1462],{"class":157,"line":216},[155,1457,985],{"class":302},[155,1459,246],{"class":184},[155,1461,381],{"class":302},[155,1463,390],{"class":184},[71,1465,1467],{"id":1466},"exposing-several-tools","Exposing several tools",[20,1469,1470],{},"You can easily expose multiple tools in the MCP server, you simply need to define each tool, and add them to the list to expose:",[146,1472,1474],{"className":148,"code":1473,"language":150,"meta":151,"style":151},"import pathway as pw\nfrom pathway.xpacks.llm.mcp_server import McpServable, McpServer, PathwayMcp\n\n\n# no argument required\nclass EmptyRequestSchema(pw.Schema):\n    pass\n\nclass AddRequestSchema(pw.Schema):\n    x: int\n    y: int\n\n\nclass ConstantValueTool(McpServable):\n\n    def get_constant_value(self, input_from_client: pw.Table) -> pw.Table:\n        \"\"\"\n        Return a constant value.\n        \"\"\"\n\n        return input_from_client.select(result=1)\n\n    def register_mcp(self, server: McpServer):\n        server.tool(\n            \"get_constant_value\",\n            request_handler=self.get_constant_value,\n            schema=EmptyRequestSchema,\n        )\n\n\nclass AddTool(McpServable):\n    def add(self, x_y_values: pw.Table) -> pw.Table:\n        \"\"\"\n        Return a table containing the sum of the parameters x and y.\n        \"\"\"\n\n        results = x_y_values.select(result=pw.this.x + pw.this.y)\n        return results\n\n    def register_mcp(self, server: McpServer):\n        server.tool(\n            \"add\",\n            request_handler=self.add,\n            schema=AddRequestSchema,\n        )\n\n\nconstant_tool = ConstantValueTool()\nadd_tool = AddTool()\n\npathway_mcp_server = PathwayMcp(\n    name=\"Streamable MCP Server\",\n    transport=\"streamable-http\",\n    host=\"localhost\",\n    port=8123,\n    serve=[constant_tool, add_tool],\n)\n\npw.run()\n",[95,1475,1476,1486,1516,1520,1524,1528,1544,1548,1552,1568,1576,1584,1588,1592,1604,1608,1642,1646,1650,1654,1658,1678,1682,1702,1712,1722,1736,1746,1750,1754,1758,1770,1804,1808,1812,1816,1820,1863,1870,1875,1896,1907,1918,1933,1944,1949,1954,1959,1971,1983,1988,1999,2014,2029,2044,2055,2072,2077,2082],{"__ignoreMap":151},[155,1477,1478,1480,1482,1484],{"class":157,"line":158},[155,1479,162],{"class":161},[155,1481,166],{"class":165},[155,1483,169],{"class":161},[155,1485,172],{"class":165},[155,1487,1488,1490,1492,1494,1496,1498,1500,1502,1504,1506,1508,1510,1512,1514],{"class":157,"line":175},[155,1489,178],{"class":161},[155,1491,181],{"class":165},[155,1493,111],{"class":184},[155,1495,187],{"class":165},[155,1497,111],{"class":184},[155,1499,192],{"class":165},[155,1501,111],{"class":184},[155,1503,197],{"class":165},[155,1505,162],{"class":161},[155,1507,202],{"class":165},[155,1509,205],{"class":184},[155,1511,208],{"class":165},[155,1513,205],{"class":184},[155,1515,213],{"class":165},[155,1517,1518],{"class":157,"line":216},[155,1519,220],{"emptyLinePlaceholder":219},[155,1521,1522],{"class":157,"line":223},[155,1523,220],{"emptyLinePlaceholder":219},[155,1525,1526],{"class":157,"line":228},[155,1527,232],{"class":231},[155,1529,1530,1532,1534,1536,1538,1540,1542],{"class":157,"line":235},[155,1531,239],{"class":238},[155,1533,243],{"class":242},[155,1535,246],{"class":184},[155,1537,249],{"class":242},[155,1539,111],{"class":184},[155,1541,254],{"class":242},[155,1543,257],{"class":184},[155,1545,1546],{"class":157,"line":260},[155,1547,263],{"class":161},[155,1549,1550],{"class":157,"line":266},[155,1551,220],{"emptyLinePlaceholder":219},[155,1553,1554,1556,1558,1560,1562,1564,1566],{"class":157,"line":271},[155,1555,239],{"class":238},[155,1557,1124],{"class":242},[155,1559,246],{"class":184},[155,1561,249],{"class":242},[155,1563,111],{"class":184},[155,1565,254],{"class":242},[155,1567,257],{"class":184},[155,1569,1570,1572,1574],{"class":157,"line":276},[155,1571,1139],{"class":165},[155,1573,144],{"class":184},[155,1575,1144],{"class":242},[155,1577,1578,1580,1582],{"class":157,"line":291},[155,1579,1149],{"class":165},[155,1581,144],{"class":184},[155,1583,1144],{"class":242},[155,1585,1586],{"class":157,"line":296},[155,1587,220],{"emptyLinePlaceholder":219},[155,1589,1590],{"class":157,"line":344},[155,1591,220],{"emptyLinePlaceholder":219},[155,1593,1594,1596,1598,1600,1602],{"class":157,"line":350},[155,1595,239],{"class":238},[155,1597,281],{"class":242},[155,1599,246],{"class":184},[155,1601,286],{"class":242},[155,1603,257],{"class":184},[155,1605,1606],{"class":157,"line":356},[155,1607,220],{"emptyLinePlaceholder":219},[155,1609,1610,1612,1614,1616,1618,1620,1622,1624,1626,1628,1630,1632,1634,1636,1638,1640],{"class":157,"line":361},[155,1611,299],{"class":238},[155,1613,303],{"class":302},[155,1615,246],{"class":184},[155,1617,309],{"class":308},[155,1619,205],{"class":184},[155,1621,315],{"class":314},[155,1623,144],{"class":184},[155,1625,320],{"class":165},[155,1627,111],{"class":184},[155,1629,326],{"class":325},[155,1631,329],{"class":184},[155,1633,332],{"class":184},[155,1635,320],{"class":165},[155,1637,111],{"class":184},[155,1639,326],{"class":325},[155,1641,341],{"class":184},[155,1643,1644],{"class":157,"line":366},[155,1645,347],{"class":161},[155,1647,1648],{"class":157,"line":393},[155,1649,353],{"class":231},[155,1651,1652],{"class":157,"line":398},[155,1653,347],{"class":161},[155,1655,1656],{"class":157,"line":421},[155,1657,220],{"emptyLinePlaceholder":219},[155,1659,1660,1662,1664,1666,1668,1670,1672,1674,1676],{"class":157,"line":435},[155,1661,369],{"class":161},[155,1663,315],{"class":165},[155,1665,111],{"class":184},[155,1667,376],{"class":302},[155,1669,246],{"class":184},[155,1671,381],{"class":314},[155,1673,384],{"class":184},[155,1675,143],{"class":387},[155,1677,390],{"class":184},[155,1679,1680],{"class":157,"line":450},[155,1681,220],{"emptyLinePlaceholder":219},[155,1683,1684,1686,1688,1690,1692,1694,1696,1698,1700],{"class":157,"line":466},[155,1685,299],{"class":238},[155,1687,403],{"class":302},[155,1689,246],{"class":184},[155,1691,309],{"class":308},[155,1693,205],{"class":184},[155,1695,412],{"class":314},[155,1697,144],{"class":184},[155,1699,208],{"class":165},[155,1701,257],{"class":184},[155,1703,1704,1706,1708,1710],{"class":157,"line":479},[155,1705,424],{"class":165},[155,1707,111],{"class":184},[155,1709,429],{"class":302},[155,1711,432],{"class":184},[155,1713,1714,1716,1718,1720],{"class":157,"line":485},[155,1715,438],{"class":184},[155,1717,139],{"class":441},[155,1719,444],{"class":184},[155,1721,447],{"class":184},[155,1723,1724,1726,1728,1730,1732,1734],{"class":157,"line":490},[155,1725,453],{"class":314},[155,1727,384],{"class":184},[155,1729,309],{"class":165},[155,1731,111],{"class":184},[155,1733,139],{"class":325},[155,1735,447],{"class":184},[155,1737,1738,1740,1742,1744],{"class":157,"line":503},[155,1739,469],{"class":314},[155,1741,384],{"class":184},[155,1743,474],{"class":302},[155,1745,447],{"class":184},[155,1747,1748],{"class":157,"line":508},[155,1749,482],{"class":184},[155,1751,1752],{"class":157,"line":521},[155,1753,220],{"emptyLinePlaceholder":219},[155,1755,1756],{"class":157,"line":538},[155,1757,220],{"emptyLinePlaceholder":219},[155,1759,1760,1762,1764,1766,1768],{"class":157,"line":555},[155,1761,239],{"class":238},[155,1763,1168],{"class":242},[155,1765,246],{"class":184},[155,1767,286],{"class":242},[155,1769,257],{"class":184},[155,1771,1772,1774,1776,1778,1780,1782,1784,1786,1788,1790,1792,1794,1796,1798,1800,1802],{"class":157,"line":572},[155,1773,299],{"class":238},[155,1775,1181],{"class":302},[155,1777,246],{"class":184},[155,1779,309],{"class":308},[155,1781,205],{"class":184},[155,1783,1190],{"class":314},[155,1785,144],{"class":184},[155,1787,320],{"class":165},[155,1789,111],{"class":184},[155,1791,326],{"class":325},[155,1793,329],{"class":184},[155,1795,332],{"class":184},[155,1797,320],{"class":165},[155,1799,111],{"class":184},[155,1801,326],{"class":325},[155,1803,341],{"class":184},[155,1805,1806],{"class":157,"line":585},[155,1807,347],{"class":161},[155,1809,1810],{"class":157,"line":600},[155,1811,1219],{"class":231},[155,1813,1814],{"class":157,"line":605},[155,1815,347],{"class":161},[155,1817,1818],{"class":157,"line":610},[155,1819,220],{"emptyLinePlaceholder":219},[155,1821,1823,1825,1827,1829,1831,1833,1835,1837,1839,1841,1843,1845,1847,1849,1851,1853,1855,1857,1859,1861],{"class":157,"line":1822},37,[155,1824,1232],{"class":165},[155,1826,384],{"class":184},[155,1828,1190],{"class":165},[155,1830,111],{"class":184},[155,1832,376],{"class":302},[155,1834,246],{"class":184},[155,1836,381],{"class":314},[155,1838,384],{"class":184},[155,1840,249],{"class":302},[155,1842,111],{"class":184},[155,1844,1253],{"class":325},[155,1846,111],{"class":184},[155,1848,1108],{"class":325},[155,1850,1260],{"class":184},[155,1852,320],{"class":302},[155,1854,111],{"class":184},[155,1856,1253],{"class":325},[155,1858,111],{"class":184},[155,1860,1111],{"class":325},[155,1862,390],{"class":184},[155,1864,1866,1868],{"class":157,"line":1865},38,[155,1867,369],{"class":161},[155,1869,1279],{"class":165},[155,1871,1873],{"class":157,"line":1872},39,[155,1874,220],{"emptyLinePlaceholder":219},[155,1876,1878,1880,1882,1884,1886,1888,1890,1892,1894],{"class":157,"line":1877},40,[155,1879,299],{"class":238},[155,1881,403],{"class":302},[155,1883,246],{"class":184},[155,1885,309],{"class":308},[155,1887,205],{"class":184},[155,1889,412],{"class":314},[155,1891,144],{"class":184},[155,1893,208],{"class":165},[155,1895,257],{"class":184},[155,1897,1899,1901,1903,1905],{"class":157,"line":1898},41,[155,1900,424],{"class":165},[155,1902,111],{"class":184},[155,1904,429],{"class":302},[155,1906,432],{"class":184},[155,1908,1910,1912,1914,1916],{"class":157,"line":1909},42,[155,1911,438],{"class":184},[155,1913,1320],{"class":441},[155,1915,444],{"class":184},[155,1917,447],{"class":184},[155,1919,1921,1923,1925,1927,1929,1931],{"class":157,"line":1920},43,[155,1922,453],{"class":314},[155,1924,384],{"class":184},[155,1926,309],{"class":165},[155,1928,111],{"class":184},[155,1930,1320],{"class":325},[155,1932,447],{"class":184},[155,1934,1936,1938,1940,1942],{"class":157,"line":1935},44,[155,1937,469],{"class":314},[155,1939,384],{"class":184},[155,1941,1347],{"class":302},[155,1943,447],{"class":184},[155,1945,1947],{"class":157,"line":1946},45,[155,1948,482],{"class":184},[155,1950,1952],{"class":157,"line":1951},46,[155,1953,220],{"emptyLinePlaceholder":219},[155,1955,1957],{"class":157,"line":1956},47,[155,1958,220],{"emptyLinePlaceholder":219},[155,1960,1962,1965,1967,1969],{"class":157,"line":1961},48,[155,1963,1964],{"class":165},"constant_tool ",[155,1966,384],{"class":184},[155,1968,281],{"class":302},[155,1970,500],{"class":184},[155,1972,1974,1977,1979,1981],{"class":157,"line":1973},49,[155,1975,1976],{"class":165},"add_tool ",[155,1978,384],{"class":184},[155,1980,1168],{"class":302},[155,1982,500],{"class":184},[155,1984,1986],{"class":157,"line":1985},50,[155,1987,220],{"emptyLinePlaceholder":219},[155,1989,1991,1993,1995,1997],{"class":157,"line":1990},51,[155,1992,511],{"class":165},[155,1994,384],{"class":184},[155,1996,516],{"class":302},[155,1998,432],{"class":184},[155,2000,2002,2004,2006,2008,2010,2012],{"class":157,"line":2001},52,[155,2003,524],{"class":314},[155,2005,384],{"class":184},[155,2007,444],{"class":184},[155,2009,531],{"class":441},[155,2011,444],{"class":184},[155,2013,447],{"class":184},[155,2015,2017,2019,2021,2023,2025,2027],{"class":157,"line":2016},53,[155,2018,541],{"class":314},[155,2020,384],{"class":184},[155,2022,444],{"class":184},[155,2024,548],{"class":441},[155,2026,444],{"class":184},[155,2028,447],{"class":184},[155,2030,2032,2034,2036,2038,2040,2042],{"class":157,"line":2031},54,[155,2033,558],{"class":314},[155,2035,384],{"class":184},[155,2037,444],{"class":184},[155,2039,565],{"class":441},[155,2041,444],{"class":184},[155,2043,447],{"class":184},[155,2045,2047,2049,2051,2053],{"class":157,"line":2046},55,[155,2048,575],{"class":314},[155,2050,384],{"class":184},[155,2052,580],{"class":387},[155,2054,447],{"class":184},[155,2056,2058,2060,2062,2065,2067,2070],{"class":157,"line":2057},56,[155,2059,588],{"class":314},[155,2061,591],{"class":184},[155,2063,2064],{"class":302},"constant_tool",[155,2066,205],{"class":184},[155,2068,2069],{"class":302}," add_tool",[155,2071,597],{"class":184},[155,2073,2075],{"class":157,"line":2074},57,[155,2076,390],{"class":184},[155,2078,2080],{"class":157,"line":2079},58,[155,2081,220],{"emptyLinePlaceholder":219},[155,2083,2085,2087,2089,2091],{"class":157,"line":2084},59,[155,2086,249],{"class":165},[155,2088,111],{"class":184},[155,2090,617],{"class":302},[155,2092,500],{"class":184},[20,2094,2095,2096,2098,2099,2101],{},"The resulting MCP server will have both the ",[95,2097,139],{}," tool and the ",[95,2100,1320],{}," tool.",[20,2103,2104,2105,144],{},"Alternatively, you can add several tools in a single class.\nYou simply need to expose each tool to the server in ",[95,2106,649],{},[146,2108,2110],{"className":148,"code":2109,"language":150,"meta":151,"style":151},"import pathway as pw\nfrom pathway.xpacks.llm.mcp_server import McpServable, McpServer, PathwayMcp\n\n\nclass EmptyRequestSchema(pw.Schema):\n    pass\n\nclass AddRequestSchema(pw.Schema):\n    x: int\n    y: int\n\n\nclass BasicTools(McpServable):\n\n    def get_constant_value(self, input_from_client: pw.Table) -> pw.Table:\n        \"\"\"\n        Return a constant value.\n        \"\"\"\n\n        return input_from_client.select(result=1)\n\n    def add(self, x_y_values: pw.Table) -> pw.Table:\n        \"\"\"\n        Return a table containing the sum of the parameters x and y.\n        \"\"\"\n\n        results = x_y_values.select(result=pw.this.x + pw.this.y)\n        return results\n\n    def register_mcp(self, server: McpServer):\n        server.tool(\n            \"get_constant_value\",\n            request_handler=self.get_constant_value,\n            schema=EmptyRequestSchema,\n        )\n        server.tool(\n            \"add\",\n            request_handler=self.add,\n            schema=AddRequestSchema,\n        )\n\n\nbasic_tools = BasicTools()\n\npathway_mcp_server = PathwayMcp(\n    name=\"Streamable MCP Server\",\n    transport=\"streamable-http\",\n    host=\"localhost\",\n    port=8123,\n    serve=[basic_tools],\n)\n\npw.run()\n",[95,2111,2112,2122,2152,2156,2160,2176,2180,2184,2200,2208,2216,2220,2224,2237,2241,2275,2279,2283,2287,2291,2311,2315,2349,2353,2357,2361,2365,2407,2413,2417,2437,2447,2457,2471,2481,2485,2495,2505,2519,2529,2533,2537,2541,2552,2556,2566,2580,2594,2608,2618,2629,2633,2637],{"__ignoreMap":151},[155,2113,2114,2116,2118,2120],{"class":157,"line":158},[155,2115,162],{"class":161},[155,2117,166],{"class":165},[155,2119,169],{"class":161},[155,2121,172],{"class":165},[155,2123,2124,2126,2128,2130,2132,2134,2136,2138,2140,2142,2144,2146,2148,2150],{"class":157,"line":175},[155,2125,178],{"class":161},[155,2127,181],{"class":165},[155,2129,111],{"class":184},[155,2131,187],{"class":165},[155,2133,111],{"class":184},[155,2135,192],{"class":165},[155,2137,111],{"class":184},[155,2139,197],{"class":165},[155,2141,162],{"class":161},[155,2143,202],{"class":165},[155,2145,205],{"class":184},[155,2147,208],{"class":165},[155,2149,205],{"class":184},[155,2151,213],{"class":165},[155,2153,2154],{"class":157,"line":216},[155,2155,220],{"emptyLinePlaceholder":219},[155,2157,2158],{"class":157,"line":223},[155,2159,220],{"emptyLinePlaceholder":219},[155,2161,2162,2164,2166,2168,2170,2172,2174],{"class":157,"line":228},[155,2163,239],{"class":238},[155,2165,243],{"class":242},[155,2167,246],{"class":184},[155,2169,249],{"class":242},[155,2171,111],{"class":184},[155,2173,254],{"class":242},[155,2175,257],{"class":184},[155,2177,2178],{"class":157,"line":235},[155,2179,263],{"class":161},[155,2181,2182],{"class":157,"line":260},[155,2183,220],{"emptyLinePlaceholder":219},[155,2185,2186,2188,2190,2192,2194,2196,2198],{"class":157,"line":266},[155,2187,239],{"class":238},[155,2189,1124],{"class":242},[155,2191,246],{"class":184},[155,2193,249],{"class":242},[155,2195,111],{"class":184},[155,2197,254],{"class":242},[155,2199,257],{"class":184},[155,2201,2202,2204,2206],{"class":157,"line":271},[155,2203,1139],{"class":165},[155,2205,144],{"class":184},[155,2207,1144],{"class":242},[155,2209,2210,2212,2214],{"class":157,"line":276},[155,2211,1149],{"class":165},[155,2213,144],{"class":184},[155,2215,1144],{"class":242},[155,2217,2218],{"class":157,"line":291},[155,2219,220],{"emptyLinePlaceholder":219},[155,2221,2222],{"class":157,"line":296},[155,2223,220],{"emptyLinePlaceholder":219},[155,2225,2226,2228,2231,2233,2235],{"class":157,"line":344},[155,2227,239],{"class":238},[155,2229,2230],{"class":242}," BasicTools",[155,2232,246],{"class":184},[155,2234,286],{"class":242},[155,2236,257],{"class":184},[155,2238,2239],{"class":157,"line":350},[155,2240,220],{"emptyLinePlaceholder":219},[155,2242,2243,2245,2247,2249,2251,2253,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273],{"class":157,"line":356},[155,2244,299],{"class":238},[155,2246,303],{"class":302},[155,2248,246],{"class":184},[155,2250,309],{"class":308},[155,2252,205],{"class":184},[155,2254,315],{"class":314},[155,2256,144],{"class":184},[155,2258,320],{"class":165},[155,2260,111],{"class":184},[155,2262,326],{"class":325},[155,2264,329],{"class":184},[155,2266,332],{"class":184},[155,2268,320],{"class":165},[155,2270,111],{"class":184},[155,2272,326],{"class":325},[155,2274,341],{"class":184},[155,2276,2277],{"class":157,"line":361},[155,2278,347],{"class":161},[155,2280,2281],{"class":157,"line":366},[155,2282,353],{"class":231},[155,2284,2285],{"class":157,"line":393},[155,2286,347],{"class":161},[155,2288,2289],{"class":157,"line":398},[155,2290,220],{"emptyLinePlaceholder":219},[155,2292,2293,2295,2297,2299,2301,2303,2305,2307,2309],{"class":157,"line":421},[155,2294,369],{"class":161},[155,2296,315],{"class":165},[155,2298,111],{"class":184},[155,2300,376],{"class":302},[155,2302,246],{"class":184},[155,2304,381],{"class":314},[155,2306,384],{"class":184},[155,2308,143],{"class":387},[155,2310,390],{"class":184},[155,2312,2313],{"class":157,"line":435},[155,2314,220],{"emptyLinePlaceholder":219},[155,2316,2317,2319,2321,2323,2325,2327,2329,2331,2333,2335,2337,2339,2341,2343,2345,2347],{"class":157,"line":450},[155,2318,299],{"class":238},[155,2320,1181],{"class":302},[155,2322,246],{"class":184},[155,2324,309],{"class":308},[155,2326,205],{"class":184},[155,2328,1190],{"class":314},[155,2330,144],{"class":184},[155,2332,320],{"class":165},[155,2334,111],{"class":184},[155,2336,326],{"class":325},[155,2338,329],{"class":184},[155,2340,332],{"class":184},[155,2342,320],{"class":165},[155,2344,111],{"class":184},[155,2346,326],{"class":325},[155,2348,341],{"class":184},[155,2350,2351],{"class":157,"line":466},[155,2352,347],{"class":161},[155,2354,2355],{"class":157,"line":479},[155,2356,1219],{"class":231},[155,2358,2359],{"class":157,"line":485},[155,2360,347],{"class":161},[155,2362,2363],{"class":157,"line":490},[155,2364,220],{"emptyLinePlaceholder":219},[155,2366,2367,2369,2371,2373,2375,2377,2379,2381,2383,2385,2387,2389,2391,2393,2395,2397,2399,2401,2403,2405],{"class":157,"line":503},[155,2368,1232],{"class":165},[155,2370,384],{"class":184},[155,2372,1190],{"class":165},[155,2374,111],{"class":184},[155,2376,376],{"class":302},[155,2378,246],{"class":184},[155,2380,381],{"class":314},[155,2382,384],{"class":184},[155,2384,249],{"class":302},[155,2386,111],{"class":184},[155,2388,1253],{"class":325},[155,2390,111],{"class":184},[155,2392,1108],{"class":325},[155,2394,1260],{"class":184},[155,2396,320],{"class":302},[155,2398,111],{"class":184},[155,2400,1253],{"class":325},[155,2402,111],{"class":184},[155,2404,1111],{"class":325},[155,2406,390],{"class":184},[155,2408,2409,2411],{"class":157,"line":508},[155,2410,369],{"class":161},[155,2412,1279],{"class":165},[155,2414,2415],{"class":157,"line":521},[155,2416,220],{"emptyLinePlaceholder":219},[155,2418,2419,2421,2423,2425,2427,2429,2431,2433,2435],{"class":157,"line":538},[155,2420,299],{"class":238},[155,2422,403],{"class":302},[155,2424,246],{"class":184},[155,2426,309],{"class":308},[155,2428,205],{"class":184},[155,2430,412],{"class":314},[155,2432,144],{"class":184},[155,2434,208],{"class":165},[155,2436,257],{"class":184},[155,2438,2439,2441,2443,2445],{"class":157,"line":555},[155,2440,424],{"class":165},[155,2442,111],{"class":184},[155,2444,429],{"class":302},[155,2446,432],{"class":184},[155,2448,2449,2451,2453,2455],{"class":157,"line":572},[155,2450,438],{"class":184},[155,2452,139],{"class":441},[155,2454,444],{"class":184},[155,2456,447],{"class":184},[155,2458,2459,2461,2463,2465,2467,2469],{"class":157,"line":585},[155,2460,453],{"class":314},[155,2462,384],{"class":184},[155,2464,309],{"class":165},[155,2466,111],{"class":184},[155,2468,139],{"class":325},[155,2470,447],{"class":184},[155,2472,2473,2475,2477,2479],{"class":157,"line":600},[155,2474,469],{"class":314},[155,2476,384],{"class":184},[155,2478,474],{"class":302},[155,2480,447],{"class":184},[155,2482,2483],{"class":157,"line":605},[155,2484,482],{"class":184},[155,2486,2487,2489,2491,2493],{"class":157,"line":610},[155,2488,424],{"class":165},[155,2490,111],{"class":184},[155,2492,429],{"class":302},[155,2494,432],{"class":184},[155,2496,2497,2499,2501,2503],{"class":157,"line":1822},[155,2498,438],{"class":184},[155,2500,1320],{"class":441},[155,2502,444],{"class":184},[155,2504,447],{"class":184},[155,2506,2507,2509,2511,2513,2515,2517],{"class":157,"line":1865},[155,2508,453],{"class":314},[155,2510,384],{"class":184},[155,2512,309],{"class":165},[155,2514,111],{"class":184},[155,2516,1320],{"class":325},[155,2518,447],{"class":184},[155,2520,2521,2523,2525,2527],{"class":157,"line":1872},[155,2522,469],{"class":314},[155,2524,384],{"class":184},[155,2526,1347],{"class":302},[155,2528,447],{"class":184},[155,2530,2531],{"class":157,"line":1877},[155,2532,482],{"class":184},[155,2534,2535],{"class":157,"line":1898},[155,2536,220],{"emptyLinePlaceholder":219},[155,2538,2539],{"class":157,"line":1909},[155,2540,220],{"emptyLinePlaceholder":219},[155,2542,2543,2546,2548,2550],{"class":157,"line":1920},[155,2544,2545],{"class":165},"basic_tools ",[155,2547,384],{"class":184},[155,2549,2230],{"class":302},[155,2551,500],{"class":184},[155,2553,2554],{"class":157,"line":1935},[155,2555,220],{"emptyLinePlaceholder":219},[155,2557,2558,2560,2562,2564],{"class":157,"line":1946},[155,2559,511],{"class":165},[155,2561,384],{"class":184},[155,2563,516],{"class":302},[155,2565,432],{"class":184},[155,2567,2568,2570,2572,2574,2576,2578],{"class":157,"line":1951},[155,2569,524],{"class":314},[155,2571,384],{"class":184},[155,2573,444],{"class":184},[155,2575,531],{"class":441},[155,2577,444],{"class":184},[155,2579,447],{"class":184},[155,2581,2582,2584,2586,2588,2590,2592],{"class":157,"line":1956},[155,2583,541],{"class":314},[155,2585,384],{"class":184},[155,2587,444],{"class":184},[155,2589,548],{"class":441},[155,2591,444],{"class":184},[155,2593,447],{"class":184},[155,2595,2596,2598,2600,2602,2604,2606],{"class":157,"line":1961},[155,2597,558],{"class":314},[155,2599,384],{"class":184},[155,2601,444],{"class":184},[155,2603,565],{"class":441},[155,2605,444],{"class":184},[155,2607,447],{"class":184},[155,2609,2610,2612,2614,2616],{"class":157,"line":1973},[155,2611,575],{"class":314},[155,2613,384],{"class":184},[155,2615,580],{"class":387},[155,2617,447],{"class":184},[155,2619,2620,2622,2624,2627],{"class":157,"line":1985},[155,2621,588],{"class":314},[155,2623,591],{"class":184},[155,2625,2626],{"class":302},"basic_tools",[155,2628,597],{"class":184},[155,2630,2631],{"class":157,"line":1990},[155,2632,390],{"class":184},[155,2634,2635],{"class":157,"line":2001},[155,2636,220],{"emptyLinePlaceholder":219},[155,2638,2639,2641,2643,2645],{"class":157,"line":2016},[155,2640,249],{"class":165},[155,2642,111],{"class":184},[155,2644,617],{"class":302},[155,2646,500],{"class":184},[20,2648,2649,2650,1085,2653,2655,2656,2659],{},"Both ways have the same results: ",[95,2651,2652],{},"get_constant_values",[95,2654,1320],{}," are exposed by the MCP server.\nYou can see both tools when calling the ",[95,2657,2658],{},"list_tool"," of the MCP client:",[146,2661,2663],{"className":148,"code":2662,"language":150,"meta":151,"style":151},"    async with client:\n        tools = await client.list_tools()\n        print(tools)\n",[95,2664,2665,2675,2691],{"__ignoreMap":151},[155,2666,2667,2669,2671,2673],{"class":157,"line":158},[155,2668,953],{"class":161},[155,2670,956],{"class":161},[155,2672,959],{"class":165},[155,2674,341],{"class":184},[155,2676,2677,2679,2681,2683,2685,2687,2689],{"class":157,"line":175},[155,2678,966],{"class":165},[155,2680,384],{"class":184},[155,2682,971],{"class":161},[155,2684,959],{"class":165},[155,2686,111],{"class":184},[155,2688,978],{"class":302},[155,2690,500],{"class":184},[155,2692,2693,2695,2697,2699],{"class":157,"line":216},[155,2694,985],{"class":302},[155,2696,246],{"class":184},[155,2698,990],{"class":302},[155,2700,390],{"class":184},[20,2702,2703],{},"Then you can run each of them:",[146,2705,2707],{"className":148,"code":2706,"language":150,"meta":151,"style":151},"    async with client:\n        result = await client.call_tool(name=\"get_constant_value\", arguments={})\n        print(result)\n        result = await client.call_tool(name=\"add\", arguments={\"x\":4, \"y\":6})\n        print(result)\n",[95,2708,2709,2719,2751,2761,2817],{"__ignoreMap":151},[155,2710,2711,2713,2715,2717],{"class":157,"line":158},[155,2712,953],{"class":161},[155,2714,956],{"class":161},[155,2716,959],{"class":165},[155,2718,341],{"class":184},[155,2720,2721,2723,2725,2727,2729,2731,2733,2735,2737,2739,2741,2743,2745,2747,2749],{"class":157,"line":175},[155,2722,1011],{"class":165},[155,2724,384],{"class":184},[155,2726,971],{"class":161},[155,2728,959],{"class":165},[155,2730,111],{"class":184},[155,2732,1022],{"class":302},[155,2734,246],{"class":184},[155,2736,815],{"class":314},[155,2738,384],{"class":184},[155,2740,444],{"class":184},[155,2742,139],{"class":441},[155,2744,444],{"class":184},[155,2746,205],{"class":184},[155,2748,1039],{"class":314},[155,2750,1042],{"class":184},[155,2752,2753,2755,2757,2759],{"class":157,"line":216},[155,2754,985],{"class":302},[155,2756,246],{"class":184},[155,2758,381],{"class":302},[155,2760,390],{"class":184},[155,2762,2763,2765,2767,2769,2771,2773,2775,2777,2779,2781,2783,2785,2787,2789,2791,2793,2795,2797,2799,2801,2803,2805,2807,2809,2811,2813,2815],{"class":157,"line":223},[155,2764,1011],{"class":165},[155,2766,384],{"class":184},[155,2768,971],{"class":161},[155,2770,959],{"class":165},[155,2772,111],{"class":184},[155,2774,1022],{"class":302},[155,2776,246],{"class":184},[155,2778,815],{"class":314},[155,2780,384],{"class":184},[155,2782,444],{"class":184},[155,2784,1320],{"class":441},[155,2786,444],{"class":184},[155,2788,205],{"class":184},[155,2790,1039],{"class":314},[155,2792,1426],{"class":184},[155,2794,444],{"class":184},[155,2796,1108],{"class":441},[155,2798,444],{"class":184},[155,2800,144],{"class":184},[155,2802,1437],{"class":387},[155,2804,205],{"class":184},[155,2806,903],{"class":184},[155,2808,1111],{"class":441},[155,2810,444],{"class":184},[155,2812,144],{"class":184},[155,2814,1450],{"class":387},[155,2816,1453],{"class":184},[155,2818,2819,2821,2823,2825],{"class":157,"line":228},[155,2820,985],{"class":302},[155,2822,246],{"class":184},[155,2824,381],{"class":302},[155,2826,390],{"class":184},[71,2828,2830],{"id":2829},"count","Count",[20,2832,2833],{},"Until now, you have been working using constant values or values given by the client.\nThe interest of the Pathway Live Data Framework is to be able to work on real-time tables.",[20,2835,2836],{},"Let's see how to count the entries in a table.",[20,2838,2839,2840,144],{},"First, you need a table, let's generate a synthetic one using the ",[24,2841,2843,2846],{"href":2842},"\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fartificial-streams",[95,2844,2845],{},"demo"," package",[146,2848,2850],{"className":148,"code":2849,"language":150,"meta":151,"style":151},"table = pw.demo.range_stream(nb_rows=50)\n",[95,2851,2852],{"__ignoreMap":151},[155,2853,2854,2857,2859,2861,2863,2865,2867,2870,2872,2875,2877,2880],{"class":157,"line":158},[155,2855,2856],{"class":165},"table ",[155,2858,384],{"class":184},[155,2860,320],{"class":165},[155,2862,111],{"class":184},[155,2864,2845],{"class":325},[155,2866,111],{"class":184},[155,2868,2869],{"class":302},"range_stream",[155,2871,246],{"class":184},[155,2873,2874],{"class":314},"nb_rows",[155,2876,384],{"class":184},[155,2878,2879],{"class":387},"50",[155,2881,390],{"class":184},[20,2883,2884,2885,2888],{},"This table will have a with a single column, ",[95,2886,2887],{},"value",", and will have a new entry each second, starting from 0 to 49.",[20,2890,2891],{},"Now we can define our tool, and count the number of elements in the table:",[146,2893,2895],{"className":148,"code":2894,"language":150,"meta":151,"style":151},"class CountTool(McpServable):\n\n    def get_count(self, empty_row: pw.Table) -> pw.Table:\n        \"\"\"\n        Return a the number of entries in the Pathway table.\n        \"\"\"\n\n        single_row_table = table.reduce(count=pw.reducers.count())\n        results = empty_row.join_left(single_row_table, id=empty_row.id).select(\n            count=pw.right.count\n        )\n        results = results.select(\n            result=pw.if_else(pw.this.count.is_none(), 0, pw.this.count)\n        )\n        return results\n\n    def register_mcp(self, server: McpServer):\n        server.tool(\n            \"get_count\",\n            request_handler=self.get_count,\n            schema=InputEmptyRequestSchema,\n        )\n\nfunction_to_serve = CountTool()\n",[95,2896,2897,2910,2914,2950,2954,2959,2963,2967,3001,3041,3060,3064,3079,3130,3134,3140,3144,3164,3174,3185,3199,3210,3214,3218],{"__ignoreMap":151},[155,2898,2899,2901,2904,2906,2908],{"class":157,"line":158},[155,2900,239],{"class":238},[155,2902,2903],{"class":242}," CountTool",[155,2905,246],{"class":184},[155,2907,286],{"class":242},[155,2909,257],{"class":184},[155,2911,2912],{"class":157,"line":175},[155,2913,220],{"emptyLinePlaceholder":219},[155,2915,2916,2918,2921,2923,2925,2927,2930,2932,2934,2936,2938,2940,2942,2944,2946,2948],{"class":157,"line":216},[155,2917,299],{"class":238},[155,2919,2920],{"class":302}," get_count",[155,2922,246],{"class":184},[155,2924,309],{"class":308},[155,2926,205],{"class":184},[155,2928,2929],{"class":314}," empty_row",[155,2931,144],{"class":184},[155,2933,320],{"class":165},[155,2935,111],{"class":184},[155,2937,326],{"class":325},[155,2939,329],{"class":184},[155,2941,332],{"class":184},[155,2943,320],{"class":165},[155,2945,111],{"class":184},[155,2947,326],{"class":325},[155,2949,341],{"class":184},[155,2951,2952],{"class":157,"line":223},[155,2953,347],{"class":161},[155,2955,2956],{"class":157,"line":228},[155,2957,2958],{"class":231},"        Return a the number of entries in the Pathway table.\n",[155,2960,2961],{"class":157,"line":235},[155,2962,347],{"class":161},[155,2964,2965],{"class":157,"line":260},[155,2966,220],{"emptyLinePlaceholder":219},[155,2968,2969,2972,2974,2977,2979,2982,2984,2986,2988,2990,2992,2995,2997,2999],{"class":157,"line":266},[155,2970,2971],{"class":165},"        single_row_table ",[155,2973,384],{"class":184},[155,2975,2976],{"class":165}," table",[155,2978,111],{"class":184},[155,2980,2981],{"class":302},"reduce",[155,2983,246],{"class":184},[155,2985,2829],{"class":314},[155,2987,384],{"class":184},[155,2989,249],{"class":302},[155,2991,111],{"class":184},[155,2993,2994],{"class":325},"reducers",[155,2996,111],{"class":184},[155,2998,2829],{"class":302},[155,3000,1073],{"class":184},[155,3002,3003,3005,3007,3009,3011,3014,3016,3019,3021,3024,3026,3029,3031,3034,3037,3039],{"class":157,"line":271},[155,3004,1232],{"class":165},[155,3006,384],{"class":184},[155,3008,2929],{"class":165},[155,3010,111],{"class":184},[155,3012,3013],{"class":302},"join_left",[155,3015,246],{"class":184},[155,3017,3018],{"class":302},"single_row_table",[155,3020,205],{"class":184},[155,3022,3023],{"class":314}," id",[155,3025,384],{"class":184},[155,3027,3028],{"class":302},"empty_row",[155,3030,111],{"class":184},[155,3032,3033],{"class":325},"id",[155,3035,3036],{"class":184},").",[155,3038,376],{"class":302},[155,3040,432],{"class":184},[155,3042,3043,3046,3048,3050,3052,3055,3057],{"class":157,"line":276},[155,3044,3045],{"class":314},"            count",[155,3047,384],{"class":184},[155,3049,249],{"class":302},[155,3051,111],{"class":184},[155,3053,3054],{"class":325},"right",[155,3056,111],{"class":184},[155,3058,3059],{"class":325},"count\n",[155,3061,3062],{"class":157,"line":291},[155,3063,482],{"class":184},[155,3065,3066,3068,3070,3073,3075,3077],{"class":157,"line":296},[155,3067,1232],{"class":165},[155,3069,384],{"class":184},[155,3071,3072],{"class":165}," results",[155,3074,111],{"class":184},[155,3076,376],{"class":302},[155,3078,432],{"class":184},[155,3080,3081,3084,3086,3088,3090,3093,3095,3097,3099,3101,3103,3105,3107,3110,3113,3116,3118,3120,3122,3124,3126,3128],{"class":157,"line":344},[155,3082,3083],{"class":314},"            result",[155,3085,384],{"class":184},[155,3087,249],{"class":302},[155,3089,111],{"class":184},[155,3091,3092],{"class":302},"if_else",[155,3094,246],{"class":184},[155,3096,249],{"class":302},[155,3098,111],{"class":184},[155,3100,1253],{"class":325},[155,3102,111],{"class":184},[155,3104,2829],{"class":325},[155,3106,111],{"class":184},[155,3108,3109],{"class":302},"is_none",[155,3111,3112],{"class":184},"(),",[155,3114,3115],{"class":387}," 0",[155,3117,205],{"class":184},[155,3119,320],{"class":302},[155,3121,111],{"class":184},[155,3123,1253],{"class":325},[155,3125,111],{"class":184},[155,3127,2829],{"class":325},[155,3129,390],{"class":184},[155,3131,3132],{"class":157,"line":350},[155,3133,482],{"class":184},[155,3135,3136,3138],{"class":157,"line":356},[155,3137,369],{"class":161},[155,3139,1279],{"class":165},[155,3141,3142],{"class":157,"line":361},[155,3143,220],{"emptyLinePlaceholder":219},[155,3145,3146,3148,3150,3152,3154,3156,3158,3160,3162],{"class":157,"line":366},[155,3147,299],{"class":238},[155,3149,403],{"class":302},[155,3151,246],{"class":184},[155,3153,309],{"class":308},[155,3155,205],{"class":184},[155,3157,412],{"class":314},[155,3159,144],{"class":184},[155,3161,208],{"class":165},[155,3163,257],{"class":184},[155,3165,3166,3168,3170,3172],{"class":157,"line":393},[155,3167,424],{"class":165},[155,3169,111],{"class":184},[155,3171,429],{"class":302},[155,3173,432],{"class":184},[155,3175,3176,3178,3181,3183],{"class":157,"line":398},[155,3177,438],{"class":184},[155,3179,3180],{"class":441},"get_count",[155,3182,444],{"class":184},[155,3184,447],{"class":184},[155,3186,3187,3189,3191,3193,3195,3197],{"class":157,"line":421},[155,3188,453],{"class":314},[155,3190,384],{"class":184},[155,3192,309],{"class":165},[155,3194,111],{"class":184},[155,3196,3180],{"class":325},[155,3198,447],{"class":184},[155,3200,3201,3203,3205,3208],{"class":157,"line":435},[155,3202,469],{"class":314},[155,3204,384],{"class":184},[155,3206,3207],{"class":302},"InputEmptyRequestSchema",[155,3209,447],{"class":184},[155,3211,3212],{"class":157,"line":450},[155,3213,482],{"class":184},[155,3215,3216],{"class":157,"line":466},[155,3217,220],{"emptyLinePlaceholder":219},[155,3219,3220,3222,3224,3226],{"class":157,"line":479},[155,3221,493],{"class":165},[155,3223,384],{"class":184},[155,3225,2903],{"class":302},[155,3227,500],{"class":184},[20,3229,3230,3231,3234],{},"Note that since the table returned must have a single row with the same ID as the input, you cannot directly return the ",[95,3232,3233],{},"table",".\nYou must use aggregators to obtain a single row table, and then put this value to the input table.",[20,3236,3237,3238,3244,3245,3247,3248,3252,3253,3255,3256,3258,3259,3262,3263,3266],{},"First, you can obtain the count using the ",[24,3239,3241,3243],{"href":3240},"\u002Fdevelopers\u002Fapi-docs\u002Freducers#pathway.reducers.count",[95,3242,2829],{}," reducer",".\nSince the table can be empty, the ",[95,3246,3018],{}," containing the count can be empty too: to copy the value you need to use a ",[24,3249,3251],{"href":3250},"\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fjoin-manual#outer-joins","left join",".\nThe left join will ensure the entry of the table from the client (",[95,3254,3028],{}," here) will be added, even if there is no entry that match (i.e., the other table is empty): in that case the ",[95,3257,2829],{}," value will be ",[95,3260,3261],{},"None",".\nYou can keep the same ID for this row by passing ",[95,3264,3265],{},"id=pw.left.id"," to the left join.",[20,3268,3269,3270,3272,3273,3276,3277,3279],{},"Finally, you need to change the ",[95,3271,3261],{}," value to ",[95,3274,3275],{},"0",".\nThis way, the server will return the count if the table is not empty and ",[95,3278,3275],{}," otherwise.",[20,3281,3282],{},"You can call this tool as follows:",[146,3284,3286],{"className":148,"code":3285,"language":150,"meta":151,"style":151},"    async with client:\n        result = await client.call_tool(name=\"get_count\", arguments={})\n        print(result)\n",[95,3287,3288,3298,3330],{"__ignoreMap":151},[155,3289,3290,3292,3294,3296],{"class":157,"line":158},[155,3291,953],{"class":161},[155,3293,956],{"class":161},[155,3295,959],{"class":165},[155,3297,341],{"class":184},[155,3299,3300,3302,3304,3306,3308,3310,3312,3314,3316,3318,3320,3322,3324,3326,3328],{"class":157,"line":175},[155,3301,1011],{"class":165},[155,3303,384],{"class":184},[155,3305,971],{"class":161},[155,3307,959],{"class":165},[155,3309,111],{"class":184},[155,3311,1022],{"class":302},[155,3313,246],{"class":184},[155,3315,815],{"class":314},[155,3317,384],{"class":184},[155,3319,444],{"class":184},[155,3321,3180],{"class":441},[155,3323,444],{"class":184},[155,3325,205],{"class":184},[155,3327,1039],{"class":314},[155,3329,1042],{"class":184},[155,3331,3332,3334,3336,3338],{"class":157,"line":216},[155,3333,985],{"class":302},[155,3335,246],{"class":184},[155,3337,381],{"class":302},[155,3339,390],{"class":184},[20,3341,3342],{},"This will return the number of rows in the table at the time the request was made.\nTry to run it several times in a row, the number will change as the table gets updated!",[15,3344,3346],{"id":3345},"statistics-example","Statistics Example",[20,3348,3349],{},"Here is a complete example of a tool to provide the real-time statistics about a table.",[146,3351,3353],{"className":148,"code":3352,"language":150,"meta":151,"style":151},"import pathway as pw\nfrom pathway.xpacks.llm.mcp_server import McpServable, McpServer, PathwayMcp\n\n\nclass ValueRequestSchema(pw.Schema):\n    pass\n\n\ntable = pw.demo.range_stream(nb_rows=50)\n\n\nclass StatisticsTool(McpServable):\n\n    def get_statistics(self, input_from_client: pw.Table) -> pw.Table:\n        \"\"\"\n        Return basic statistics about the table.\n        \"\"\"\n\n        @pw.udf\n        def statistics_udf(count, minimum, maximum, avg, latest) -> str:\n            return f\"count: {count}, min: {minimum}, max: {maximum}, avg: {avg}, latest: {latest}\"\n\n        single_row_table = table.groupby().reduce(\n            count=pw.reducers.count(pw.this.value),\n            min=pw.reducers.min(pw.this.value),\n            max=pw.reducers.max(pw.this.value),\n            avg=pw.reducers.avg(pw.this.value),\n            latest=pw.reducers.latest(pw.this.value),\n        )\n        single_cell_table = single_row_table.select(\n            single_cell=statistics_udf(\n                pw.this.count,\n                pw.this.min,\n                pw.this.max,\n                pw.this.avg,\n                pw.this.latest,\n            )\n        )\n        results = empty_row.join_left(single_cell_table, id=empty_row.id).select(\n            single_cell=pw.right.single_cell\n        )\n        results = results.select(\n            result=pw.if_else(\n                pw.this.single_cell.is_none(),\n                \"count: 0, min: None, max: None, avg: None, latest: None\",\n                pw.this.single_cell\n            )\n        )\n        return results\n\n    def register_mcp(self, server: McpServer):\n        server.tool(\n            \"get_statistics\",\n            request_handler=self.get_statistics,\n            schema=ValueRequestSchema,\n        )\n\n\nfunction_to_serve = StatisticsTool()\n\npathway_mcp_server = PathwayMcp(\n    name=\"Streamable MCP Server\",\n    transport=\"streamable-http\",\n    host=\"localhost\",\n    port=8123,\n    serve=[function_to_serve],\n)\n\npw.run(\n    monitoring_level=pw.MonitoringLevel.NONE,\n    terminate_on_error=False,\n)\n",[95,3354,3355,3365,3395,3399,3403,3420,3424,3428,3432,3458,3462,3466,3479,3483,3518,3522,3527,3531,3535,3547,3588,3649,3653,3673,3704,3736,3768,3799,3830,3834,3850,3862,3877,3891,3905,3919,3933,3938,3942,3977,3994,3998,4012,4026,4046,4058,4070,4074,4078,4084,4088,4108,4118,4129,4143,4154,4158,4162,4166,4176,4181,4192,4207,4222,4237,4248,4259,4264,4269,4280,4302,4311],{"__ignoreMap":151},[155,3356,3357,3359,3361,3363],{"class":157,"line":158},[155,3358,162],{"class":161},[155,3360,166],{"class":165},[155,3362,169],{"class":161},[155,3364,172],{"class":165},[155,3366,3367,3369,3371,3373,3375,3377,3379,3381,3383,3385,3387,3389,3391,3393],{"class":157,"line":175},[155,3368,178],{"class":161},[155,3370,181],{"class":165},[155,3372,111],{"class":184},[155,3374,187],{"class":165},[155,3376,111],{"class":184},[155,3378,192],{"class":165},[155,3380,111],{"class":184},[155,3382,197],{"class":165},[155,3384,162],{"class":161},[155,3386,202],{"class":165},[155,3388,205],{"class":184},[155,3390,208],{"class":165},[155,3392,205],{"class":184},[155,3394,213],{"class":165},[155,3396,3397],{"class":157,"line":216},[155,3398,220],{"emptyLinePlaceholder":219},[155,3400,3401],{"class":157,"line":223},[155,3402,220],{"emptyLinePlaceholder":219},[155,3404,3405,3407,3410,3412,3414,3416,3418],{"class":157,"line":228},[155,3406,239],{"class":238},[155,3408,3409],{"class":242}," ValueRequestSchema",[155,3411,246],{"class":184},[155,3413,249],{"class":242},[155,3415,111],{"class":184},[155,3417,254],{"class":242},[155,3419,257],{"class":184},[155,3421,3422],{"class":157,"line":235},[155,3423,263],{"class":161},[155,3425,3426],{"class":157,"line":260},[155,3427,220],{"emptyLinePlaceholder":219},[155,3429,3430],{"class":157,"line":266},[155,3431,220],{"emptyLinePlaceholder":219},[155,3433,3434,3436,3438,3440,3442,3444,3446,3448,3450,3452,3454,3456],{"class":157,"line":271},[155,3435,2856],{"class":165},[155,3437,384],{"class":184},[155,3439,320],{"class":165},[155,3441,111],{"class":184},[155,3443,2845],{"class":325},[155,3445,111],{"class":184},[155,3447,2869],{"class":302},[155,3449,246],{"class":184},[155,3451,2874],{"class":314},[155,3453,384],{"class":184},[155,3455,2879],{"class":387},[155,3457,390],{"class":184},[155,3459,3460],{"class":157,"line":276},[155,3461,220],{"emptyLinePlaceholder":219},[155,3463,3464],{"class":157,"line":291},[155,3465,220],{"emptyLinePlaceholder":219},[155,3467,3468,3470,3473,3475,3477],{"class":157,"line":296},[155,3469,239],{"class":238},[155,3471,3472],{"class":242}," StatisticsTool",[155,3474,246],{"class":184},[155,3476,286],{"class":242},[155,3478,257],{"class":184},[155,3480,3481],{"class":157,"line":344},[155,3482,220],{"emptyLinePlaceholder":219},[155,3484,3485,3487,3490,3492,3494,3496,3498,3500,3502,3504,3506,3508,3510,3512,3514,3516],{"class":157,"line":350},[155,3486,299],{"class":238},[155,3488,3489],{"class":302}," get_statistics",[155,3491,246],{"class":184},[155,3493,309],{"class":308},[155,3495,205],{"class":184},[155,3497,315],{"class":314},[155,3499,144],{"class":184},[155,3501,320],{"class":165},[155,3503,111],{"class":184},[155,3505,326],{"class":325},[155,3507,329],{"class":184},[155,3509,332],{"class":184},[155,3511,320],{"class":165},[155,3513,111],{"class":184},[155,3515,326],{"class":325},[155,3517,341],{"class":184},[155,3519,3520],{"class":157,"line":356},[155,3521,347],{"class":161},[155,3523,3524],{"class":157,"line":361},[155,3525,3526],{"class":231},"        Return basic statistics about the table.\n",[155,3528,3529],{"class":157,"line":366},[155,3530,347],{"class":161},[155,3532,3533],{"class":157,"line":393},[155,3534,220],{"emptyLinePlaceholder":219},[155,3536,3537,3540,3542,3544],{"class":157,"line":398},[155,3538,3539],{"class":184},"        @",[155,3541,249],{"class":302},[155,3543,111],{"class":184},[155,3545,3546],{"class":302},"udf\n",[155,3548,3549,3552,3555,3557,3559,3561,3564,3566,3569,3571,3574,3576,3579,3581,3583,3586],{"class":157,"line":421},[155,3550,3551],{"class":238},"        def",[155,3553,3554],{"class":302}," statistics_udf",[155,3556,246],{"class":184},[155,3558,2829],{"class":314},[155,3560,205],{"class":184},[155,3562,3563],{"class":314}," minimum",[155,3565,205],{"class":184},[155,3567,3568],{"class":314}," maximum",[155,3570,205],{"class":184},[155,3572,3573],{"class":314}," avg",[155,3575,205],{"class":184},[155,3577,3578],{"class":314}," latest",[155,3580,329],{"class":184},[155,3582,332],{"class":184},[155,3584,3585],{"class":242}," str",[155,3587,341],{"class":184},[155,3589,3590,3593,3596,3599,3602,3604,3607,3610,3612,3615,3617,3620,3622,3625,3627,3630,3632,3635,3637,3640,3642,3645,3647],{"class":157,"line":435},[155,3591,3592],{"class":161},"            return",[155,3594,3595],{"class":238}," f",[155,3597,3598],{"class":441},"\"count: ",[155,3600,3601],{"class":387},"{",[155,3603,2829],{"class":165},[155,3605,3606],{"class":387},"}",[155,3608,3609],{"class":441},", min: ",[155,3611,3601],{"class":387},[155,3613,3614],{"class":165},"minimum",[155,3616,3606],{"class":387},[155,3618,3619],{"class":441},", max: ",[155,3621,3601],{"class":387},[155,3623,3624],{"class":165},"maximum",[155,3626,3606],{"class":387},[155,3628,3629],{"class":441},", avg: ",[155,3631,3601],{"class":387},[155,3633,3634],{"class":165},"avg",[155,3636,3606],{"class":387},[155,3638,3639],{"class":441},", latest: ",[155,3641,3601],{"class":387},[155,3643,3644],{"class":165},"latest",[155,3646,3606],{"class":387},[155,3648,909],{"class":441},[155,3650,3651],{"class":157,"line":450},[155,3652,220],{"emptyLinePlaceholder":219},[155,3654,3655,3657,3659,3661,3663,3666,3669,3671],{"class":157,"line":466},[155,3656,2971],{"class":165},[155,3658,384],{"class":184},[155,3660,2976],{"class":165},[155,3662,111],{"class":184},[155,3664,3665],{"class":302},"groupby",[155,3667,3668],{"class":184},"().",[155,3670,2981],{"class":302},[155,3672,432],{"class":184},[155,3674,3675,3677,3679,3681,3683,3685,3687,3689,3691,3693,3695,3697,3699,3701],{"class":157,"line":479},[155,3676,3045],{"class":314},[155,3678,384],{"class":184},[155,3680,249],{"class":302},[155,3682,111],{"class":184},[155,3684,2994],{"class":325},[155,3686,111],{"class":184},[155,3688,2829],{"class":302},[155,3690,246],{"class":184},[155,3692,249],{"class":302},[155,3694,111],{"class":184},[155,3696,1253],{"class":325},[155,3698,111],{"class":184},[155,3700,2887],{"class":325},[155,3702,3703],{"class":184},"),\n",[155,3705,3706,3709,3711,3713,3715,3717,3719,3722,3724,3726,3728,3730,3732,3734],{"class":157,"line":485},[155,3707,3708],{"class":314},"            min",[155,3710,384],{"class":184},[155,3712,249],{"class":302},[155,3714,111],{"class":184},[155,3716,2994],{"class":325},[155,3718,111],{"class":184},[155,3720,3721],{"class":302},"min",[155,3723,246],{"class":184},[155,3725,249],{"class":302},[155,3727,111],{"class":184},[155,3729,1253],{"class":325},[155,3731,111],{"class":184},[155,3733,2887],{"class":325},[155,3735,3703],{"class":184},[155,3737,3738,3741,3743,3745,3747,3749,3751,3754,3756,3758,3760,3762,3764,3766],{"class":157,"line":490},[155,3739,3740],{"class":314},"            max",[155,3742,384],{"class":184},[155,3744,249],{"class":302},[155,3746,111],{"class":184},[155,3748,2994],{"class":325},[155,3750,111],{"class":184},[155,3752,3753],{"class":302},"max",[155,3755,246],{"class":184},[155,3757,249],{"class":302},[155,3759,111],{"class":184},[155,3761,1253],{"class":325},[155,3763,111],{"class":184},[155,3765,2887],{"class":325},[155,3767,3703],{"class":184},[155,3769,3770,3773,3775,3777,3779,3781,3783,3785,3787,3789,3791,3793,3795,3797],{"class":157,"line":503},[155,3771,3772],{"class":314},"            avg",[155,3774,384],{"class":184},[155,3776,249],{"class":302},[155,3778,111],{"class":184},[155,3780,2994],{"class":325},[155,3782,111],{"class":184},[155,3784,3634],{"class":302},[155,3786,246],{"class":184},[155,3788,249],{"class":302},[155,3790,111],{"class":184},[155,3792,1253],{"class":325},[155,3794,111],{"class":184},[155,3796,2887],{"class":325},[155,3798,3703],{"class":184},[155,3800,3801,3804,3806,3808,3810,3812,3814,3816,3818,3820,3822,3824,3826,3828],{"class":157,"line":508},[155,3802,3803],{"class":314},"            latest",[155,3805,384],{"class":184},[155,3807,249],{"class":302},[155,3809,111],{"class":184},[155,3811,2994],{"class":325},[155,3813,111],{"class":184},[155,3815,3644],{"class":302},[155,3817,246],{"class":184},[155,3819,249],{"class":302},[155,3821,111],{"class":184},[155,3823,1253],{"class":325},[155,3825,111],{"class":184},[155,3827,2887],{"class":325},[155,3829,3703],{"class":184},[155,3831,3832],{"class":157,"line":521},[155,3833,482],{"class":184},[155,3835,3836,3839,3841,3844,3846,3848],{"class":157,"line":538},[155,3837,3838],{"class":165},"        single_cell_table ",[155,3840,384],{"class":184},[155,3842,3843],{"class":165}," single_row_table",[155,3845,111],{"class":184},[155,3847,376],{"class":302},[155,3849,432],{"class":184},[155,3851,3852,3855,3857,3860],{"class":157,"line":555},[155,3853,3854],{"class":314},"            single_cell",[155,3856,384],{"class":184},[155,3858,3859],{"class":302},"statistics_udf",[155,3861,432],{"class":184},[155,3863,3864,3867,3869,3871,3873,3875],{"class":157,"line":572},[155,3865,3866],{"class":302},"                pw",[155,3868,111],{"class":184},[155,3870,1253],{"class":325},[155,3872,111],{"class":184},[155,3874,2829],{"class":325},[155,3876,447],{"class":184},[155,3878,3879,3881,3883,3885,3887,3889],{"class":157,"line":585},[155,3880,3866],{"class":302},[155,3882,111],{"class":184},[155,3884,1253],{"class":325},[155,3886,111],{"class":184},[155,3888,3721],{"class":325},[155,3890,447],{"class":184},[155,3892,3893,3895,3897,3899,3901,3903],{"class":157,"line":600},[155,3894,3866],{"class":302},[155,3896,111],{"class":184},[155,3898,1253],{"class":325},[155,3900,111],{"class":184},[155,3902,3753],{"class":325},[155,3904,447],{"class":184},[155,3906,3907,3909,3911,3913,3915,3917],{"class":157,"line":605},[155,3908,3866],{"class":302},[155,3910,111],{"class":184},[155,3912,1253],{"class":325},[155,3914,111],{"class":184},[155,3916,3634],{"class":325},[155,3918,447],{"class":184},[155,3920,3921,3923,3925,3927,3929,3931],{"class":157,"line":610},[155,3922,3866],{"class":302},[155,3924,111],{"class":184},[155,3926,1253],{"class":325},[155,3928,111],{"class":184},[155,3930,3644],{"class":325},[155,3932,447],{"class":184},[155,3934,3935],{"class":157,"line":1822},[155,3936,3937],{"class":184},"            )\n",[155,3939,3940],{"class":157,"line":1865},[155,3941,482],{"class":184},[155,3943,3944,3946,3948,3950,3952,3954,3956,3959,3961,3963,3965,3967,3969,3971,3973,3975],{"class":157,"line":1872},[155,3945,1232],{"class":165},[155,3947,384],{"class":184},[155,3949,2929],{"class":165},[155,3951,111],{"class":184},[155,3953,3013],{"class":302},[155,3955,246],{"class":184},[155,3957,3958],{"class":302},"single_cell_table",[155,3960,205],{"class":184},[155,3962,3023],{"class":314},[155,3964,384],{"class":184},[155,3966,3028],{"class":302},[155,3968,111],{"class":184},[155,3970,3033],{"class":325},[155,3972,3036],{"class":184},[155,3974,376],{"class":302},[155,3976,432],{"class":184},[155,3978,3979,3981,3983,3985,3987,3989,3991],{"class":157,"line":1877},[155,3980,3854],{"class":314},[155,3982,384],{"class":184},[155,3984,249],{"class":302},[155,3986,111],{"class":184},[155,3988,3054],{"class":325},[155,3990,111],{"class":184},[155,3992,3993],{"class":325},"single_cell\n",[155,3995,3996],{"class":157,"line":1898},[155,3997,482],{"class":184},[155,3999,4000,4002,4004,4006,4008,4010],{"class":157,"line":1909},[155,4001,1232],{"class":165},[155,4003,384],{"class":184},[155,4005,3072],{"class":165},[155,4007,111],{"class":184},[155,4009,376],{"class":302},[155,4011,432],{"class":184},[155,4013,4014,4016,4018,4020,4022,4024],{"class":157,"line":1920},[155,4015,3083],{"class":314},[155,4017,384],{"class":184},[155,4019,249],{"class":302},[155,4021,111],{"class":184},[155,4023,3092],{"class":302},[155,4025,432],{"class":184},[155,4027,4028,4030,4032,4034,4036,4039,4041,4043],{"class":157,"line":1935},[155,4029,3866],{"class":302},[155,4031,111],{"class":184},[155,4033,1253],{"class":325},[155,4035,111],{"class":184},[155,4037,4038],{"class":325},"single_cell",[155,4040,111],{"class":184},[155,4042,3109],{"class":302},[155,4044,4045],{"class":184},"(),\n",[155,4047,4048,4051,4054,4056],{"class":157,"line":1946},[155,4049,4050],{"class":184},"                \"",[155,4052,4053],{"class":441},"count: 0, min: None, max: None, avg: None, latest: None",[155,4055,444],{"class":184},[155,4057,447],{"class":184},[155,4059,4060,4062,4064,4066,4068],{"class":157,"line":1951},[155,4061,3866],{"class":302},[155,4063,111],{"class":184},[155,4065,1253],{"class":325},[155,4067,111],{"class":184},[155,4069,3993],{"class":325},[155,4071,4072],{"class":157,"line":1956},[155,4073,3937],{"class":184},[155,4075,4076],{"class":157,"line":1961},[155,4077,482],{"class":184},[155,4079,4080,4082],{"class":157,"line":1973},[155,4081,369],{"class":161},[155,4083,1279],{"class":165},[155,4085,4086],{"class":157,"line":1985},[155,4087,220],{"emptyLinePlaceholder":219},[155,4089,4090,4092,4094,4096,4098,4100,4102,4104,4106],{"class":157,"line":1990},[155,4091,299],{"class":238},[155,4093,403],{"class":302},[155,4095,246],{"class":184},[155,4097,309],{"class":308},[155,4099,205],{"class":184},[155,4101,412],{"class":314},[155,4103,144],{"class":184},[155,4105,208],{"class":165},[155,4107,257],{"class":184},[155,4109,4110,4112,4114,4116],{"class":157,"line":2001},[155,4111,424],{"class":165},[155,4113,111],{"class":184},[155,4115,429],{"class":302},[155,4117,432],{"class":184},[155,4119,4120,4122,4125,4127],{"class":157,"line":2016},[155,4121,438],{"class":184},[155,4123,4124],{"class":441},"get_statistics",[155,4126,444],{"class":184},[155,4128,447],{"class":184},[155,4130,4131,4133,4135,4137,4139,4141],{"class":157,"line":2031},[155,4132,453],{"class":314},[155,4134,384],{"class":184},[155,4136,309],{"class":165},[155,4138,111],{"class":184},[155,4140,4124],{"class":325},[155,4142,447],{"class":184},[155,4144,4145,4147,4149,4152],{"class":157,"line":2046},[155,4146,469],{"class":314},[155,4148,384],{"class":184},[155,4150,4151],{"class":302},"ValueRequestSchema",[155,4153,447],{"class":184},[155,4155,4156],{"class":157,"line":2057},[155,4157,482],{"class":184},[155,4159,4160],{"class":157,"line":2074},[155,4161,220],{"emptyLinePlaceholder":219},[155,4163,4164],{"class":157,"line":2079},[155,4165,220],{"emptyLinePlaceholder":219},[155,4167,4168,4170,4172,4174],{"class":157,"line":2084},[155,4169,493],{"class":165},[155,4171,384],{"class":184},[155,4173,3472],{"class":302},[155,4175,500],{"class":184},[155,4177,4179],{"class":157,"line":4178},60,[155,4180,220],{"emptyLinePlaceholder":219},[155,4182,4184,4186,4188,4190],{"class":157,"line":4183},61,[155,4185,511],{"class":165},[155,4187,384],{"class":184},[155,4189,516],{"class":302},[155,4191,432],{"class":184},[155,4193,4195,4197,4199,4201,4203,4205],{"class":157,"line":4194},62,[155,4196,524],{"class":314},[155,4198,384],{"class":184},[155,4200,444],{"class":184},[155,4202,531],{"class":441},[155,4204,444],{"class":184},[155,4206,447],{"class":184},[155,4208,4210,4212,4214,4216,4218,4220],{"class":157,"line":4209},63,[155,4211,541],{"class":314},[155,4213,384],{"class":184},[155,4215,444],{"class":184},[155,4217,548],{"class":441},[155,4219,444],{"class":184},[155,4221,447],{"class":184},[155,4223,4225,4227,4229,4231,4233,4235],{"class":157,"line":4224},64,[155,4226,558],{"class":314},[155,4228,384],{"class":184},[155,4230,444],{"class":184},[155,4232,565],{"class":441},[155,4234,444],{"class":184},[155,4236,447],{"class":184},[155,4238,4240,4242,4244,4246],{"class":157,"line":4239},65,[155,4241,575],{"class":314},[155,4243,384],{"class":184},[155,4245,580],{"class":387},[155,4247,447],{"class":184},[155,4249,4251,4253,4255,4257],{"class":157,"line":4250},66,[155,4252,588],{"class":314},[155,4254,591],{"class":184},[155,4256,594],{"class":302},[155,4258,597],{"class":184},[155,4260,4262],{"class":157,"line":4261},67,[155,4263,390],{"class":184},[155,4265,4267],{"class":157,"line":4266},68,[155,4268,220],{"emptyLinePlaceholder":219},[155,4270,4272,4274,4276,4278],{"class":157,"line":4271},69,[155,4273,249],{"class":165},[155,4275,111],{"class":184},[155,4277,617],{"class":302},[155,4279,432],{"class":184},[155,4281,4283,4286,4288,4290,4292,4295,4297,4300],{"class":157,"line":4282},70,[155,4284,4285],{"class":314},"    monitoring_level",[155,4287,384],{"class":184},[155,4289,249],{"class":302},[155,4291,111],{"class":184},[155,4293,4294],{"class":325},"MonitoringLevel",[155,4296,111],{"class":184},[155,4298,4299],{"class":325},"NONE",[155,4301,447],{"class":184},[155,4303,4305,4308],{"class":157,"line":4304},71,[155,4306,4307],{"class":314},"    terminate_on_error",[155,4309,4310],{"class":184},"=False,\n",[155,4312,4314],{"class":157,"line":4313},72,[155,4315,390],{"class":184},[20,4317,4318,4319,4321,4322,4324],{},"Note that the ",[95,4320,663],{}," table contains table with a single row, with only an ",[95,4323,3033],{}," column as the tool does not require any input.",[20,4326,4327,4328,4330],{},"Calling ",[95,4329,4124],{}," will return a string with the statistics. You can format it as a JSON for further computation on the MCP Client side.",[20,4332,4333],{},"Here is how the client should look like to access it:",[146,4335,4337],{"className":148,"code":4336,"language":150,"meta":151,"style":151},"import asyncio\nfrom fastmcp import Client\n\n# HTTP server\nPATHWAY_MCP_URL = \"http:\u002F\u002Flocalhost:8123\u002Fmcp\u002F\"\n\nclient = Client(PATHWAY_MCP_URL)\n\nasync def main():\n    async with client:\n        result = await client.call_tool(name=\"get_statistics\", arguments={})\n        print(result)\n\nasyncio.run(main())\n",[95,4338,4339,4345,4355,4359,4364,4376,4380,4394,4398,4408,4418,4450,4460,4464],{"__ignoreMap":151},[155,4340,4341,4343],{"class":157,"line":158},[155,4342,162],{"class":161},[155,4344,877],{"class":165},[155,4346,4347,4349,4351,4353],{"class":157,"line":175},[155,4348,178],{"class":161},[155,4350,884],{"class":165},[155,4352,162],{"class":161},[155,4354,889],{"class":165},[155,4356,4357],{"class":157,"line":216},[155,4358,220],{"emptyLinePlaceholder":219},[155,4360,4361],{"class":157,"line":223},[155,4362,4363],{"class":231},"# HTTP server\n",[155,4365,4366,4368,4370,4372,4374],{"class":157,"line":228},[155,4367,898],{"class":165},[155,4369,384],{"class":184},[155,4371,903],{"class":184},[155,4373,906],{"class":441},[155,4375,909],{"class":184},[155,4377,4378],{"class":157,"line":235},[155,4379,220],{"emptyLinePlaceholder":219},[155,4381,4382,4384,4386,4388,4390,4392],{"class":157,"line":260},[155,4383,918],{"class":165},[155,4385,384],{"class":184},[155,4387,923],{"class":302},[155,4389,246],{"class":184},[155,4391,928],{"class":302},[155,4393,390],{"class":184},[155,4395,4396],{"class":157,"line":266},[155,4397,220],{"emptyLinePlaceholder":219},[155,4399,4400,4402,4404,4406],{"class":157,"line":271},[155,4401,939],{"class":238},[155,4403,942],{"class":238},[155,4405,945],{"class":302},[155,4407,948],{"class":184},[155,4409,4410,4412,4414,4416],{"class":157,"line":276},[155,4411,953],{"class":161},[155,4413,956],{"class":161},[155,4415,959],{"class":165},[155,4417,341],{"class":184},[155,4419,4420,4422,4424,4426,4428,4430,4432,4434,4436,4438,4440,4442,4444,4446,4448],{"class":157,"line":291},[155,4421,1011],{"class":165},[155,4423,384],{"class":184},[155,4425,971],{"class":161},[155,4427,959],{"class":165},[155,4429,111],{"class":184},[155,4431,1022],{"class":302},[155,4433,246],{"class":184},[155,4435,815],{"class":314},[155,4437,384],{"class":184},[155,4439,444],{"class":184},[155,4441,4124],{"class":441},[155,4443,444],{"class":184},[155,4445,205],{"class":184},[155,4447,1039],{"class":314},[155,4449,1042],{"class":184},[155,4451,4452,4454,4456,4458],{"class":157,"line":296},[155,4453,985],{"class":302},[155,4455,246],{"class":184},[155,4457,381],{"class":302},[155,4459,390],{"class":184},[155,4461,4462],{"class":157,"line":344},[155,4463,220],{"emptyLinePlaceholder":219},[155,4465,4466,4468,4470,4472,4474,4476],{"class":157,"line":350},[155,4467,1061],{"class":165},[155,4469,111],{"class":184},[155,4471,617],{"class":302},[155,4473,246],{"class":184},[155,4475,1070],{"class":302},[155,4477,1073],{"class":184},[20,4479,4480],{},"You can now easily access basic statistics about a table.\nThose numbers will evolve with the table, making sure your MCP client works on fresh data!",[15,4482,4484],{"id":4483},"exposing-pathway-live-data-framework-document-store","Exposing Pathway Live Data Framework Document Store",[20,4486,4487],{},"Document indexing is crucial in Retrieval-Augmented Generation (RAG) and agentic pipelines because it organizes information in a way that makes it quickly searchable and retrievable.\nIn RAG, efficient indexing allows models to pull relevant information swiftly, improving the accuracy and relevance of generated responses.",[20,4489,4490],{},"The MCP Server allows you to expose its document store to MCP clients.\nThis setup allows various applications and agents to access a real-time index.\nBy doing so, it ensures that any client connected to the MCP server can efficiently retrieve and use the indexed information, making sure your AI application works on accurate and up-to-date data.",[20,4492,22,4493,4499,4500,4502,4503,111],{},[24,4494,4496],{"href":4495},"\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fdocument_store",[95,4497,4498],{},"DocumentStore"," inherits from ",[95,4501,286],{}," and can be passed directly to ",[95,4504,715],{},[71,4506,4508],{"id":4507},"yaml-template","YAML Template",[20,4510,4511],{},"You can add the Document Store directly in a YAML app:",[146,4513,4517],{"className":4514,"code":4515,"language":4516,"meta":151,"style":151},"language-yaml shiki shiki-themes material-theme-palenight","mcp_http: !pw.xpacks.llm.mcp_server.PathwayMcp\n  name: \"Streamable MCP Server\"\n  transport: \"streamable-http\"\n  host: \"localhost\"\n  port: 8068\n  serve:\n    - $document_store\n","yaml",[95,4518,4519,4529,4542,4555,4568,4578,4585],{"__ignoreMap":151},[155,4520,4521,4524,4526],{"class":157,"line":158},[155,4522,4523],{"class":325},"mcp_http",[155,4525,144],{"class":184},[155,4527,4528],{"class":238}," !pw.xpacks.llm.mcp_server.PathwayMcp\n",[155,4530,4531,4534,4536,4538,4540],{"class":157,"line":175},[155,4532,4533],{"class":325},"  name",[155,4535,144],{"class":184},[155,4537,903],{"class":184},[155,4539,531],{"class":441},[155,4541,909],{"class":184},[155,4543,4544,4547,4549,4551,4553],{"class":157,"line":216},[155,4545,4546],{"class":325},"  transport",[155,4548,144],{"class":184},[155,4550,903],{"class":184},[155,4552,548],{"class":441},[155,4554,909],{"class":184},[155,4556,4557,4560,4562,4564,4566],{"class":157,"line":223},[155,4558,4559],{"class":325},"  host",[155,4561,144],{"class":184},[155,4563,903],{"class":184},[155,4565,565],{"class":441},[155,4567,909],{"class":184},[155,4569,4570,4573,4575],{"class":157,"line":228},[155,4571,4572],{"class":325},"  port",[155,4574,144],{"class":184},[155,4576,4577],{"class":387}," 8068\n",[155,4579,4580,4583],{"class":157,"line":235},[155,4581,4582],{"class":325},"  serve",[155,4584,341],{"class":184},[155,4586,4587,4590],{"class":157,"line":260},[155,4588,4589],{"class":184},"    -",[155,4591,4592],{"class":441}," $document_store\n",[20,4594,4595],{},"Here is a complete example:",[146,4597,4599],{"className":4514,"code":4598,"language":4516,"meta":151,"style":151},"$sources:\n  - !pw.io.fs.read\n    path: data\n    format: binary\n    with_metadata: true\n\n$embedder: !pw.xpacks.llm.embedders.OpenAIEmbedder\n  model: \"text-embedding-ada-002\"\n  cache_strategy: !pw.udfs.DefaultCache {}\n\n$splitter: !pw.xpacks.llm.splitters.TokenCountSplitter\n  min_tokens: 250\n  max_tokens: 600\n\n$parser: !pw.xpacks.llm.parsers.DoclingParser {}\n\n$knn_index: !pw.stdlib.indexing.BruteForceKnnFactory\n  reserved_space: 1000\n  embedder: $embedder\n  metric: !pw.engine.BruteForceKnnMetricKind.COS\n\n$bm25_index: !pw.stdlib.indexing.TantivyBM25Factory {}\n\n$retriever_factory: !pw.stdlib.indexing.HybridIndexFactory\n  retriever_factories:\n    - $knn_index\n    - $bm25_index\n\n$document_store: !pw.xpacks.llm.document_store.DocumentStore\n  docs: $sources\n  parser: $parser\n  splitter: $splitter\n  retriever_factory: $retriever_factory\n\n\n# Streamable MCP server, can be proxied\nmcp_http: !pw.xpacks.llm.mcp_server.PathwayMcp\n  name: \"Streamable MCP Server\"\n  transport: \"streamable-http\"\n  host: \"localhost\"\n  port: 8068\n  serve:\n    - $document_store\n",[95,4600,4601,4608,4616,4626,4636,4647,4651,4661,4675,4688,4692,4702,4712,4722,4726,4738,4742,4752,4762,4772,4782,4786,4798,4802,4812,4819,4826,4833,4837,4847,4857,4867,4877,4887,4891,4895,4900,4908,4920,4932,4944,4952,4958],{"__ignoreMap":151},[155,4602,4603,4606],{"class":157,"line":158},[155,4604,4605],{"class":325},"$sources",[155,4607,341],{"class":184},[155,4609,4610,4613],{"class":157,"line":175},[155,4611,4612],{"class":184},"  -",[155,4614,4615],{"class":238}," !pw.io.fs.read\n",[155,4617,4618,4621,4623],{"class":157,"line":216},[155,4619,4620],{"class":325},"    path",[155,4622,144],{"class":184},[155,4624,4625],{"class":441}," data\n",[155,4627,4628,4631,4633],{"class":157,"line":223},[155,4629,4630],{"class":325},"    format",[155,4632,144],{"class":184},[155,4634,4635],{"class":441}," binary\n",[155,4637,4638,4641,4643],{"class":157,"line":228},[155,4639,4640],{"class":325},"    with_metadata",[155,4642,144],{"class":184},[155,4644,4646],{"class":4645},"sbqyR"," true\n",[155,4648,4649],{"class":157,"line":235},[155,4650,220],{"emptyLinePlaceholder":219},[155,4652,4653,4656,4658],{"class":157,"line":260},[155,4654,4655],{"class":325},"$embedder",[155,4657,144],{"class":184},[155,4659,4660],{"class":238}," !pw.xpacks.llm.embedders.OpenAIEmbedder\n",[155,4662,4663,4666,4668,4670,4673],{"class":157,"line":266},[155,4664,4665],{"class":325},"  model",[155,4667,144],{"class":184},[155,4669,903],{"class":184},[155,4671,4672],{"class":441},"text-embedding-ada-002",[155,4674,909],{"class":184},[155,4676,4677,4680,4682,4685],{"class":157,"line":271},[155,4678,4679],{"class":325},"  cache_strategy",[155,4681,144],{"class":184},[155,4683,4684],{"class":238}," !pw.udfs.DefaultCache",[155,4686,4687],{"class":184}," {}\n",[155,4689,4690],{"class":157,"line":276},[155,4691,220],{"emptyLinePlaceholder":219},[155,4693,4694,4697,4699],{"class":157,"line":291},[155,4695,4696],{"class":325},"$splitter",[155,4698,144],{"class":184},[155,4700,4701],{"class":238}," !pw.xpacks.llm.splitters.TokenCountSplitter\n",[155,4703,4704,4707,4709],{"class":157,"line":296},[155,4705,4706],{"class":325},"  min_tokens",[155,4708,144],{"class":184},[155,4710,4711],{"class":387}," 250\n",[155,4713,4714,4717,4719],{"class":157,"line":344},[155,4715,4716],{"class":325},"  max_tokens",[155,4718,144],{"class":184},[155,4720,4721],{"class":387}," 600\n",[155,4723,4724],{"class":157,"line":350},[155,4725,220],{"emptyLinePlaceholder":219},[155,4727,4728,4731,4733,4736],{"class":157,"line":356},[155,4729,4730],{"class":325},"$parser",[155,4732,144],{"class":184},[155,4734,4735],{"class":238}," !pw.xpacks.llm.parsers.DoclingParser",[155,4737,4687],{"class":184},[155,4739,4740],{"class":157,"line":361},[155,4741,220],{"emptyLinePlaceholder":219},[155,4743,4744,4747,4749],{"class":157,"line":366},[155,4745,4746],{"class":325},"$knn_index",[155,4748,144],{"class":184},[155,4750,4751],{"class":238}," !pw.stdlib.indexing.BruteForceKnnFactory\n",[155,4753,4754,4757,4759],{"class":157,"line":393},[155,4755,4756],{"class":325},"  reserved_space",[155,4758,144],{"class":184},[155,4760,4761],{"class":387}," 1000\n",[155,4763,4764,4767,4769],{"class":157,"line":398},[155,4765,4766],{"class":325},"  embedder",[155,4768,144],{"class":184},[155,4770,4771],{"class":441}," $embedder\n",[155,4773,4774,4777,4779],{"class":157,"line":421},[155,4775,4776],{"class":325},"  metric",[155,4778,144],{"class":184},[155,4780,4781],{"class":238}," !pw.engine.BruteForceKnnMetricKind.COS\n",[155,4783,4784],{"class":157,"line":435},[155,4785,220],{"emptyLinePlaceholder":219},[155,4787,4788,4791,4793,4796],{"class":157,"line":450},[155,4789,4790],{"class":325},"$bm25_index",[155,4792,144],{"class":184},[155,4794,4795],{"class":238}," !pw.stdlib.indexing.TantivyBM25Factory",[155,4797,4687],{"class":184},[155,4799,4800],{"class":157,"line":466},[155,4801,220],{"emptyLinePlaceholder":219},[155,4803,4804,4807,4809],{"class":157,"line":479},[155,4805,4806],{"class":325},"$retriever_factory",[155,4808,144],{"class":184},[155,4810,4811],{"class":238}," !pw.stdlib.indexing.HybridIndexFactory\n",[155,4813,4814,4817],{"class":157,"line":485},[155,4815,4816],{"class":325},"  retriever_factories",[155,4818,341],{"class":184},[155,4820,4821,4823],{"class":157,"line":490},[155,4822,4589],{"class":184},[155,4824,4825],{"class":441}," $knn_index\n",[155,4827,4828,4830],{"class":157,"line":503},[155,4829,4589],{"class":184},[155,4831,4832],{"class":441}," $bm25_index\n",[155,4834,4835],{"class":157,"line":508},[155,4836,220],{"emptyLinePlaceholder":219},[155,4838,4839,4842,4844],{"class":157,"line":521},[155,4840,4841],{"class":325},"$document_store",[155,4843,144],{"class":184},[155,4845,4846],{"class":238}," !pw.xpacks.llm.document_store.DocumentStore\n",[155,4848,4849,4852,4854],{"class":157,"line":538},[155,4850,4851],{"class":325},"  docs",[155,4853,144],{"class":184},[155,4855,4856],{"class":441}," $sources\n",[155,4858,4859,4862,4864],{"class":157,"line":555},[155,4860,4861],{"class":325},"  parser",[155,4863,144],{"class":184},[155,4865,4866],{"class":441}," $parser\n",[155,4868,4869,4872,4874],{"class":157,"line":572},[155,4870,4871],{"class":325},"  splitter",[155,4873,144],{"class":184},[155,4875,4876],{"class":441}," $splitter\n",[155,4878,4879,4882,4884],{"class":157,"line":585},[155,4880,4881],{"class":325},"  retriever_factory",[155,4883,144],{"class":184},[155,4885,4886],{"class":441}," $retriever_factory\n",[155,4888,4889],{"class":157,"line":600},[155,4890,220],{"emptyLinePlaceholder":219},[155,4892,4893],{"class":157,"line":605},[155,4894,220],{"emptyLinePlaceholder":219},[155,4896,4897],{"class":157,"line":610},[155,4898,4899],{"class":231},"# Streamable MCP server, can be proxied\n",[155,4901,4902,4904,4906],{"class":157,"line":1822},[155,4903,4523],{"class":325},[155,4905,144],{"class":184},[155,4907,4528],{"class":238},[155,4909,4910,4912,4914,4916,4918],{"class":157,"line":1865},[155,4911,4533],{"class":325},[155,4913,144],{"class":184},[155,4915,903],{"class":184},[155,4917,531],{"class":441},[155,4919,909],{"class":184},[155,4921,4922,4924,4926,4928,4930],{"class":157,"line":1872},[155,4923,4546],{"class":325},[155,4925,144],{"class":184},[155,4927,903],{"class":184},[155,4929,548],{"class":441},[155,4931,909],{"class":184},[155,4933,4934,4936,4938,4940,4942],{"class":157,"line":1877},[155,4935,4559],{"class":325},[155,4937,144],{"class":184},[155,4939,903],{"class":184},[155,4941,565],{"class":441},[155,4943,909],{"class":184},[155,4945,4946,4948,4950],{"class":157,"line":1898},[155,4947,4572],{"class":325},[155,4949,144],{"class":184},[155,4951,4577],{"class":387},[155,4953,4954,4956],{"class":157,"line":1909},[155,4955,4582],{"class":325},[155,4957,341],{"class":184},[155,4959,4960,4962],{"class":157,"line":1920},[155,4961,4589],{"class":184},[155,4963,4592],{"class":441},[15,4965,4967],{"id":4966},"conclusion","Conclusion",[20,4969,4970],{},"The MCP Server provides real-time data and context to your AI applications.\nIt connects AI models to various data sources, improving their ability to deliver accurate and timely information.\nThis tool is valuable for applications needing up-to-date data and efficient processing.\nAs real-time data becomes more important, tools like the MCP Server will be essential for effective data handling and decision-making.",[4972,4973,4974],"style",{},"html pre.shiki code .s6cf3, html code.shiki .s6cf3{--shiki-default:#89DDFF;--shiki-default-font-style:italic}html pre.shiki code .s0W1g, html code.shiki .s0W1g{--shiki-default:#BABED8}html pre.shiki code .sAklC, html code.shiki .sAklC{--shiki-default:#89DDFF}html pre.shiki code .saEQR, html code.shiki .saEQR{--shiki-default:#676E95;--shiki-default-font-style:italic}html pre.shiki code .sJ14y, html code.shiki .sJ14y{--shiki-default:#C792EA}html pre.shiki code .s5Dmg, html code.shiki .s5Dmg{--shiki-default:#FFCB6B}html pre.shiki code .sdLwU, html code.shiki .sdLwU{--shiki-default:#82AAFF}html pre.shiki code .st21m, html code.shiki .st21m{--shiki-default:#F07178;--shiki-default-font-style:italic}html pre.shiki code .s7ZW3, html code.shiki .s7ZW3{--shiki-default:#BABED8;--shiki-default-font-style:italic}html pre.shiki code .s-wAU, html code.shiki .s-wAU{--shiki-default:#F07178}html pre.shiki code .sx098, html code.shiki .sx098{--shiki-default:#F78C6C}html pre.shiki code .sfyAc, html code.shiki .sfyAc{--shiki-default:#C3E88D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sbqyR, html code.shiki .sbqyR{--shiki-default:#FF9CAC}",{"title":151,"searchDepth":175,"depth":175,"links":4976},[4977,4978,4981,4986,4992,4993,4996],{"id":17,"depth":175,"text":18},{"id":36,"depth":175,"text":37,"children":4979},[4980],{"id":73,"depth":216,"text":74},{"id":83,"depth":175,"text":5,"children":4982},[4983,4984,4985],{"id":89,"depth":216,"text":90},{"id":114,"depth":216,"text":115},{"id":132,"depth":216,"text":133},{"id":849,"depth":175,"text":850,"children":4987},[4988,4989,4990,4991],{"id":853,"depth":216,"text":854},{"id":1098,"depth":216,"text":1099},{"id":1466,"depth":216,"text":1467},{"id":2829,"depth":216,"text":2830},{"id":3345,"depth":175,"text":3346},{"id":4483,"depth":175,"text":4484,"children":4994},[4995],{"id":4507,"depth":216,"text":4508},{"id":4966,"depth":175,"text":4967},"Tutorial about how to set up and use Pathway Live Data Framework MCP Server","md",{"date":5000,"thumbnail":151,"tags":5001,"keywords":5004},"2025-08-01",[5002,5003],"tutorial","engineering",[5005,5006,5007,5008],"MCP","MCP server","API","protocol","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Flive-data-framework-mcp-server",{"title":5,"description":4997},{"loc":5009},"2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F40.live-data-framework-mcp-server","h6SIIAsL1E9E0arN6Jja9QM14hvY8X8803MeiRqtl6w",[5015],{"title":5016,"path":5017,"stem":5018,"children":5019,"page":5036},"Developers","\u002Fdevelopers","2.developers",[5020,5891,6216],{"title":5021,"path":5022,"stem":5023,"children":5024,"page":5036},"User Guide","\u002Fdevelopers\u002Fuser-guide","2.developers\u002F4.user-guide",[5025,5079,5349,5467,5545,5663,5795,5811,5870],{"title":18,"meta":5026,"icon":5027,"path":5028,"stem":5029,"children":5030,"page":5036},{"icon":5027},"heroicons:book-open","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction","2.developers\u002F4.user-guide\u002F10.introduction",[5031,5037,5042,5047,5052,5057,5062,5067,5072],{"title":5032,"path":5033,"stem":5034,"meta":5035},"Welcome","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Fwelcome","2.developers\u002F4.user-guide\u002F10.introduction\u002F10.welcome",{"heading":5036,"toc":5036},false,{"title":5038,"path":5039,"stem":5040,"meta":5041},"Installation","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Finstallation","2.developers\u002F4.user-guide\u002F10.introduction\u002F20.installation",{"heading":5036,"toc":5036},{"title":5043,"path":5044,"stem":5045,"meta":5046},"Overview","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Flive-data-framework-overview","2.developers\u002F4.user-guide\u002F10.introduction\u002F30.live-data-framework-overview",{},{"title":5048,"path":5049,"stem":5050,"meta":5051},"Starting Examples","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Ffirst-realtime-app","2.developers\u002F4.user-guide\u002F10.introduction\u002F40.first-realtime-app",{},{"title":5053,"path":5054,"stem":5055,"meta":5056},"Core Concepts","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Fconcepts","2.developers\u002F4.user-guide\u002F10.introduction\u002F50.concepts",{},{"title":5058,"path":5059,"stem":5060,"meta":5061},"Why Pathway","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Fwhy-live-data-framework","2.developers\u002F4.user-guide\u002F10.introduction\u002F60.why-live-data-framework",{},{"title":5063,"path":5064,"stem":5065,"meta":5066},"Licensing Guide","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Flicensing-guide","2.developers\u002F4.user-guide\u002F10.introduction\u002F65.licensing-guide",{"heading":5036,"toc":5036},{"title":5068,"path":5069,"stem":5070,"meta":5071},"Streaming and Static Modes","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Fstreaming-and-static-modes","2.developers\u002F4.user-guide\u002F10.introduction\u002F70.streaming-and-static-modes",{},{"title":5073,"path":5074,"stem":5075,"meta":5076},"Batch Processing in Python","\u002Fdevelopers\u002Fuser-guide\u002Fintroduction\u002Fbatch-processing","2.developers\u002F4.user-guide\u002F10.introduction\u002F80.batch-processing",{"thumbnail":5077,"thumbnailFit":5078},"\u002Fassets\u002Fcontent\u002Fdocumentation\u002Fpathway-batch.png","contain",{"title":5080,"path":5081,"stem":5082,"children":5083,"page":5036},"Connect","\u002Fdevelopers\u002Fuser-guide\u002Fconnect","2.developers\u002F4.user-guide\u002F20.connect",[5084,5094,5099,5105,5110,5114,5127,5137,5142,5163],{"title":5085,"path":5086,"stem":5087,"meta":5088},"Basic Data Types","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fdatatypes","2.developers\u002F4.user-guide\u002F20.connect\u002F20.datatypes",{"date":5089,"tags":5090,"keywords":5091,"notebook_export_path":5093},"2024-01-26",[5002,3233],[5092,708],"type","notebooks\u002Ftutorials\u002Fbasic_datatypes.ipynb",{"title":5095,"path":5096,"stem":5097,"meta":5098},"Connectors in Pathway","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors-overview","2.developers\u002F4.user-guide\u002F20.connect\u002F30.connectors-overview",{},{"title":5100,"path":5101,"stem":5102,"meta":5103},"Connectors list","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Flive-data-framework-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F35.live-data-framework-connectors",{"layout":5104,"aside":219,"toc":5036,"single":219},"default",{"title":5106,"path":5107,"stem":5108,"meta":5109},"Defining Schema","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fschema","2.developers\u002F4.user-guide\u002F20.connect\u002F40.schema",{},{"title":5111,"path":2842,"stem":5112,"meta":5113},"Generate Data Streams with the demo Module","2.developers\u002F4.user-guide\u002F20.connect\u002F50.artificial-streams",{},{"title":5115,"path":5116,"stem":5117,"meta":5118},"Automatic Generation of Schema Class","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fschema-generation","2.developers\u002F4.user-guide\u002F20.connect\u002F60.schema-generation",{"date":5119,"thumbnail":5120,"tags":5122,"keywords":5123,"notebook_export_path":5126},"2023-11-08",{"src":5121},"\u002Fassets\u002Fcontent\u002Fblog\u002Fth-custom-connectors.png",[5002,3233],[708,5092,5124,5125],"JSON","connectors","notebooks\u002Ftutorials\u002Fschema-generation.ipynb",{"title":5128,"path":5129,"stem":5130,"meta":5131},"Dealing with JSON Data Type","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fjson_type","2.developers\u002F4.user-guide\u002F20.connect\u002F70.json_type",{"date":5132,"thumbnail":5133,"tags":5134,"keywords":5135,"notebook_export_path":5136},"2023-12-22","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-json.png",[5002,3233],[5124,5092,708],"notebooks\u002Ftutorials\u002Fjson_type.ipynb",{"title":5138,"path":5139,"stem":5140,"meta":5141},"Switching from Batch to Streaming","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fswitch-from-batch-to-streaming","2.developers\u002F4.user-guide\u002F20.connect\u002F80.switch-from-batch-to-streaming",{},{"title":5143,"path":5144,"stem":5145,"meta":5146},"Live Web Scraping","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fpython-web-scraping","2.developers\u002F4.user-guide\u002F20.connect\u002F90.python-web-scraping",{"date":5147,"tags":5148,"keywords":5149,"tech_icons":5157,"thumbnail":5159,"deployment_tag":5160,"docker_github_link":5162},"2025-03-13",[5002,5125],[5150,5151,5152,5153,5154,5155,5156],"connector","scraping","WEB","Python","input","streaming","web scraping",[5158],"streamline:web","\u002Fassets\u002Fcontent\u002Fshowcases\u002Fweb_scraping\u002Fweb-scraping-th.png",[5161],"docker","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fweb-scraping",{"title":5164,"path":5165,"stem":5166,"children":5167,"page":5036},"Connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors",[5168,5185,5197,5209,5218,5237,5248,5261,5275,5283,5295,5305,5314,5326,5339],{"title":5169,"path":5170,"stem":5171,"meta":5172},"File System Connector","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Ffs-connector","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F05.fs-connector",{"date":5089,"tags":5173,"tech_icons":5174,"deployment_tag":5176,"keywords":5178,"notebook_export_path":5184},[5002,3233],[5175],"lets-icons:file-fill",[5177,5161],"jupyter",[5150,5179,5180,5181,5154,5182,5183,5155],"file system","csv","json","output","static","notebooks\u002Ftutorials\u002Ffs_connector.ipynb",{"title":5186,"path":5187,"stem":5188,"meta":5189},"CSV connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fcsv_connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F10.csv_connectors",{"date":5190,"thumbnail":5191,"tags":5192,"keywords":5193,"tech_icons":5195},"2023-01-12","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-csv-connectors.png",[5002,5125],[5150,5194,5154,5182,5183,5155],"CSV",[5196],"mdi:file-csv",{"title":5198,"path":5199,"stem":5200,"meta":5201},"Sending alerts to Slack","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fslack_send_alerts","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F100.slack_send_alerts",{"date":5202,"tags":5203,"keywords":5204,"tech_icons":5207},"2024-02-16",[5002,5125],[5150,5205,5206,5182,5155],"Slack","alerts",[5208],"mdi:slack",{"title":5210,"path":5211,"stem":5212,"meta":5213},"Airbyte connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fairbyte-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F110.airbyte-connectors",{"tags":5214,"keywords":5215},[5002,5125],[5150,5216,5217,5154,5183,5155],"Airbyte","cloud",{"title":5219,"path":5220,"stem":5221,"meta":5222},"Using Pathway Debezium Connector for MongoDB","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fmongodb-debezium","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F115.mongodb-debezium",{"date":5223,"tags":5224,"keywords":5225,"tech_icons":5233,"deployment_tag":5235,"docker_github_link":5236,"hideInConnectorList":219},"2024-10-30",[5002,5125],[5150,5226,5227,5228,5229,5230,5231,5232,5154,5182,5155],"database","MongoDB","CDC","Debezium","Kafka","Zookeeper","Docker",[5234],"material-symbols-light:database",[5161],"https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fdebezium-mongodb-example",{"title":5238,"path":5239,"stem":5240,"meta":5241},"JSON Lines connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fjsonlines-connector","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F15.jsonlines-connector",{"date":5242,"tags":5243,"keywords":5244,"tech_icons":5246},"2024-02-20",[5002,5125],[5150,5245,5124,5154,5182,5183,5155],"JSON Lines",[5247],"lets-icons:json",{"title":5249,"path":5250,"stem":5251,"meta":5252},"Database connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fdatabase-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F20.database-connectors",{"date":5253,"thumbnail":5254,"tags":5255,"keywords":5256,"tech_icons":5258,"deployment_tag":5259,"docker_github_link":5260},"2023-01-19","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-database-connectors.png",[5002,5125],[5150,5226,5257,5228,5229,5230,5231,5232,5154,5182,5155],"PostgreSQL",[5234],[5161],"https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fdebezium-postgres-example",{"title":5262,"path":5263,"stem":5264,"meta":5265},"Connecting Pathway to NeonDB","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fneondb-connector","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F23.neondb-connector",{"date":5266,"tags":5267,"keywords":5268,"tech_icons":5274,"hideInConnectorList":219},"2026-06-03",[5002,5125],[5150,5226,5269,5270,5257,5271,5228,5272,5273,5154,5182,5155],"NeonDB","Neon","serverless","logical replication","SSL",[5234],{"title":5276,"path":5277,"stem":5278,"meta":5279},"Custom Python connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fcustom-python-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F30.custom-python-connectors",{"date":5280,"thumbnail":5121,"tags":5281,"keywords":5282},"2023-04-13",[5002,5125],[5150,5153,5154,5155],{"title":5284,"path":5285,"stem":5286,"meta":5287},"Kafka connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fkafka_connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F30.kafka_connectors",{"date":5288,"thumbnail":5289,"tags":5290,"tech_icons":5291,"deployment_tag":5293,"keywords":5294},"2023-01-15","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-kafka-connectors.png",[5002,5125],[5292],"mdi:apache-kafka",[5161],[5150,5230,5232,5154,5182,5155],{"title":5296,"path":5297,"stem":5298,"meta":5299},"NATS connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fnats-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F33.nats-connectors",{"date":5300,"tags":5301,"deployment_tag":5302,"keywords":5303},"2024-12-06",[5002,5125],[5161],[5150,5304,5232,5154,5182,5155],"NATS",{"title":5306,"path":5307,"stem":5308,"meta":5309},"Python output connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fpython-output-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F35.python-output-connectors",{"date":5310,"thumbnail":5311,"tags":5312,"keywords":5313},"2023-08-31","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-output-connector.png",[5002,5125],[5150,5153,5182,5155],{"title":5315,"path":5316,"stem":5317,"meta":5318},"Google Drive connector","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fgdrive-connector","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F70.gdrive-connector",{"date":5319,"thumbnail":5320,"tags":5321,"keywords":5322,"tech_icons":5324},"2023-12-14","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-gdrive-connector.png",[5002,5125],[5150,5323,5217,5154,5183,5155],"Google Drive",[5325],"simple-icons:googledrive",{"title":5327,"path":5328,"stem":5329,"meta":5330},"Switching from Kafka to Redpanda","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fswitching-to-redpanda","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F80.switching-to-redpanda",{"date":5331,"thumbnail":5332,"tags":5333,"keywords":5334,"deployment_tag":5336,"tech_icons":5337,"docker_github_link":5338,"hideInConnectorList":219},"2023-03-24","\u002Fassets\u002Fcontent\u002Ftutorials\u002Fredpanda\u002Fth-Kafka_vs_Redpanda.png",[5002,5125],[5150,5335,5230,5231,5232,5154,5182,5155],"Redpanda",[5161],[5292],"https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fbest-movies-example\u002Fredpanda-version",{"title":5340,"path":5341,"stem":5342,"meta":5343},"Custom WebSockets connectors","\u002Fdevelopers\u002Fuser-guide\u002Fconnect\u002Fconnectors\u002Fwebsockets-connectors","2.developers\u002F4.user-guide\u002F20.connect\u002F99.connectors\u002F90.websockets-connectors",{"date":5344,"tags":5345,"keywords":5346,"tech_icons":5348},"2023-01-24",[5002,5125],[5150,5347,5153,5154,5182,5155],"WebSockets",[5158],{"title":5350,"meta":5351,"path":5352,"stem":5353,"children":5354,"page":5036},"Transform",{},"\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation","2.developers\u002F4.user-guide\u002F30.data-transformation",[5355,5360,5373,5379,5385,5397,5413,5434,5449,5454],{"title":5356,"path":5357,"stem":5358,"meta":5359},"Table Operations Overview","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Ftable-operations","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F10.table-operations",{},{"title":5361,"path":5362,"stem":5363,"meta":5364},"Asynchronous Transformations","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fasynchronous-transformations","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F100.asynchronous-transformations",{"date":5242,"thumbnail":151,"tags":5365,"keywords":5366,"notebook_export_path":5372},[5002,5003],[150,5367,5368,5369,5370,5371],"function","asynchronous","transformation","query","AsyncTransformer","notebooks\u002Ftutorials\u002Fasynctransformer.ipynb",{"title":5374,"path":5375,"stem":5376,"meta":5377},"Simple Join","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fjoin-manual","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F20.join-manual",{"notebook_export_path":5378},"notebooks\u002Ftutorials\u002Fjoin_manual.ipynb",{"title":5380,"path":5381,"stem":5382,"meta":5383},"Groupby Reduce","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fgroupby-reduce-manual","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F30.groupby-reduce-manual",{"notebook_export_path":5384},"notebooks\u002Ftutorials\u002Fgroupby_reduce_manual.ipynb",{"title":5386,"path":5387,"stem":5388,"meta":5389},"Writing Stateful Reducers","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fcustom-reducers","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F40.custom-reducers",{"date":5390,"thumbnail":5133,"tags":5391,"keywords":5392,"notebook_export_path":5396},"2024-01-17",[5002],[2994,5393,5394,5395],"aggregate","sumofsquares","median","notebooks\u002Ftutorials\u002Fcustom_reducers.ipynb",{"title":5398,"path":5399,"stem":5400,"meta":5401},"Iterative Computations","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fiterate","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F50.iterate",{"date":5402,"thumbnail":151,"tags":5403,"keywords":5404,"notebook_export_path":5412},"2023-12-28",[5002,5003],[5405,5406,5407,5408,5409,5410,5411],"iterate","iteration","iterative","updates","connected components","collatz conjecture","newton method","notebooks\u002Ftutorials\u002Fiterate.ipynb",{"title":5414,"path":5415,"stem":5416,"children":5417,"meta":5431},"Indexes in Pathway Live Data Framework","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Findexes","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F60.indexes",[5418],{"title":5414,"path":5415,"stem":5416,"meta":5419},{"date":5420,"thumbnail":5421,"tags":5422,"keywords":5423,"notebook_export_path":5430},"2023-11-15","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-computing-pagerank.png",[5002,5003],[5424,5425,5426,5427,5428,5429],"index","indexing","join","asof join","asof_now","KNN","notebooks\u002Ftutorials\u002Findexes.ipynb",{"date":5420,"thumbnail":5421,"tags":5432,"keywords":5433,"notebook_export_path":5430},[5002,5003],[5424,5425,5426,5427,5428,5429],{"title":5435,"path":5436,"stem":5437,"children":5438,"meta":5446},"Indexing from 'groupby' and Single-row Tables","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Findexing-grouped-tables","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F70.indexing-grouped-tables",[5439],{"title":5435,"path":5436,"stem":5437,"meta":5440},{"date":5441,"thumbnail":5421,"tags":5442,"keywords":5443},"2023-03-31",[5002,3233],[3665,5444,5445],"ix_ref","single-row table",{"date":5441,"thumbnail":5421,"tags":5447,"keywords":5448},[5002,3233],[3665,5444,5445],{"title":5450,"path":5451,"stem":5452,"meta":5453},"SQL API","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fsql","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F80.sql",{"redirection":219},{"title":5455,"path":5456,"stem":5457,"meta":5458},"User-defined Functions","\u002Fdevelopers\u002Fuser-guide\u002Fdata-transformation\u002Fuser-defined-functions","2.developers\u002F4.user-guide\u002F30.data-transformation\u002F90.user-defined-functions",{"date":5459,"thumbnail":151,"tags":5460,"keywords":5461,"notebook_export_path":5466},"2024-02-21",[5002,5003],[150,5462,5367,5463,5369,5464,5465],"udf","apply","cache","timeout","notebooks\u002Ftutorials\u002Fudf.ipynb",{"title":5468,"path":5469,"stem":5470,"children":5471,"page":5036},"Temporal Data","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data","2.developers\u002F4.user-guide\u002F40.temporal-data",[5472,5478,5483,5498,5510,5522,5536],{"title":5473,"path":5474,"stem":5475,"meta":5476},"Windowby Reduce","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Fwindows-manual","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F10.windows-manual",{"notebook_export_path":5477},"notebooks\u002Ftutorials\u002Fwindowby_manual.ipynb",{"title":5479,"path":5480,"stem":5481,"meta":5482},"Late Data and Cutoffs","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Fbehaviors","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F20.behaviors",{},{"title":5484,"path":5485,"stem":5486,"meta":5487},"Controlling Temporal Behavior of Windows","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Fwindows_with_behaviors","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F30.windows_with_behaviors",{"date":5488,"thumbnail":5489,"keywords":5490,"notebook_export_path":5497},"2024-01-08","assets\u002Fcontent\u002Ftutorials\u002Fclickstream_window_join\u002Fclickstream-window-join-th.png",[5491,5492,5493,5494,5495,5496],"windowby","behavior","late data","delay","cutoff","out-of-order data","notebooks\u002Ftutorials\u002Fwindows_temporal_behavior.ipynb",{"title":5499,"path":5500,"stem":5501,"meta":5502},"ASOF Join","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Fasof-join","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F40.asof-join",{"date":5503,"thumbnail":5504,"tags":5505,"keywords":5506,"notebook_export_path":5509},"2023-05-24","\u002Fassets\u002Fcontent\u002Ftutorials\u002Ffinance_ts_asof_join\u002Fasof-join-tutorial-th.png",[5002,5003],[5427,5507,5508],"stock prices","financial data analysis","notebooks\u002Ftutorials\u002Fasof_join.ipynb",{"title":5511,"path":5512,"stem":5513,"meta":5514},"Interval Join","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Finterval-join","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F50.interval-join",{"date":5515,"thumbnail":5516,"tags":5517,"keywords":5518,"notebook_export_path":5521},"2023-05-22","assets\u002Fcontent\u002Ftutorials\u002Ffleet_eta_interval_join\u002Ffleet-eta-interval-join-th.png",[5002,5003],[5519,5520],"interval join","ETA","notebooks\u002Ftutorials\u002Finterval_join.ipynb",{"title":5523,"path":5524,"stem":5525,"meta":5526},"Window Join","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Fwindow-join","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F60.window-join",{"date":5527,"thumbnail":5528,"tags":5529,"keywords":5530,"notebook_export_path":5535},"2023-06-14","\u002Fassets\u002Fcontent\u002Ftutorials\u002Fclickstream_window_join\u002Fclickstream-window-join-th.png",[5002,5003],[5531,5532,5533,5534],"window","behavior analysis","clickstream","conversion rate","notebooks\u002Ftutorials\u002Fwindow_join.ipynb",{"title":5537,"path":5538,"stem":5539,"meta":5540},"Controlling Temporal Behavior of Interval Join","\u002Fdevelopers\u002Fuser-guide\u002Ftemporal-data\u002Ftemporal_behavior","2.developers\u002F4.user-guide\u002F40.temporal-data\u002F70.temporal_behavior",{"date":5541,"thumbnail":5516,"tags":5542,"keywords":5543,"notebook_export_path":5544},"2023-11-28",[5002,5003],[5519,5492,5493,5494,5495,5496],"notebooks\u002Ftutorials\u002Finterval_join_temporal_behavior.ipynb",{"title":5546,"meta":5547,"path":5548,"stem":5549,"children":5550,"page":5036},"LLM tooling",{},"\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack","2.developers\u002F4.user-guide\u002F50.llm-xpack",[5551,5563,5572,5581,5596,5600,5612,5624,5634,5644,5654],{"title":5552,"path":5553,"stem":5554,"meta":5555},"Introduction to the LLM xpack","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Foverview","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F10.overview",{"date":5556,"thumbnail":151,"tags":5557,"keywords":5559},"2024-02-14",[5002,5558],"LLM",[5558,5560,5561,5562],"GPT","OpenAI","Gemini",{"title":5564,"path":5565,"stem":5566,"meta":5567},"Create your own RAG","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fllm-app","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F20.llm-app",{"date":5568,"thumbnail":151,"tags":5569,"keywords":5571},"2025-03-28",[5002,5558,5570],"RAG",[5558,5560,5561,5425],{"title":5573,"path":5574,"stem":5575,"meta":5576},"Pathway Live Data Framework as a Vector Store","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Flive-data-framework-vector-store","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F25.live-data-framework-vector-store",{"date":5577,"thumbnail":151,"tags":5578,"keywords":5579},"2025-05-07",[5002,5558,5570],[5558,5560,5561,5425,5580],"Vector Store",{"title":5582,"path":5583,"stem":5584,"children":5585,"meta":5593},"Document Indexing","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fdocs-indexing","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F30.docs-indexing",[5586],{"title":5582,"path":5583,"stem":5584,"meta":5587},{"date":5588,"thumbnail":151,"tags":5589,"keywords":5592},"2025-01-13",[5002,5425,5590,5591],"document storage","retrieval",[5558,5560,5561,5562],{"date":5588,"thumbnail":151,"tags":5594,"keywords":5595},[5002,5425,5590,5591],[5558,5560,5561,5562],{"title":5,"path":5009,"stem":5012,"meta":5597},{"date":5000,"thumbnail":151,"tags":5598,"keywords":5599},[5002,5003],[5005,5006,5007,5008],{"title":5601,"path":5602,"stem":5603,"meta":5604},"Claude Desktop","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Flive-data-framework-mcp-claude-desktop","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F41.live-data-framework-mcp-claude-desktop",{"date":5605,"thumbnail":151,"tags":5606,"keywords":5608},"2025-08-19",[5002,5003,5607],"claude",[5005,5601,5609,5610,5611],"real-time data","document store","statistics",{"title":5613,"path":5614,"stem":5615,"meta":5616},"Parsers","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fparsers","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F50.parsers",{"date":5617,"tags":5618,"keywords":5619},"2024-06-04",[5002,5558],[5558,5620,5621,5622,5623],"unstructured","docling","parsers","ocr",{"title":5625,"path":5626,"stem":5627,"meta":5628},"Chunking text","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fsplitters","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F60.splitters",{"date":5629,"thumbnail":151,"tags":5630,"keywords":5633},"2025-02-04",[5631,5632],"splitters","chunking",[5622,5632],{"title":5635,"path":5636,"stem":5637,"meta":5638},"Embedders","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fembedders","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F70.embedders",{"date":5629,"thumbnail":151,"tags":5639,"keywords":5641},[5002,5640],"embedder",[5558,5560,5561,5562,5642,5643],"LiteLLM","Embedder",{"title":5645,"path":5646,"stem":5647,"meta":5648},"LLM Chats","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Fllm-chats","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F80.llm-chats",{"date":5649,"thumbnail":151,"tags":5650,"keywords":5652},"2025-01-30",[5002,5558,5651,5645],"LLM Wrappers",[5558,5560,5561,5562,5642,5653],"Wrapper",{"title":5655,"path":5656,"stem":5657,"meta":5658},"Rerankers","\u002Fdevelopers\u002Fuser-guide\u002Fllm-xpack\u002Frerankers","2.developers\u002F4.user-guide\u002F50.llm-xpack\u002F90.rerankers",{"date":5629,"thumbnail":151,"tags":5659,"keywords":5661},[5002,5660],"reranker",[5558,5662],"Reranker",{"title":5664,"meta":5665,"path":5666,"stem":5667,"children":5668,"page":5036},"Deploy",{},"\u002Fdevelopers\u002Fuser-guide\u002Fdeployment","2.developers\u002F4.user-guide\u002F60.deployment",[5669,5674,5679,5696,5712,5717,5722,5727,5734,5739,5744,5757,5769,5774,5785],{"title":5670,"path":5671,"stem":5672,"meta":5673},"Cloud Deployment of Pathway Live Data Framework","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fcloud-deployment","2.developers\u002F4.user-guide\u002F60.deployment\u002F10.cloud-deployment",{},{"title":5675,"path":5676,"stem":5677,"meta":5678},"Deploy to GCP","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fgcp-deploy","2.developers\u002F4.user-guide\u002F60.deployment\u002F15.gcp-deploy",{},{"title":5680,"path":5681,"stem":5682,"meta":5683},"Deploy to AWS Cloud","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Faws-fargate-deploy","2.developers\u002F4.user-guide\u002F60.deployment\u002F20.aws-fargate-deploy",{"date":5684,"tags":5685,"thumbnail":5688,"keywords":5690,"docker_github_link":5695,"deployButtons":5036},"2024-08-16",[5686,5687],"showcase","data-pipeline",{"src":5689},"\u002Fassets\u002Fcontent\u002Fdocumentation\u002Faws\u002Faws-fargate-overview-th.png",[5691,5692,5693,5232,5694],"AWS","Fargate","cloud deployment","AWS Fargate","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Faws-fargate-deploy",{"title":5697,"path":5698,"stem":5699,"meta":5700},"Deploy to Azure","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fazure-aci-deploy","2.developers\u002F4.user-guide\u002F60.deployment\u002F25.azure-aci-deploy",{"date":5701,"tags":5702,"thumbnail":5703,"keywords":5705,"docker_github_link":5711,"deployButtons":5036},"2024-11-20",[5686,5687],{"src":5704,"contain":219},"\u002Fassets\u002Fcontent\u002Fdocumentation\u002Fazure\u002Fazure-aci-overview-th.png",[5706,5707,5693,5232,5708,5709,5710],"Azure","ACI","Azure ACI","Azure Marketplace","deployment","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fazure-aci-deploy",{"title":5713,"path":5714,"stem":5715,"meta":5716},"Deploy with Render","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Frender-deploy","2.developers\u002F4.user-guide\u002F60.deployment\u002F30.render-deploy",{},{"title":5718,"path":5719,"stem":5720,"meta":5721},"Deploy to Nebius AI Cloud","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fnebius-deploy","2.developers\u002F4.user-guide\u002F60.deployment\u002F32.nebius-deploy",{},{"title":5723,"path":5724,"stem":5725,"meta":5726},"Notebook-to-Docker Conversion","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fjupyter-docker","2.developers\u002F4.user-guide\u002F60.deployment\u002F35.jupyter-docker",{},{"title":5728,"path":5729,"stem":5730,"meta":5731},"Tutorial: From Jupyter to Deploy","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Ffrom-jupyter-to-deploy","2.developers\u002F4.user-guide\u002F60.deployment\u002F40.from-jupyter-to-deploy",{"date":5732,"project_github_link":5733},"2023-11-29","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Ffrom_jupyter_to_deploy",{"title":5735,"path":5736,"stem":5737,"meta":5738},"CI\u002FCD","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fintegration","2.developers\u002F4.user-guide\u002F60.deployment\u002F45.integration",{},{"title":5740,"path":5741,"stem":5742,"meta":5743},"Docker Deployment of Pathway Live Data Framework","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fdocker-deployment","2.developers\u002F4.user-guide\u002F60.deployment\u002F5.docker-deployment",{},{"title":5745,"path":5746,"stem":5747,"meta":5748},"Monitoring a Pathway Live Data Framework Instance","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Flive-data-framework-monitoring","2.developers\u002F4.user-guide\u002F60.deployment\u002F50.live-data-framework-monitoring",{"date":5749,"thumbnail":5750,"tags":5751,"keywords":5752},"2024-05-27","\u002Fassets\u002Fcontent\u002Fblog\u002Fth-prometheus.png",[5002,5003],[5753,5754,5755,5756],"monitoring","OpenTelemetry","Grafana","metrics",{"title":5758,"path":5759,"stem":5760,"meta":5761},"Pathway Live Data Framework Web Dashboard","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fweb-dashboard","2.developers\u002F4.user-guide\u002F60.deployment\u002F52.web-dashboard",{"date":5762,"tags":5763,"keywords":5764},"2026-01-13",[5002,5003],[5765,5766,5753,5767,5768,5756],"Web Dashboard","UI","graph","charts",{"title":5770,"path":5771,"stem":5772,"meta":5773},"Persistence in Pathway Live Data Framework","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fpersistence","2.developers\u002F4.user-guide\u002F60.deployment\u002F55.persistence",{},{"title":5775,"path":5776,"stem":5777,"meta":5778},"Persistence in Pathway Live Data Framework: How to Resume the Interrupted Computation","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fpersistence_recovery","2.developers\u002F4.user-guide\u002F60.deployment\u002F60.persistence_recovery",{"date":5779,"thumbnail":151,"tags":5780,"keywords":5782},"2023-11-02",[5002,5003,5781],"dataflow management",[5783,5784],"persistence","recovery",{"title":5786,"path":5787,"stem":5788,"meta":5789},"Persistence in Pathway Live Data Framework: How to Add New Data without Full Computation Restart","\u002Fdevelopers\u002Fuser-guide\u002Fdeployment\u002Fpersistence_restart_with_new_data","2.developers\u002F4.user-guide\u002F60.deployment\u002F65.persistence_restart_with_new_data",{"date":5790,"thumbnail":151,"tags":5791,"keywords":5792},"2023-11-14",[5002,5003,5781],[5783,5793,5794],"optimization","restart",{"title":5796,"path":5797,"stem":5798,"children":5799,"page":5036},"Migrating","\u002Fdevelopers\u002Fuser-guide\u002Fmigrating","2.developers\u002F4.user-guide\u002F70.migrating",[5800,5806],{"title":5801,"path":5802,"stem":5803,"meta":5804},"Coming from Pandas","\u002Fdevelopers\u002Fuser-guide\u002Fmigrating\u002Fmigrate-from-pandas","2.developers\u002F4.user-guide\u002F70.migrating\u002F10.migrate-from-pandas",{"notebook_export_path":5805},"notebooks\u002Ftutorials\u002Ffrom_pandas.ipynb",{"title":5807,"path":5808,"stem":5809,"meta":5810},"Pandas Cheat Sheet","\u002Fdevelopers\u002Fuser-guide\u002Fmigrating\u002Fpandas-cheat-sheet","2.developers\u002F4.user-guide\u002F70.migrating\u002F20.pandas-cheat-sheet",{},{"title":5812,"path":5813,"stem":5814,"children":5815,"page":5036},"Advanced","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced","2.developers\u002F4.user-guide\u002F80.advanced",[5816,5821,5831,5837,5850,5855,5860,5865],{"title":5817,"path":5818,"stem":5819,"meta":5820},"Architecture","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Fworker-architecture","2.developers\u002F4.user-guide\u002F80.advanced\u002F10.worker-architecture",{},{"title":5822,"path":5823,"stem":5824,"meta":5825},"Setting up Cache in Asynchronous Transformations","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Ffunction_calls_caching","2.developers\u002F4.user-guide\u002F80.advanced\u002F20.function_calls_caching",{"date":5826,"thumbnail":151,"tags":5827,"keywords":5828},"2023-11-30",[5002,5003,5781],[5783,5793,5829,5830],"async_transformer","caching",{"title":5832,"path":5833,"stem":5834,"meta":5835},"Data Model Consistency","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Fconsistency","2.developers\u002F4.user-guide\u002F80.advanced\u002F30.consistency",{"notebook_export_path":5836},"notebooks\u002Ftutorials\u002Fconsistency.ipynb",{"title":5838,"path":5839,"stem":5840,"meta":5841},"Writing declarative over imperative pipelines","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Fdeclarative_vs_imperative","2.developers\u002F4.user-guide\u002F80.advanced\u002F40.declarative_vs_imperative",{"date":5842,"thumbnail":151,"tags":5843,"keywords":5844,"notebook_export_path":5849},"2025-11-25",[5002,5003],[5845,5846,5847,5848,5405],"declarative","imperative","ordered","splitting","notebooks\u002Ftutorials\u002Fdeclarative_vs_imperative.ipynb",{"title":5851,"path":5852,"stem":5853,"meta":5854},"Best Practices","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Fbest-practices","2.developers\u002F4.user-guide\u002F80.advanced\u002F5.best-practices",{},{"title":5856,"path":5857,"stem":5858,"meta":5859},"How Pathway Live Data Framework Connectors Work","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Fhow-live-data-framework-connectors-work","2.developers\u002F4.user-guide\u002F80.advanced\u002F50.how-live-data-framework-connectors-work",{},{"title":5861,"path":5862,"stem":5863,"meta":5864},"Dynamic Worker Scaling","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Fworker_count_scaling","2.developers\u002F4.user-guide\u002F80.advanced\u002F60.worker_count_scaling",{},{"title":5866,"path":5867,"stem":5868,"meta":5869},"Running on Multiple Machines","\u002Fdevelopers\u002Fuser-guide\u002Fadvanced\u002Frunning_on_multiple_machines","2.developers\u002F4.user-guide\u002F80.advanced\u002F70.running_on_multiple_machines",{},{"title":5871,"meta":5872,"path":5873,"stem":5874,"children":5875,"page":5036},"Help And Updates",{},"\u002Fdevelopers\u002Fuser-guide\u002Fdevelopment","2.developers\u002F4.user-guide\u002F90.development",[5876,5881,5886],{"title":5877,"path":5878,"stem":5879,"meta":5880},"Troubleshooting","\u002Fdevelopers\u002Fuser-guide\u002Fdevelopment\u002Ftroubleshooting","2.developers\u002F4.user-guide\u002F90.development\u002F10.troubleshooting",{},{"title":5882,"path":5883,"stem":5884,"meta":5885},"Changelog","\u002Fdevelopers\u002Fuser-guide\u002Fdevelopment\u002Fchangelog","2.developers\u002F4.user-guide\u002F90.development\u002F20.changelog",{"toc":5036},{"title":5887,"path":5888,"stem":5889,"meta":5890},"Get help","\u002Fdevelopers\u002Fuser-guide\u002Fdevelopment\u002Fget-help","2.developers\u002F4.user-guide\u002F90.development\u002F30.get-help",{},{"title":5892,"meta":5893,"path":5894,"stem":5895,"children":5896,"page":5036},"API docs",{},"\u002Fdevelopers\u002Fapi-docs","2.developers\u002F5.API-docs",[5897,5902,5907,5913,5918,5923,5928,5995,6000,6005,6010,6018,6206,6211],{"title":5898,"path":5899,"stem":5900,"meta":5901},"Pathway Live Data Framework API","\u002Fdevelopers\u002Fapi-docs\u002Fpathway","2.developers\u002F5.API-docs\u002F1.pathway",{"sidebar":5007},{"title":5903,"path":5904,"stem":5905,"meta":5906},"pw.reducers","\u002Fdevelopers\u002Fapi-docs\u002Freducers","2.developers\u002F5.API-docs\u002F10.reducers",{"sidebar":5007},{"title":5908,"path":5909,"stem":5910,"meta":5911},"pw.sql","\u002Fdevelopers\u002Fapi-docs\u002Fsql-api","2.developers\u002F5.API-docs\u002F11.SQL-API",{"notebook_export_path":5912},"notebooks\u002Ftutorials\u002Fsql_api.ipynb",{"title":5914,"path":5915,"stem":5916,"meta":5917},"pw.temporal","\u002Fdevelopers\u002Fapi-docs\u002Ftemporal","2.developers\u002F5.API-docs\u002F12.temporal",{"sidebar":5007},{"title":5919,"path":5920,"stem":5921,"meta":5922},"pw.udfs","\u002Fdevelopers\u002Fapi-docs\u002Fudfs","2.developers\u002F5.API-docs\u002F13.udfs",{"sidebar":5007},{"title":5924,"path":5925,"stem":5926,"meta":5927},"pw.xpacks.connectors","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-sharepoint","2.developers\u002F5.API-docs\u002F14.pathway-xpacks-sharepoint",{"sidebar":5007},{"title":5929,"path":5930,"stem":5931,"children":5932,"meta":5994},"pw.xpacks.llm","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002Findex",[5933,5935,5940,5945,5950,5955,5960,5965,5970,5975,5979,5984,5989],{"title":5929,"path":5930,"stem":5931,"meta":5934},{"sidebar":5007},{"title":5936,"path":5937,"stem":5938,"meta":5939},"pw.xpacks.llm.llms","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fllms","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F1.llms",{"sidebar":5007},{"title":5941,"path":5942,"stem":5943,"meta":5944},"pw.xpacks.llm.servers","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fservers","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F10.servers",{"sidebar":5007},{"title":5946,"path":5947,"stem":5948,"meta":5949},"pw.xpacks.llm.utils","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Futils","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F11.utils",{"sidebar":5007},{"title":5951,"path":5952,"stem":5953,"meta":5954},"pw.xpacks.llm.mcp_server","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fmcp_server","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F12.mcp_server",{"sidebar":5007},{"title":5956,"path":5957,"stem":5958,"meta":5959},"pw.xpacks.llm.embedders","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fembedders","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F2.embedders",{"sidebar":5007},{"title":5961,"path":5962,"stem":5963,"meta":5964},"pw.xpacks.llm.parsers","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fparsers","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F3.parsers",{"sidebar":5007},{"title":5966,"path":5967,"stem":5968,"meta":5969},"pw.xpacks.llm.splitters","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fsplitters","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F4.splitters",{"sidebar":5007},{"title":5971,"path":5972,"stem":5973,"meta":5974},"pw.xpacks.llm.vector_store","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fvectorstore","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F5.vectorstore",{"sidebar":5007},{"title":5976,"path":4495,"stem":5977,"meta":5978},"pw.xpacks.llm.document_store","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F6.document_store",{"sidebar":5007},{"title":5980,"path":5981,"stem":5982,"meta":5983},"pw.xpacks.llm.question_answering","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fquestion_answering","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F7.question_answering",{"sidebar":5007},{"title":5985,"path":5986,"stem":5987,"meta":5988},"pw.xpacks.llm.prompts","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Fprompts","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F8.prompts",{"sidebar":5007},{"title":5990,"path":5991,"stem":5992,"meta":5993},"pw.xpacks.llm.rerankers","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-xpacks-llm\u002Frerankers","2.developers\u002F5.API-docs\u002F15.pathway-xpacks-llm\u002F9.rerankers",{"sidebar":5007},{"sidebar":5007},{"title":5996,"path":5997,"stem":5998,"meta":5999},"pw.Table","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-table","2.developers\u002F5.API-docs\u002F2.pathway-table",{"sidebar":5007},{"title":6001,"path":6002,"stem":6003,"meta":6004},"pw.debug","\u002Fdevelopers\u002Fapi-docs\u002Fdebug","2.developers\u002F5.API-docs\u002F4.debug",{"sidebar":5007},{"title":6006,"path":6007,"stem":6008,"meta":6009},"pw.demo","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-demo","2.developers\u002F5.API-docs\u002F5.pathway-demo",{"sidebar":5007},{"title":6011,"path":6012,"stem":6013,"children":6014,"meta":6017},"pw.indexing","\u002Fdevelopers\u002Fapi-docs\u002Findexing","2.developers\u002F5.API-docs\u002F6.indexing",[6015],{"title":6011,"path":6012,"stem":6013,"meta":6016},{"sidebar":5007},{"sidebar":5007},{"title":6019,"path":6020,"stem":6021,"children":6022,"meta":6205},"pw.io","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io","2.developers\u002F5.API-docs\u002F7.pathway-io\u002Findex",[6023,6025,6030,6035,6040,6045,6050,6055,6060,6065,6070,6075,6080,6085,6090,6095,6100,6105,6110,6115,6120,6125,6130,6135,6140,6145,6150,6155,6160,6165,6170,6175,6180,6185,6190,6195,6200],{"title":6019,"path":6020,"stem":6021,"meta":6024},{"sidebar":5007},{"title":6026,"path":6027,"stem":6028,"meta":6029},"pw.io.airbyte","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fairbyte","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F110.airbyte",{"sidebar":5007},{"title":6031,"path":6032,"stem":6033,"meta":6034},"pw.io.bigquery","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fbigquery","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F120.bigquery",{"sidebar":5007},{"title":6036,"path":6037,"stem":6038,"meta":6039},"pw.io.clickhouse","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fclickhouse","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F130.clickhouse",{"sidebar":5007},{"title":6041,"path":6042,"stem":6043,"meta":6044},"pw.io.csv","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fcsv","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F140.csv",{"sidebar":5007},{"title":6046,"path":6047,"stem":6048,"meta":6049},"pw.io.debezium","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fdebezium","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F150.debezium",{"sidebar":5007},{"title":6051,"path":6052,"stem":6053,"meta":6054},"pw.io.deltalake","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fdeltalake","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F160.deltalake",{"sidebar":5007},{"title":6056,"path":6057,"stem":6058,"meta":6059},"pw.io.dynamodb","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fdynamodb","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F170.dynamodb",{"sidebar":5007},{"title":6061,"path":6062,"stem":6063,"meta":6064},"pw.io.elasticsearch","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Felasticsearch","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F180.elasticsearch",{"sidebar":5007},{"title":6066,"path":6067,"stem":6068,"meta":6069},"pw.io.fs","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Ffs","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F190.fs",{"sidebar":5007},{"title":6071,"path":6072,"stem":6073,"meta":6074},"pw.io.gdrive","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fgdrive","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F200.gdrive",{"sidebar":5007},{"title":6076,"path":6077,"stem":6078,"meta":6079},"pw.io.http","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fhttp","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F210.http",{"sidebar":5007},{"title":6081,"path":6082,"stem":6083,"meta":6084},"pw.io.iceberg","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Ficeberg","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F220.iceberg",{"sidebar":5007},{"title":6086,"path":6087,"stem":6088,"meta":6089},"pw.io.jsonlines","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fjsonlines","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F230.jsonlines",{"sidebar":5007},{"title":6091,"path":6092,"stem":6093,"meta":6094},"pw.io.kafka","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fkafka","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F240.kafka",{"sidebar":5007},{"title":6096,"path":6097,"stem":6098,"meta":6099},"pw.io.kinesis","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fkinesis","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F250.kinesis",{"sidebar":5007},{"title":6101,"path":6102,"stem":6103,"meta":6104},"pw.io.leann","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fleann","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F260.leann",{"sidebar":5007},{"title":6106,"path":6107,"stem":6108,"meta":6109},"pw.io.logstash","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Flogstash","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F270.logstash",{"sidebar":5007},{"title":6111,"path":6112,"stem":6113,"meta":6114},"pw.io.milvus","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fmilvus","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F280.milvus",{"sidebar":5007},{"title":6116,"path":6117,"stem":6118,"meta":6119},"pw.io.minio","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fminio","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F290.minio",{"sidebar":5007},{"title":6121,"path":6122,"stem":6123,"meta":6124},"pw.io.mongodb","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fmongodb","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F300.mongodb",{"sidebar":5007},{"title":6126,"path":6127,"stem":6128,"meta":6129},"pw.io.mqtt","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fmqtt","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F310.mqtt",{"sidebar":5007},{"title":6131,"path":6132,"stem":6133,"meta":6134},"pw.io.mssql","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fmssql","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F320.mssql",{"sidebar":5007},{"title":6136,"path":6137,"stem":6138,"meta":6139},"pw.io.mysql","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fmysql","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F330.mysql",{"sidebar":5007},{"title":6141,"path":6142,"stem":6143,"meta":6144},"pw.io.nats","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fnats","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F340.nats",{"sidebar":5007},{"title":6146,"path":6147,"stem":6148,"meta":6149},"pw.io.null","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fnull","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F350.null",{"sidebar":5007},{"title":6151,"path":6152,"stem":6153,"meta":6154},"pw.io.plaintext","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fplaintext","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F360.plaintext",{"sidebar":5007},{"title":6156,"path":6157,"stem":6158,"meta":6159},"pw.io.postgres","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fpostgres","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F370.postgres",{"sidebar":5007},{"title":6161,"path":6162,"stem":6163,"meta":6164},"pw.io.pubsub","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fpubsub","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F380.pubsub",{"sidebar":5007},{"title":6166,"path":6167,"stem":6168,"meta":6169},"pw.io.pyfilesystem","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fpyfilesystem","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F390.pyfilesystem",{"sidebar":5007},{"title":6171,"path":6172,"stem":6173,"meta":6174},"pw.io.python","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fpython","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F400.python",{"sidebar":5007},{"title":6176,"path":6177,"stem":6178,"meta":6179},"pw.io.questdb","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fquestdb","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F410.questdb",{"sidebar":5007},{"title":6181,"path":6182,"stem":6183,"meta":6184},"pw.io.rabbitmq","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Frabbitmq","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F420.rabbitmq",{"sidebar":5007},{"title":6186,"path":6187,"stem":6188,"meta":6189},"pw.io.redpanda","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fredpanda","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F430.redpanda",{"sidebar":5007},{"title":6191,"path":6192,"stem":6193,"meta":6194},"pw.io.s3","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fs3","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F440.s3",{"sidebar":5007},{"title":6196,"path":6197,"stem":6198,"meta":6199},"pw.io.slack","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fslack","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F450.slack",{"sidebar":5007},{"title":6201,"path":6202,"stem":6203,"meta":6204},"pw.io.sqlite","\u002Fdevelopers\u002Fapi-docs\u002Fpathway-io\u002Fsqlite","2.developers\u002F5.API-docs\u002F7.pathway-io\u002F460.sqlite",{"sidebar":5007},{"sidebar":5007},{"title":6207,"path":6208,"stem":6209,"meta":6210},"pw.ml","\u002Fdevelopers\u002Fapi-docs\u002Fml","2.developers\u002F5.API-docs\u002F8.ML",{"sidebar":5007},{"title":6212,"path":6213,"stem":6214,"meta":6215},"pw.persistence","\u002Fdevelopers\u002Fapi-docs\u002Fpersistence-api","2.developers\u002F5.API-docs\u002F9.persistence-api",{"sidebar":5007},{"title":6217,"path":6218,"stem":6219,"children":6220,"meta":6961},"Pathway Live Data Framework Templates","\u002Fdevelopers\u002Ftemplates","2.developers\u002F7.templates\u002F1.index",[6221,6223,6228,6233,6238,6242,6263,6302,6328,6760],{"title":6217,"path":6218,"stem":6219,"meta":6222},{"navTitle":5032,"layout":5104,"aside":219,"toc":5036,"single":219},{"title":6224,"path":6225,"stem":6226,"meta":6227},"Run a template","\u002Fdevelopers\u002Ftemplates\u002Frun-a-template","2.developers\u002F7.templates\u002F20.run-a-template",{"heading":5036,"toc":5036},{"title":6229,"path":6230,"stem":6231,"meta":6232},"Customizing a RAG Template with YAML","\u002Fdevelopers\u002Ftemplates\u002Fconfigure-yaml","2.developers\u002F7.templates\u002F30.configure-yaml",{"heading":5036},{"title":6234,"path":6235,"stem":6236,"meta":6237},"How to Use Your Own Components in YAML Configuration","\u002Fdevelopers\u002Ftemplates\u002Fcustom-components","2.developers\u002F7.templates\u002F35.custom-components",{"heading":5036},{"title":5063,"path":6239,"stem":6240,"meta":6241},"\u002Fdevelopers\u002Ftemplates\u002Flicensing-guide","2.developers\u002F7.templates\u002F38.licensing-guide",{"heading":5036,"toc":5036},{"title":6243,"meta":6244,"path":6245,"stem":6246,"children":6247,"page":5036},"YAML Snippets",{},"\u002Fdevelopers\u002Ftemplates\u002Fyaml-snippets","2.developers\u002F7.templates\u002F39.yaml-snippets",[6248,6253,6258],{"title":6249,"path":6250,"stem":6251,"meta":6252},"Data Sources Examples","\u002Fdevelopers\u002Ftemplates\u002Fyaml-snippets\u002Fdata-sources-examples","2.developers\u002F7.templates\u002F39.yaml-snippets\u002F10.data-sources-examples",{"heading":5036,"toc":219},{"title":6254,"path":6255,"stem":6256,"meta":6257},"RAG configuration Examples","\u002Fdevelopers\u002Ftemplates\u002Fyaml-snippets\u002Frag-configuration-examples","2.developers\u002F7.templates\u002F39.yaml-snippets\u002F20.rag-configuration-examples",{"heading":5036,"toc":219},{"title":6259,"path":6260,"stem":6261,"meta":6262},"Full Templates Examples","\u002Fdevelopers\u002Ftemplates\u002Fyaml-snippets\u002Ffull-pipelines-examples","2.developers\u002F7.templates\u002F39.yaml-snippets\u002F30.full-pipelines-examples",{"heading":5036,"toc":219},{"title":6264,"path":6265,"stem":6266,"children":6267,"page":5036},"Rag Customization","\u002Fdevelopers\u002Ftemplates\u002Frag-customization","2.developers\u002F7.templates\u002F40.rag-customization",[6268,6273,6278,6284,6290,6296],{"title":6269,"path":6270,"stem":6271,"meta":6272},"REST API","\u002Fdevelopers\u002Ftemplates\u002Frag-customization\u002Frest-api","2.developers\u002F7.templates\u002F40.rag-customization\u002F10.REST-API",{"heading":5036,"toc":5036},{"title":6274,"path":6275,"stem":6276,"meta":6277},"Customizing prompt","\u002Fdevelopers\u002Ftemplates\u002Frag-customization\u002Fcustom-prompt","2.developers\u002F7.templates\u002F40.rag-customization\u002F20.custom-prompt",{"heading":5036},{"title":5613,"path":6279,"stem":6280,"meta":6281},"\u002Fdevelopers\u002Ftemplates\u002Frag-customization\u002Fparsers","2.developers\u002F7.templates\u002F40.rag-customization\u002F30.parsers",{"date":5617,"tags":6282,"keywords":6283},[5002,5558],[5558,5620,5621,5622,5623],{"title":5625,"path":6285,"stem":6286,"meta":6287},"\u002Fdevelopers\u002Ftemplates\u002Frag-customization\u002Fsplitters","2.developers\u002F7.templates\u002F40.rag-customization\u002F40.splitters",{"date":5629,"thumbnail":151,"tags":6288,"keywords":6289},[5631,5632],[5622,5632],{"title":5635,"path":6291,"stem":6292,"meta":6293},"\u002Fdevelopers\u002Ftemplates\u002Frag-customization\u002Fembedders","2.developers\u002F7.templates\u002F40.rag-customization\u002F50.embedders",{"date":5629,"thumbnail":151,"tags":6294,"keywords":6295},[5002,5640],[5558,5560,5561,5562,5642,5643],{"title":5645,"path":6297,"stem":6298,"meta":6299},"\u002Fdevelopers\u002Ftemplates\u002Frag-customization\u002Fllm-chats","2.developers\u002F7.templates\u002F40.rag-customization\u002F60.llm-chats",{"date":5649,"thumbnail":151,"tags":6300,"keywords":6301},[5002,5558,5651,5645],[5558,5560,5561,5562,5642,5653],{"title":5664,"path":6303,"stem":6304,"children":6305,"page":5036},"\u002Fdevelopers\u002Ftemplates\u002Fdeploy","2.developers\u002F7.templates\u002F60.deploy",[6306,6310,6314,6321],{"title":5670,"path":6307,"stem":6308,"meta":6309},"\u002Fdevelopers\u002Ftemplates\u002Fdeploy\u002Fcloud-deployment","2.developers\u002F7.templates\u002F60.deploy\u002F10.cloud-deployment",{},{"title":5675,"path":6311,"stem":6312,"meta":6313},"\u002Fdevelopers\u002Ftemplates\u002Fdeploy\u002Fgcp-deploy","2.developers\u002F7.templates\u002F60.deploy\u002F15.gcp-deploy",{},{"title":5680,"path":6315,"stem":6316,"meta":6317},"\u002Fdevelopers\u002Ftemplates\u002Fdeploy\u002Faws-fargate-deploy","2.developers\u002F7.templates\u002F60.deploy\u002F20.aws-fargate-deploy",{"date":5684,"tags":6318,"thumbnail":6319,"keywords":6320,"docker_github_link":5695,"deployButtons":5036},[5686,5687],{"src":5689},[5691,5692,5693,5232,5694],{"title":5697,"path":6322,"stem":6323,"meta":6324},"\u002Fdevelopers\u002Ftemplates\u002Fdeploy\u002Fazure-aci-deploy","2.developers\u002F7.templates\u002F60.deploy\u002F25.azure-aci-deploy",{"date":5701,"tags":6325,"thumbnail":6326,"keywords":6327,"docker_github_link":5711,"deployButtons":5036},[5686,5687],{"src":5704,"contain":219},[5706,5707,5693,5232,5708,5709,5710],{"title":6329,"meta":6330,"path":6331,"stem":6332,"children":6333,"page":5036},"ETL Templates",{},"\u002Fdevelopers\u002Ftemplates\u002Fetl","2.developers\u002F7.templates\u002FETL",[6334,6348,6364,6383,6403,6414,6428,6439,6449,6464,6479,6493,6508,6526,6542,6556,6572,6588,6600,6613,6623,6635,6647,6661],{"title":6335,"path":6336,"stem":6337,"meta":6338},"EL Pipeline: Move your data around with Pathway","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fel-pipeline","2.developers\u002F7.templates\u002FETL\u002F10.el-pipeline",{"layout":6339,"date":6340,"tags":6341,"thumbnail":6342,"keywords":6344,"popular":219},"template","2025-05-22",[5686,5687],{"src":6343,"contain":219},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Fel-template\u002Fel-template-thumbnail.png",[6345,6346,6347,5230,5257,5232],"ETL","EL","YAML",{"title":6349,"path":6350,"stem":6351,"meta":6352},"Real-Time Anomaly Detection: identifying brute-force logins using Tumbling Windows","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fsuspicious_activity_tumbling_window","2.developers\u002F7.templates\u002FETL\u002F10.suspicious_activity_tumbling_window",{"notebook_export_path":6353,"aside":219,"date":6354,"thumbnail":6355,"tags":6358,"keywords":6360,"layout":6339},"notebooks\u002Ftutorials\u002Fsuspicious_user_activity.ipynb","2023-05-30",{"src":6356,"provider":6357},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Fth-shield.png","s3",[5002,6359],"machine-learning",[5531,6361,6362,6363],"tumbling","alert","notebook",{"title":6365,"path":6366,"stem":6367,"meta":6368},"Gaussian Filtering in Real-time: Signal processing with out-of-order data streams","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fgaussian_filtering_python","2.developers\u002F7.templates\u002FETL\u002F100.gaussian_filtering_python",{"notebook_export_path":6369,"aside":219,"date":6370,"layout":6339,"thumbnail":6371,"tags":6373,"related":6375,"keywords":6378},"notebooks\u002Ftutorials\u002Fgaussian-filtering-python.ipynb","2023-10-17",{"src":6372},"\u002Fassets\u002Fcontent\u002Ftutorials\u002Ftime_series\u002Fthumbnail-gaussian.png",[5002,6374],"Time Series",[6376,6377],"\u002Fblog\u002Fsignal-processing","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fupsampling",[6379,6380,5496,6381,6382,5531,6363],"signal processing","Gaussian filter","irregular sampling","intervals_over",{"title":6384,"path":6385,"stem":6386,"meta":6387},"Computing the Option Greeks using Pathway Live Data Framework and Databento","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Foption-greeks","2.developers\u002F7.templates\u002FETL\u002F105.option-greeks",{"thumbnail":6388,"date":6390,"tags":6391,"keywords":6392,"notebook_export_path":6401,"docker_github_link":6402,"aside":219,"layout":6339},{"src":6389,"contain":219},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Foption-greeks\u002Foption-greeks.png","2024-08-06",[5002,5687],[6393,6394,6395,6396,6397,6398,6399,6400,6363],"Option Greeks","Databento","Delta","Gamma","Theta","Rho","quant","Black model","notebooks\u002Ftutorials\u002Foption-greeks.ipynb","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Foption-greeks",{"title":6404,"path":6405,"stem":6406,"meta":6407},"Automating reconciliation of messy financial transaction logs using the Pathway Live Data Framework real-time fuzzy join","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Ffuzzy_join_chapter1","2.developers\u002F7.templates\u002FETL\u002F11.fuzzy_join_chapter1",{"notebook_export_path":6408,"aside":219,"date":6409,"tags":6410,"keywords":6411,"layout":6339},"notebooks\u002Fshowcases\u002Ffuzzy_join_part1.ipynb","2022-10-18",[5002,5687],[6412,6413,5620,6363],"Fuzzy join","reconciliation",{"title":6415,"path":6377,"stem":6416,"meta":6417},"Signal Processing with Real-time Upsampling: combining multiple time series data streams.","2.developers\u002F7.templates\u002FETL\u002F110.upsampling",{"notebook_export_path":6418,"aside":219,"date":6419,"layout":6339,"thumbnail":6420,"tags":6422,"related":6423,"popular":219,"keywords":6424},"notebooks\u002Ftutorials\u002Fupsampling.ipynb","2023-10-18",{"src":6421},"\u002Fassets\u002Fcontent\u002Ftutorials\u002Ftime_series\u002Fthumbnail-time-series.png",[5002,6374],[6376,6366],[6379,6425,5496,6426,6427,6382,5531,6363],"upsampling","resampling","interpolation",{"title":6429,"path":6430,"stem":6431,"meta":6432},"Interaction with a Feedback Loop.","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Ffuzzy_join_chapter2","2.developers\u002F7.templates\u002FETL\u002F12.fuzzy_join_chapter2",{"notebook_export_path":6433,"aside":219,"date":6434,"thumbnail":6435,"tags":6437,"keywords":6438,"layout":6339},"notebooks\u002Fshowcases\u002Ffuzzy_join_part2.ipynb","2022-10-19",{"src":6436,"contain":219},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Ffuzzy_join\u002Freconciliation_chapter3_trim.png",[5002,5687],[6412,6413,5620,6363],{"title":6440,"path":6441,"stem":6442,"meta":6443},"Smart real-time monitoring application with alert deduplication","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Falerting-significant-changes","2.developers\u002F7.templates\u002FETL\u002F130.alerting-significant-changes",{"notebook_export_path":6444,"aside":219,"date":6445,"tags":6446,"keywords":6447,"layout":6339},"notebooks\u002Ftutorials\u002Falert-deduplication.ipynb","2023-11-16",[5002,5687],[6362,6448,5753,6363],"deduplication",{"title":6450,"path":6451,"stem":6452,"meta":6453},"Kafka ETL: Processing event streams in Python","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fkafka-etl","2.developers\u002F7.templates\u002FETL\u002F140.kafka-etl",{"layout":6339,"date":6454,"tags":6455,"thumbnail":6456,"keywords":6458,"docker_github_link":6463,"popular":219},"2024-02-15",[5686,5687],{"src":6457,"contain":219},"\u002Fassets\u002Fcontent\u002Fshowcases\u002FETL-Kafka\u002FETL-Kafka.png",[6345,5230,6459,6460,6461,6462,5232],"datetime","time zone","timezone","concat_reindex","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fkafka-ETL",{"title":6465,"path":6466,"stem":6467,"meta":6468},"Streaming ETL pipelines in Python with Airbyte and Pathway","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fetl-python-airbyte","2.developers\u002F7.templates\u002FETL\u002F150.etl-python-airbyte",{"layout":6339,"date":6469,"tags":6470,"thumbnail":6471,"keywords":6473},"2024-02-28",[5686,5687],{"src":6472},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Fairbyte\u002Fairbyte-diagram-th.png",[6474,6475,6476,6477,6478],"airbyte","processing","airbyte python","python etl","airbyte etl",{"title":6480,"path":6481,"stem":6482,"meta":6483},"Delta Lake ETL with Pathway Live Data Framework for Spark Analytics","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fdelta_lake_etl","2.developers\u002F7.templates\u002FETL\u002F175.delta_lake_etl",{"layout":6339,"date":6484,"tags":6485,"thumbnail":6486,"keywords":6488,"docker_github_link":6492},"2024-07-23",[5686,5687],{"src":6487,"contain":219},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Fdeltalake\u002Fdelta_lake_diagram_th.png",[6489,6490,6491,6477,6478,5232],"delta lake etl","spark delta lake","spark etl","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fspark-data-preparation",{"title":6494,"path":6495,"stem":6496,"meta":6497},"Python Kafka Alternative: Achieve Sub-Second Latency with your S3 Storage without Kafka using Pathway","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fkafka-alternative","2.developers\u002F7.templates\u002FETL\u002F180.kafka-alternative",{"layout":6339,"thumbnail":6498,"date":6500,"tags":6501,"keywords":6502},{"src":6499,"contain":219},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Fkafka-alternatives\u002Fkafka-alternatives-thumbnail.png","2024-08-27",[5686,5687],[6345,5230,6503,6504,6505,6461,6506,6507],"Pathway","MinIO","S3","Kafka-alternatives","Delta tables",{"title":6509,"path":6510,"stem":6511,"meta":6512},"Jupyter \u002F Colab: visualizing and transforming live data streams in Python notebooks with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Flive_data_jupyter","2.developers\u002F7.templates\u002FETL\u002F2.live_data_jupyter",{"aside":219,"date":5732,"tags":6513,"keywords":6514,"notebook_export_path":6524,"docker_github_link":6525,"popular":219,"layout":6339},[5002,5687,5686],[6515,6516,6517,6518,6519,6520,6521,6522,6523,6363,5232],"Jupyter notebook","interactivity","bokeh","panel","Bollinger bands","vizualization","Weighted Average","rolling statistics","dashboard","notebooks\u002Fshowcases\u002Flive-data-jupyter.ipynb","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Ffrom_jupyter_to_deploy\u002Fpart4_deployment",{"title":6527,"path":6528,"stem":6529,"meta":6530},"Real-Time Twitter Sentiment Analysis and Prediction App with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Ftwitter","2.developers\u002F7.templates\u002FETL\u002F2.twitter",{"aside":219,"layout":6339,"date":6531,"thumbnail":6532,"tags":6534,"keywords":6535,"docker_github_link":6541},"2022-10-31",{"src":6533},"\u002Fassets\u002Fcontent\u002Fblog\u002Fth-twitter.png",[5002,6359,5686],[6536,6537,6538,6539,6540,5620,5232],"Twitter","tweets","sentiment analysis","geolocation","influence","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Ftwitter",{"title":6543,"path":6544,"stem":6545,"meta":6546},"Out-of-Order Event Streams: Calculating Time Deltas with grouping by topic","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fevent_stream_processing_time_between_occurrences","2.developers\u002F7.templates\u002FETL\u002F20.event_stream_processing_time_between_occurrences",{"aside":219,"date":6547,"layout":6339,"thumbnail":6548,"tags":6550,"keywords":6551},"2022-11-01",{"src":6549},"\u002Fassets\u002Fcontent\u002Fblog\u002Fth-time-between-events-in-a-multi-topic-event-stream.png",[5002,5687],[6552,6553,5229,6554,6555],"event stream","multi-topic","ordering","sort",{"title":6557,"path":6558,"stem":6559,"meta":6560},"Adaptive Classifiers: Evolving Predictions with Real-Time Data","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Flsh_chapter1","2.developers\u002F7.templates\u002FETL\u002F3.lsh_chapter1",{"notebook_export_path":6561,"aside":219,"date":6562,"thumbnail":6563,"tags":6565,"keywords":6566,"layout":6339},"notebooks\u002Fshowcases\u002Flsh.ipynb","2022-10-25",{"src":6564},"\u002Fassets\u002Fcontent\u002Fblog\u002Fth-realtime-classification.png",[5002,6359],[6567,5429,6568,5424,6569,6570,6571,5620,6363],"Classification","LSH","Locality Sensitive Hashing","MNIST","euclidean distance",{"title":6573,"path":6574,"stem":6575,"meta":6576},"Uncovering hidden user relationships in crypto exchanges with Fuzzy Join on streaming data","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fuser_pairs_fuzzy_join","2.developers\u002F7.templates\u002FETL\u002F30.user_pairs_fuzzy_join",{"aside":219,"date":6577,"thumbnail":6578,"tags":6580,"keywords":6581,"layout":6339},"2023-01-09",{"src":6579,"provider":6357},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Fth-mining-hidden-user-pair-activity-with-fuzzy-join.png",[5002,5687],[6582,6362,6583,6584,6585,6586,6587],"fuzzy join","cryptocurrency","bitcoin","BTC","ETH","Ethereum",{"title":6589,"path":6590,"stem":6591,"meta":6592},"Pathway Live Data Framework Logistics Application: Streamlined Insights for Real-Time Asset Management","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Flogistics","2.developers\u002F7.templates\u002FETL\u002F4.logistics",{"aside":219,"layout":6339,"date":6531,"thumbnail":6593,"tags":6595,"enterprise":219,"keywords":6596},{"src":6594},"\u002Fassets\u002Fcontent\u002Fblog\u002Fth-logictics-app.png",[5002,6359],[6597,6598,6599],"Logistics","IoT","Dashboard",{"title":6601,"path":6602,"stem":6603,"meta":6604},"Real-Time Shortest Paths on Dynamic Networks with Bellman-Ford in Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fbellman_ford","2.developers\u002F7.templates\u002FETL\u002F40.bellman_ford",{"aside":219,"date":6605,"layout":6339,"thumbnail":6606,"tags":6608,"notebook_export_path":6609,"keywords":6610},"2022-11-03",{"src":6607,"provider":6357},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Fth-bellman-ford.png",[5002,6359],"notebooks\u002Ftutorials\u002Fbellman_ford.ipynb",[5405,6611,6612,5767,6363],"fixed-point","shortest-path",{"title":6614,"path":6615,"stem":6616,"meta":6617},"Linear regression on a Kafka stream","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Flinear_regression_with_kafka","2.developers\u002F7.templates\u002FETL\u002F5.linear_regression_with_kafka",{"aside":219,"layout":6339,"date":6618,"tags":6619,"keywords":6620,"docker_github_link":6622},"2022-12-23",[5002,5687],[6621,5230,5161],"linear regression","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Fkafka-linear-regression",{"title":6624,"path":6625,"stem":6626,"meta":6627},"Real-Time PageRank on Dynamic Graphs with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fpagerank","2.developers\u002F7.templates\u002FETL\u002F50.pagerank",{"notebook_export_path":6628,"aside":219,"date":6629,"thumbnail":6630,"tags":6632,"keywords":6633,"layout":6339},"notebooks\u002Ftutorials\u002Fpagerank.ipynb","2022-11-07",{"src":6631,"provider":6357},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Fth-computing-pagerank.png",[5002,6359],[6634,5767,6363],"pagerank",{"title":6636,"path":6637,"stem":6638,"meta":6639},"Sensor Fusion in real-time: combining time series data with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Fcombining_time_series","2.developers\u002F7.templates\u002FETL\u002F65.combining_time_series",{"aside":219,"date":6640,"thumbnail":6641,"tags":6642,"keywords":6643,"notebook_export_path":6646,"layout":6339},"2023-04-28",{"src":6421},[6374],[6644,6645,6427,5125,6363],"time series","multiple data sources","notebooks\u002Ftutorials\u002Fcombining-time-series.ipynb",{"title":6648,"path":6649,"stem":6650,"meta":6651},"Realtime Server Log Monitoring: nginx + Filebeat + Pathway","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002Frealtime-log-monitoring","2.developers\u002F7.templates\u002FETL\u002F7.realtime-log-monitoring",{"aside":219,"layout":6339,"date":6652,"thumbnail":6653,"tags":6655,"keywords":6656,"docker_github_link":6660},"2023-02-27",{"src":6654,"contain":219},"\u002Fassets\u002Fcontent\u002Ftutorials\u002Frealtime_log_monitoring\u002Fmeme.jpg",[5002,5687],[6657,6362,5230,6658,5205,6659,5232],"log monitoring","Filebeat","ElasticSearch","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fpathway\u002Ftree\u002Fmain\u002Fexamples\u002Fprojects\u002Frealtime-log-monitoring\u002Ffilebeat-pathway-slack",{"title":6662,"path":6663,"stem":6664,"children":6665,"page":5036},"Readmes","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes","2.developers\u002F7.templates\u002FETL\u002F_readmes",[6666,6671,6676,6681,6686,6691,6696,6701,6706,6711,6716,6720,6725,6730,6735,6740,6745,6750,6755],{"title":6667,"path":6668,"stem":6669,"meta":6670},"AG2 Multi-Agent Conversations with Pathway Live Data Framework Real-Time RAG","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fag2-multiagent-rag","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fag2-multiagent-rag",{},{"title":6672,"path":6673,"stem":6674,"meta":6675},"Azure ACI Deployment Example","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fazure-aci-deploy","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fazure-aci-deploy",{},{"title":6677,"path":6678,"stem":6679,"meta":6680},"Benchmark for Delta Lake S3 messaging as a Kafka replacement","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fbenchmarks","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fbenchmarks",{},{"title":6682,"path":6683,"stem":6684,"meta":6685},"Best-rated movies examples","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fbest-movies-example","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fbest-movies-example",{},{"title":6687,"path":6688,"stem":6689,"meta":6690},"Make your LLM app sane again: Forgetting incorrect data in real time","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fconf42","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fconf42",{},{"title":6692,"path":6693,"stem":6694,"meta":6695},"Custom python connector example","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fcustom-python-connector-twitter","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fcustom-python-connector-twitter",{},{"title":6697,"path":6698,"stem":6699,"meta":6700},"Realtime monitoring of logs","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Ffilebeat-pathway-slack","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Ffilebeat-pathway-slack",{},{"title":6702,"path":6703,"stem":6704,"meta":6705},"Tutorial: From interactive data exploration to deployment","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Ffrom_jupyter_to_deploy","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Ffrom_jupyter_to_deploy",{},{"title":6707,"path":6708,"stem":6709,"meta":6710},"ETL with Kafka in\u002FKafka out","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fkafka-etl","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fkafka-ETL",{},{"title":6712,"path":6713,"stem":6714,"meta":6715},"Best-rated movies example - Kafka version","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fkafka-version","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fkafka-version",{},{"title":6697,"path":6717,"stem":6718,"meta":6719},"\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Flogstash-pathway-elastic","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Flogstash-pathway-elastic",{},{"title":6721,"path":6722,"stem":6723,"meta":6724},"Pathway Live Data Framework Monitoring using OpenTelemetry Collector and Grafana Cloud","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fmonitoring","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fmonitoring",{},{"title":6726,"path":6727,"stem":6728,"meta":6729},"Computing Option Greeks with Pathway Live Data Framework and Databento.","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Foption-greeks","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Foption-greeks",{},{"title":6731,"path":6732,"stem":6733,"meta":6734},"Retrieval-Augmented Generation (RAG) Pipeline with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fquestion-answering-rag","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fquestion-answering-rag",{},{"title":6736,"path":6737,"stem":6738,"meta":6739},"Best-rated movies example - Redpanda version","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fredpanda-version","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fredpanda-version",{},{"title":6741,"path":6742,"stem":6743,"meta":6744},"Sample Pathway Live Data Framework program for SharePoint connection testing","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fsharepoint-test","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fsharepoint-test",{},{"title":6746,"path":6747,"stem":6748,"meta":6749},"Data Preparation for Spark Analytics","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fspark-data-preparation","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fspark-data-preparation",{},{"title":6751,"path":6752,"stem":6753,"meta":6754},"Realtime Twitter Analysis App with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Ftwitter","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Ftwitter",{},{"title":6756,"path":6757,"stem":6758,"meta":6759},"Web Scraping with Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Fetl\u002F_readmes\u002Fweb-scraping","2.developers\u002F7.templates\u002FETL\u002F_readmes\u002Fweb-scraping",{},{"title":6761,"meta":6762,"path":6763,"stem":6764,"children":6765,"page":5036},"LLM-RAG Templates",{},"\u002Fdevelopers\u002Ftemplates\u002Frag","2.developers\u002F7.templates\u002Frag",[6766,6778,6793,6809,6822,6840,6850,6865,6875,6885,6896,6909],{"title":6767,"path":6768,"stem":6769,"meta":6770},"Question-Answering RAG App","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Fdemo-question-answering","2.developers\u002F7.templates\u002Frag\u002F1000.demo-question-answering",{"redirection":6771,"thumbnail":6772,"layout":6339,"tags":6774,"date":5617,"keywords":6776,"docker_github_link":6771,"popular":219},"https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fquestion_answering_rag",{"src":6773,"provider":6357},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Fqna-th.png",[5686,6775],"ai-pipelines",[5558,5570,5560,5561,6777,5425,5161,4516],"vector store",{"title":6779,"path":6780,"stem":6781,"meta":6782},"Adaptive RAG App","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Ftemplate-adaptive-rag","2.developers\u002F7.templates\u002Frag\u002F1001.template-adaptive-rag",{"thumbnail":6783,"tags":6785,"date":6786,"layout":6339,"keywords":6787,"docker_github_link":6792},{"src":6784,"contain":219},"\u002Fassets\u002Fcontent\u002Fblog\u002Fadaptive-rag-plots\u002Fvisual-abstract.png",[5686,6775],"2024-03-29",[5558,5570,6788,6789,6790,6791,5161,4516],"Adaptive RAG","prompt engineering","prompt","explainability","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fadaptive_rag",{"title":6794,"path":6795,"stem":6796,"meta":6797},"Private RAG App with Mistral and Ollama","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Ftemplate-private-rag","2.developers\u002F7.templates\u002Frag\u002F1002.template-private-rag",{"tags":6798,"date":6799,"thumbnail":6800,"layout":6339,"keywords":6802,"docker_github_link":6808},[5686,6775],"2024-04-22",{"src":6801,"contain":219},"\u002Fassets\u002Fcontent\u002Fblog\u002Flocal-adaptive-rag\u002Flocal_adaptive.png",[5558,5570,6788,6789,6791,6803,6804,6805,6806,6807,5161,4516],"mistral","ollama","private rag","local rag","ollama rag","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fprivate_rag",{"title":6810,"path":6811,"stem":6812,"meta":6813},"Multimodal RAG pipeline with GPT4o","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Ftemplate-multimodal-rag","2.developers\u002F7.templates\u002Frag\u002F1003.template-multimodal-rag",{"tags":6814,"date":6815,"thumbnail":6816,"layout":6339,"keywords":6818,"docker_github_link":6821,"popular":219},[5686,6775],"2024-01-01",{"src":6817,"contain":219},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Fmultimodal-RAG\u002FmultimodalRAG-blog-banner.png",[5558,5570,5560,5561,6819,6820,5620,5161,4516],"GPT-4o","multimodal RAG","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fmultimodal_rag",{"title":6823,"path":6824,"stem":6825,"children":6826,"meta":6836},"Live Document Indexing (Vector Store \u002F Retriever)","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Ftemplate-demo-document-indexing","2.developers\u002F7.templates\u002Frag\u002F1008.template-demo-document-indexing",[6827],{"title":6823,"path":6824,"stem":6825,"meta":6828},{"thumbnail":6829,"tags":6831,"date":6815,"layout":6339,"keywords":6832,"docker_github_link":6835},{"src":6830,"provider":6357},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Flive-document-indexing-th.png",[5686,6775],[5558,5570,5560,5561,6777,5425,6833,5323,6834,5161,4516],"SharePoint","Gdrive","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fdocument_indexing",{"thumbnail":6837,"tags":6838,"date":6815,"layout":6339,"keywords":6839,"docker_github_link":6835},{"src":6830,"provider":6357},[5686,6775],[5558,5570,5560,5561,6777,5425,6833,5323,6834,5161,4516],{"title":6841,"path":6842,"stem":6843,"meta":6844},"Alerting when answers change on Google Drive","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Fdrive-alert","2.developers\u002F7.templates\u002Frag\u002F1009.drive-alert",{"tags":6845,"date":6846,"layout":6339,"keywords":6847,"docker_github_link":6849,"hide":219},[5686,6775],"2024-11-07",[5558,5570,5560,5561,6848,5425,5323,6834,5161],"slack","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fdrive_alert",{"title":6851,"path":6852,"stem":6853,"meta":6854},"Slides AI Search App","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Ftemplate-slides-search","2.developers\u002F7.templates\u002Frag\u002F1010.template-slides-search",{"thumbnail":6855,"tags":6857,"date":6858,"layout":6339,"keywords":6859,"docker_github_link":6864},{"src":6856,"provider":6357},"\u002Fassets\u002Fblog\u002Fthumbnails\u002Fslides-search-th.png",[5686,6775],"2024-11-14",[5558,5570,5560,5561,5323,6860,5161,4516,6861,6862,6863],"slides","multimodal","VLM","image-to-text","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Fslides_ai_search",{"title":6866,"path":6867,"stem":6868,"meta":6869},"Adaptive RAG: cut your LLM costs without sacrificing accuracy","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Fadaptive-rag","2.developers\u002F7.templates\u002Frag\u002F1015.adaptive-rag",{"aside":219,"thumbnail":6870,"tags":6871,"date":6872,"notebook_export_path":6873,"keywords":6874,"run_template":6780,"hide":219},{"src":6784,"contain":219},[5686,6775],"2024-03-28","notebooks\u002Fshowcases\u002Fadaptive_rag_question_answering.ipynb",[5558,5570,6788,6789,6790,6791,6363,5232],{"title":6876,"path":6877,"stem":6878,"meta":6879},"Multimodal RAG for PDFs with Text, Images, and Charts","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Fmultimodal-rag","2.developers\u002F7.templates\u002Frag\u002F120.multimodal-rag",{"aside":219,"thumbnail":6880,"date":6881,"tags":6882,"keywords":6883,"notebook_export_path":6884,"run_template":6811,"popular":219,"hide":219},{"src":6817,"contain":219},"2024-06-20",[5686,6775],[5558,5570,5560,5561,6819,6820,5620,6363,5161],"notebooks\u002Fshowcases\u002Fmultimodal-rag.ipynb",{"title":6886,"path":6887,"stem":6888,"meta":6889},"Private RAG with Connected Data Sources using Mistral, Ollama, and Pathway Live Data Framework","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Fprivate-rag-ollama-mistral","2.developers\u002F7.templates\u002Frag\u002F161.private-rag-ollama-mistral",{"aside":219,"thumbnail":6890,"tags":6891,"date":6892,"related":6893,"notebook_export_path":6894,"keywords":6895,"run_template":6795,"hide":219},{"src":6801,"contain":219},[5686,6775],"2024-04-23",[6867,6768],"notebooks\u002Fshowcases\u002Fmistral_adaptive_rag_question_answering.ipynb",[5558,5570,6788,6789,6791,6803,6804,6805,6806,6807,6363,5161],{"title":6897,"path":6898,"stem":6899,"meta":6900},"Pathway Live Data Framework + PostgreSQL + LLM: app for querying financial reports with live document structuring pipeline.","\u002Fdevelopers\u002Ftemplates\u002Frag\u002Funstructured-to-structured","2.developers\u002F7.templates\u002Frag\u002F5.unstructured-to-structured",{"aside":219,"layout":6339,"date":5541,"thumbnail":6901,"tags":6903,"keywords":6904,"docker_github_link":6908},{"src":6902,"contain":219},"\u002Fassets\u002Fcontent\u002Fshowcases\u002Fllm-app\u002Farchitecture_unst_to_st.png",[5686,6775],[5558,6905,5620,5257,5560,6906,6907,5124,5620,5232],"SQL","Entity extraction","Document parsing","https:\u002F\u002Fgithub.com\u002Fpathwaycom\u002Fllm-app\u002Ftree\u002Fmain\u002Ftemplates\u002Funstructured_to_sql_on_the_fly",{"title":6662,"path":6910,"stem":6911,"children":6912,"page":5036},"\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes","2.developers\u002F7.templates\u002Frag\u002F_readmes",[6913,6918,6926,6931,6936,6941,6946,6951,6956],{"title":6914,"path":6915,"stem":6916,"meta":6917},"AdaptiveRag","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fadaptive_rag","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fadaptive_rag",{},{"title":6919,"path":6920,"stem":6921,"children":6922,"meta":6925},"DocumentIndexing","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fdocument_indexing","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fdocument_indexing",[6923],{"title":6919,"path":6920,"stem":6921,"meta":6924},{},{},{"title":6927,"path":6928,"stem":6929,"meta":6930},"DocumentStoreMcpServer","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fdocument_store_mcp_server","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fdocument_store_mcp_server",{},{"title":6932,"path":6933,"stem":6934,"meta":6935},"Pathway Live Data Framework + LLM + Slack notification: RAG App with real-time alerting when answers change in documents","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fdrive_alert","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fdrive_alert",{},{"title":6937,"path":6938,"stem":6939,"meta":6940},"MultimodalRag","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fmultimodal_rag","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fmultimodal_rag",{},{"title":6942,"path":6943,"stem":6944,"meta":6945},"PrivateRag","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fprivate_rag","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fprivate_rag",{},{"title":6947,"path":6948,"stem":6949,"meta":6950},"QuestionAnsweringRag","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fquestion_answering_rag","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fquestion_answering_rag",{},{"title":6952,"path":6953,"stem":6954,"meta":6955},"SlidesAiSearch","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Fslides_ai_search","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Fslides_ai_search",{},{"title":6957,"path":6958,"stem":6959,"meta":6960},"UnstructuredToSqlOnTheFly","\u002Fdevelopers\u002Ftemplates\u002Frag\u002F_readmes\u002Funstructured_to_sql_on_the_fly","2.developers\u002F7.templates\u002Frag\u002F_readmes\u002Funstructured_to_sql_on_the_fly",{},{"navTitle":5032,"layout":5104,"aside":219,"toc":5036,"single":219},{"id":4,"title":5,"author":6,"body":6963,"description":4997,"extension":4998,"meta":11365,"navigation":219,"path":5009,"seo":11368,"sitemap":11369,"stem":5012,"__hash__":5013},{"type":8,"value":6964,"toc":11343},[6965,6967,6969,6974,6976,6978,6980,6998,7000,7002,7004,7006,7008,7010,7014,7022,7024,7034,7036,7042,7392,7396,7402,7414,7430,7440,7452,7456,7462,7542,7544,7570,7572,7574,7581,7759,7773,7775,7777,7783,7819,7821,8021,8023,8029,8109,8111,8113,8707,8713,8717,9253,9261,9301,9303,9425,9427,9429,9431,9437,9467,9471,9473,9783,9787,9805,9813,9815,9871,9873,9875,9877,10775,10781,10785,10787,10929,10931,10933,10935,10937,10947,10949,10951,11019,11021,11337,11339,11341],[11,6966,5],{"id":13},[15,6968,18],{"id":17},[20,6970,22,6971,30],{},[24,6972,29],{"href":26,"rel":6973},[28],[20,6975,33],{},[15,6977,37],{"id":36},[20,6979,40],{},[42,6981,6982,6986,6990,6994],{},[45,6983,6984,51],{},[48,6985,50],{},[45,6987,6988,57],{},[48,6989,56],{},[45,6991,6992,63],{},[48,6993,62],{},[45,6995,6996,69],{},[48,6997,68],{},[71,6999,74],{"id":73},[20,7001,77],{},[20,7003,80],{},[15,7005,5],{"id":83},[20,7007,86],{},[71,7009,90],{"id":89},[20,7011,93,7012],{},[95,7013,97],{},[99,7015,7016],{},[20,7017,7018,106,7020,111],{},[48,7019,105],{},[24,7021,110],{"href":109},[71,7023,115],{"id":114},[42,7025,7026,7030],{},[45,7027,7028,123],{},[48,7029,122],{},[45,7031,7032,129],{},[48,7033,128],{},[71,7035,133],{"id":132},[20,7037,136,7038,140,7040,144],{},[95,7039,139],{},[95,7041,143],{},[146,7043,7044],{"className":148,"code":149,"language":150,"meta":151,"style":151},[95,7045,7046,7056,7086,7090,7094,7098,7114,7118,7122,7126,7138,7142,7176,7180,7184,7188,7192,7212,7216,7236,7246,7256,7270,7280,7284,7288,7298,7302,7312,7326,7340,7354,7364,7374,7378,7382],{"__ignoreMap":151},[155,7047,7048,7050,7052,7054],{"class":157,"line":158},[155,7049,162],{"class":161},[155,7051,166],{"class":165},[155,7053,169],{"class":161},[155,7055,172],{"class":165},[155,7057,7058,7060,7062,7064,7066,7068,7070,7072,7074,7076,7078,7080,7082,7084],{"class":157,"line":175},[155,7059,178],{"class":161},[155,7061,181],{"class":165},[155,7063,111],{"class":184},[155,7065,187],{"class":165},[155,7067,111],{"class":184},[155,7069,192],{"class":165},[155,7071,111],{"class":184},[155,7073,197],{"class":165},[155,7075,162],{"class":161},[155,7077,202],{"class":165},[155,7079,205],{"class":184},[155,7081,208],{"class":165},[155,7083,205],{"class":184},[155,7085,213],{"class":165},[155,7087,7088],{"class":157,"line":216},[155,7089,220],{"emptyLinePlaceholder":219},[155,7091,7092],{"class":157,"line":223},[155,7093,220],{"emptyLinePlaceholder":219},[155,7095,7096],{"class":157,"line":228},[155,7097,232],{"class":231},[155,7099,7100,7102,7104,7106,7108,7110,7112],{"class":157,"line":235},[155,7101,239],{"class":238},[155,7103,243],{"class":242},[155,7105,246],{"class":184},[155,7107,249],{"class":242},[155,7109,111],{"class":184},[155,7111,254],{"class":242},[155,7113,257],{"class":184},[155,7115,7116],{"class":157,"line":260},[155,7117,263],{"class":161},[155,7119,7120],{"class":157,"line":266},[155,7121,220],{"emptyLinePlaceholder":219},[155,7123,7124],{"class":157,"line":271},[155,7125,220],{"emptyLinePlaceholder":219},[155,7127,7128,7130,7132,7134,7136],{"class":157,"line":276},[155,7129,239],{"class":238},[155,7131,281],{"class":242},[155,7133,246],{"class":184},[155,7135,286],{"class":242},[155,7137,257],{"class":184},[155,7139,7140],{"class":157,"line":291},[155,7141,220],{"emptyLinePlaceholder":219},[155,7143,7144,7146,7148,7150,7152,7154,7156,7158,7160,7162,7164,7166,7168,7170,7172,7174],{"class":157,"line":296},[155,7145,299],{"class":238},[155,7147,303],{"class":302},[155,7149,246],{"class":184},[155,7151,309],{"class":308},[155,7153,205],{"class":184},[155,7155,315],{"class":314},[155,7157,144],{"class":184},[155,7159,320],{"class":165},[155,7161,111],{"class":184},[155,7163,326],{"class":325},[155,7165,329],{"class":184},[155,7167,332],{"class":184},[155,7169,320],{"class":165},[155,7171,111],{"class":184},[155,7173,326],{"class":325},[155,7175,341],{"class":184},[155,7177,7178],{"class":157,"line":344},[155,7179,347],{"class":161},[155,7181,7182],{"class":157,"line":350},[155,7183,353],{"class":231},[155,7185,7186],{"class":157,"line":356},[155,7187,347],{"class":161},[155,7189,7190],{"class":157,"line":361},[155,7191,220],{"emptyLinePlaceholder":219},[155,7193,7194,7196,7198,7200,7202,7204,7206,7208,7210],{"class":157,"line":366},[155,7195,369],{"class":161},[155,7197,315],{"class":165},[155,7199,111],{"class":184},[155,7201,376],{"class":302},[155,7203,246],{"class":184},[155,7205,381],{"class":314},[155,7207,384],{"class":184},[155,7209,143],{"class":387},[155,7211,390],{"class":184},[155,7213,7214],{"class":157,"line":393},[155,7215,220],{"emptyLinePlaceholder":219},[155,7217,7218,7220,7222,7224,7226,7228,7230,7232,7234],{"class":157,"line":398},[155,7219,299],{"class":238},[155,7221,403],{"class":302},[155,7223,246],{"class":184},[155,7225,309],{"class":308},[155,7227,205],{"class":184},[155,7229,412],{"class":314},[155,7231,144],{"class":184},[155,7233,208],{"class":165},[155,7235,257],{"class":184},[155,7237,7238,7240,7242,7244],{"class":157,"line":421},[155,7239,424],{"class":165},[155,7241,111],{"class":184},[155,7243,429],{"class":302},[155,7245,432],{"class":184},[155,7247,7248,7250,7252,7254],{"class":157,"line":435},[155,7249,438],{"class":184},[155,7251,139],{"class":441},[155,7253,444],{"class":184},[155,7255,447],{"class":184},[155,7257,7258,7260,7262,7264,7266,7268],{"class":157,"line":450},[155,7259,453],{"class":314},[155,7261,384],{"class":184},[155,7263,309],{"class":165},[155,7265,111],{"class":184},[155,7267,139],{"class":325},[155,7269,447],{"class":184},[155,7271,7272,7274,7276,7278],{"class":157,"line":466},[155,7273,469],{"class":314},[155,7275,384],{"class":184},[155,7277,474],{"class":302},[155,7279,447],{"class":184},[155,7281,7282],{"class":157,"line":479},[155,7283,482],{"class":184},[155,7285,7286],{"class":157,"line":485},[155,7287,220],{"emptyLinePlaceholder":219},[155,7289,7290,7292,7294,7296],{"class":157,"line":490},[155,7291,493],{"class":165},[155,7293,384],{"class":184},[155,7295,281],{"class":302},[155,7297,500],{"class":184},[155,7299,7300],{"class":157,"line":503},[155,7301,220],{"emptyLinePlaceholder":219},[155,7303,7304,7306,7308,7310],{"class":157,"line":508},[155,7305,511],{"class":165},[155,7307,384],{"class":184},[155,7309,516],{"class":302},[155,7311,432],{"class":184},[155,7313,7314,7316,7318,7320,7322,7324],{"class":157,"line":521},[155,7315,524],{"class":314},[155,7317,384],{"class":184},[155,7319,444],{"class":184},[155,7321,531],{"class":441},[155,7323,444],{"class":184},[155,7325,447],{"class":184},[155,7327,7328,7330,7332,7334,7336,7338],{"class":157,"line":538},[155,7329,541],{"class":314},[155,7331,384],{"class":184},[155,7333,444],{"class":184},[155,7335,548],{"class":441},[155,7337,444],{"class":184},[155,7339,447],{"class":184},[155,7341,7342,7344,7346,7348,7350,7352],{"class":157,"line":555},[155,7343,558],{"class":314},[155,7345,384],{"class":184},[155,7347,444],{"class":184},[155,7349,565],{"class":441},[155,7351,444],{"class":184},[155,7353,447],{"class":184},[155,7355,7356,7358,7360,7362],{"class":157,"line":572},[155,7357,575],{"class":314},[155,7359,384],{"class":184},[155,7361,580],{"class":387},[155,7363,447],{"class":184},[155,7365,7366,7368,7370,7372],{"class":157,"line":585},[155,7367,588],{"class":314},[155,7369,591],{"class":184},[155,7371,594],{"class":302},[155,7373,597],{"class":184},[155,7375,7376],{"class":157,"line":600},[155,7377,390],{"class":184},[155,7379,7380],{"class":157,"line":605},[155,7381,220],{"emptyLinePlaceholder":219},[155,7383,7384,7386,7388,7390],{"class":157,"line":610},[155,7385,249],{"class":165},[155,7387,111],{"class":184},[155,7389,617],{"class":302},[155,7391,500],{"class":184},[621,7393,7394],{"id":623},[95,7395,286],{},[20,7397,628,7398,633],{},[48,7399,7400],{},[95,7401,286],{},[42,7403,7404,7408,7410],{},[45,7405,638,7406,641],{},[95,7407,474],{},[45,7409,644],{},[45,7411,22,7412,650],{},[95,7413,649],{},[20,7415,653,7416,657,7418,660,7420,664,7422,667,7424,670,7426],{},[48,7417,656],{},[95,7419,309],{},[95,7421,663],{},[95,7423,663],{},[95,7425,474],{},[48,7427,673,7428,676],{},[95,7429,381],{},[20,7431,679,7432,682,7434,685,7436,689,7438,692],{},[95,7433,649],{},[95,7435,309],{},[95,7437,688],{},[95,7439,429],{},[42,7441,7442,7444,7448],{},[45,7443,697],{},[45,7445,7446,703],{},[95,7447,702],{},[45,7449,7450,709],{},[95,7451,708],{},[621,7453,7454],{"id":712},[95,7455,715],{},[20,7457,718,7458,723],{},[48,7459,7460],{},[95,7461,715],{},[146,7463,7464],{"className":148,"code":726,"language":150,"meta":151,"style":151},[95,7465,7466,7476,7490,7504,7518,7528,7538],{"__ignoreMap":151},[155,7467,7468,7470,7472,7474],{"class":157,"line":158},[155,7469,511],{"class":165},[155,7471,384],{"class":184},[155,7473,516],{"class":302},[155,7475,432],{"class":184},[155,7477,7478,7480,7482,7484,7486,7488],{"class":157,"line":175},[155,7479,524],{"class":314},[155,7481,384],{"class":184},[155,7483,444],{"class":184},[155,7485,749],{"class":441},[155,7487,444],{"class":184},[155,7489,447],{"class":184},[155,7491,7492,7494,7496,7498,7500,7502],{"class":157,"line":216},[155,7493,541],{"class":314},[155,7495,384],{"class":184},[155,7497,444],{"class":184},[155,7499,548],{"class":441},[155,7501,444],{"class":184},[155,7503,447],{"class":184},[155,7505,7506,7508,7510,7512,7514,7516],{"class":157,"line":223},[155,7507,558],{"class":314},[155,7509,384],{"class":184},[155,7511,444],{"class":184},[155,7513,565],{"class":441},[155,7515,444],{"class":184},[155,7517,447],{"class":184},[155,7519,7520,7522,7524,7526],{"class":157,"line":228},[155,7521,575],{"class":314},[155,7523,384],{"class":184},[155,7525,580],{"class":387},[155,7527,447],{"class":184},[155,7529,7530,7532,7534,7536],{"class":157,"line":235},[155,7531,588],{"class":314},[155,7533,591],{"class":184},[155,7535,594],{"class":302},[155,7537,597],{"class":184},[155,7539,7540],{"class":157,"line":260},[155,7541,390],{"class":184},[20,7543,808],{},[42,7545,7546,7550,7556,7560,7564],{},[45,7547,7548,816],{},[95,7549,815],{},[45,7551,7552,822,7554,825],{},[95,7553,821],{},[95,7555,548],{},[45,7557,7558,831],{},[95,7559,830],{},[45,7561,7562,837],{},[95,7563,836],{},[45,7565,7566,843,7568,846],{},[95,7567,842],{},[95,7569,286],{},[15,7571,850],{"id":849},[71,7573,854],{"id":853},[20,7575,857,7576,865],{},[24,7577,7579],{"href":860,"rel":7578},[28],[95,7580,864],{},[146,7582,7583],{"className":148,"code":868,"language":150,"meta":151,"style":151},[95,7584,7585,7591,7601,7605,7617,7621,7635,7639,7649,7659,7675,7685,7689,7699,7731,7741,7745],{"__ignoreMap":151},[155,7586,7587,7589],{"class":157,"line":158},[155,7588,162],{"class":161},[155,7590,877],{"class":165},[155,7592,7593,7595,7597,7599],{"class":157,"line":175},[155,7594,178],{"class":161},[155,7596,884],{"class":165},[155,7598,162],{"class":161},[155,7600,889],{"class":165},[155,7602,7603],{"class":157,"line":216},[155,7604,220],{"emptyLinePlaceholder":219},[155,7606,7607,7609,7611,7613,7615],{"class":157,"line":223},[155,7608,898],{"class":165},[155,7610,384],{"class":184},[155,7612,903],{"class":184},[155,7614,906],{"class":441},[155,7616,909],{"class":184},[155,7618,7619],{"class":157,"line":228},[155,7620,220],{"emptyLinePlaceholder":219},[155,7622,7623,7625,7627,7629,7631,7633],{"class":157,"line":235},[155,7624,918],{"class":165},[155,7626,384],{"class":184},[155,7628,923],{"class":302},[155,7630,246],{"class":184},[155,7632,928],{"class":302},[155,7634,390],{"class":184},[155,7636,7637],{"class":157,"line":260},[155,7638,220],{"emptyLinePlaceholder":219},[155,7640,7641,7643,7645,7647],{"class":157,"line":266},[155,7642,939],{"class":238},[155,7644,942],{"class":238},[155,7646,945],{"class":302},[155,7648,948],{"class":184},[155,7650,7651,7653,7655,7657],{"class":157,"line":271},[155,7652,953],{"class":161},[155,7654,956],{"class":161},[155,7656,959],{"class":165},[155,7658,341],{"class":184},[155,7660,7661,7663,7665,7667,7669,7671,7673],{"class":157,"line":276},[155,7662,966],{"class":165},[155,7664,384],{"class":184},[155,7666,971],{"class":161},[155,7668,959],{"class":165},[155,7670,111],{"class":184},[155,7672,978],{"class":302},[155,7674,500],{"class":184},[155,7676,7677,7679,7681,7683],{"class":157,"line":291},[155,7678,985],{"class":302},[155,7680,246],{"class":184},[155,7682,990],{"class":302},[155,7684,390],{"class":184},[155,7686,7687],{"class":157,"line":296},[155,7688,220],{"emptyLinePlaceholder":219},[155,7690,7691,7693,7695,7697],{"class":157,"line":344},[155,7692,953],{"class":161},[155,7694,956],{"class":161},[155,7696,959],{"class":165},[155,7698,341],{"class":184},[155,7700,7701,7703,7705,7707,7709,7711,7713,7715,7717,7719,7721,7723,7725,7727,7729],{"class":157,"line":350},[155,7702,1011],{"class":165},[155,7704,384],{"class":184},[155,7706,971],{"class":161},[155,7708,959],{"class":165},[155,7710,111],{"class":184},[155,7712,1022],{"class":302},[155,7714,246],{"class":184},[155,7716,815],{"class":314},[155,7718,384],{"class":184},[155,7720,444],{"class":184},[155,7722,139],{"class":441},[155,7724,444],{"class":184},[155,7726,205],{"class":184},[155,7728,1039],{"class":314},[155,7730,1042],{"class":184},[155,7732,7733,7735,7737,7739],{"class":157,"line":356},[155,7734,985],{"class":302},[155,7736,246],{"class":184},[155,7738,381],{"class":302},[155,7740,390],{"class":184},[155,7742,7743],{"class":157,"line":361},[155,7744,220],{"emptyLinePlaceholder":219},[155,7746,7747,7749,7751,7753,7755,7757],{"class":157,"line":366},[155,7748,1061],{"class":165},[155,7750,111],{"class":184},[155,7752,617],{"class":302},[155,7754,246],{"class":184},[155,7756,1070],{"class":302},[155,7758,1073],{"class":184},[20,7760,1076,7761,1079,7763,1082,7765,1085,7767,1089,7769,1092,7771,1095],{},[95,7762,978],{},[95,7764,1022],{},[95,7766,815],{},[95,7768,1088],{},[95,7770,1088],{},[95,7772,139],{},[71,7774,1099],{"id":1098},[20,7776,1102],{},[20,7778,1105,7779,1085,7781,1112],{},[95,7780,1108],{},[95,7782,1111],{},[146,7784,7785],{"className":148,"code":1115,"language":150,"meta":151,"style":151},[95,7786,7787,7803,7811],{"__ignoreMap":151},[155,7788,7789,7791,7793,7795,7797,7799,7801],{"class":157,"line":158},[155,7790,239],{"class":238},[155,7792,1124],{"class":242},[155,7794,246],{"class":184},[155,7796,249],{"class":242},[155,7798,111],{"class":184},[155,7800,254],{"class":242},[155,7802,257],{"class":184},[155,7804,7805,7807,7809],{"class":157,"line":175},[155,7806,1139],{"class":165},[155,7808,144],{"class":184},[155,7810,1144],{"class":242},[155,7812,7813,7815,7817],{"class":157,"line":216},[155,7814,1149],{"class":165},[155,7816,144],{"class":184},[155,7818,1144],{"class":242},[20,7820,1156],{},[146,7822,7823],{"className":148,"code":1159,"language":150,"meta":151,"style":151},[95,7824,7825,7837,7871,7875,7879,7883,7887,7929,7935,7939,7959,7969,7979,7993,8003,8007,8011],{"__ignoreMap":151},[155,7826,7827,7829,7831,7833,7835],{"class":157,"line":158},[155,7828,239],{"class":238},[155,7830,1168],{"class":242},[155,7832,246],{"class":184},[155,7834,286],{"class":242},[155,7836,257],{"class":184},[155,7838,7839,7841,7843,7845,7847,7849,7851,7853,7855,7857,7859,7861,7863,7865,7867,7869],{"class":157,"line":175},[155,7840,299],{"class":238},[155,7842,1181],{"class":302},[155,7844,246],{"class":184},[155,7846,309],{"class":308},[155,7848,205],{"class":184},[155,7850,1190],{"class":314},[155,7852,144],{"class":184},[155,7854,320],{"class":165},[155,7856,111],{"class":184},[155,7858,326],{"class":325},[155,7860,329],{"class":184},[155,7862,332],{"class":184},[155,7864,320],{"class":165},[155,7866,111],{"class":184},[155,7868,326],{"class":325},[155,7870,341],{"class":184},[155,7872,7873],{"class":157,"line":216},[155,7874,347],{"class":161},[155,7876,7877],{"class":157,"line":223},[155,7878,1219],{"class":231},[155,7880,7881],{"class":157,"line":228},[155,7882,347],{"class":161},[155,7884,7885],{"class":157,"line":235},[155,7886,220],{"emptyLinePlaceholder":219},[155,7888,7889,7891,7893,7895,7897,7899,7901,7903,7905,7907,7909,7911,7913,7915,7917,7919,7921,7923,7925,7927],{"class":157,"line":260},[155,7890,1232],{"class":165},[155,7892,384],{"class":184},[155,7894,1190],{"class":165},[155,7896,111],{"class":184},[155,7898,376],{"class":302},[155,7900,246],{"class":184},[155,7902,381],{"class":314},[155,7904,384],{"class":184},[155,7906,249],{"class":302},[155,7908,111],{"class":184},[155,7910,1253],{"class":325},[155,7912,111],{"class":184},[155,7914,1108],{"class":325},[155,7916,1260],{"class":184},[155,7918,320],{"class":302},[155,7920,111],{"class":184},[155,7922,1253],{"class":325},[155,7924,111],{"class":184},[155,7926,1111],{"class":325},[155,7928,390],{"class":184},[155,7930,7931,7933],{"class":157,"line":266},[155,7932,369],{"class":161},[155,7934,1279],{"class":165},[155,7936,7937],{"class":157,"line":271},[155,7938,220],{"emptyLinePlaceholder":219},[155,7940,7941,7943,7945,7947,7949,7951,7953,7955,7957],{"class":157,"line":276},[155,7942,299],{"class":238},[155,7944,403],{"class":302},[155,7946,246],{"class":184},[155,7948,309],{"class":308},[155,7950,205],{"class":184},[155,7952,412],{"class":314},[155,7954,144],{"class":184},[155,7956,208],{"class":165},[155,7958,257],{"class":184},[155,7960,7961,7963,7965,7967],{"class":157,"line":291},[155,7962,424],{"class":165},[155,7964,111],{"class":184},[155,7966,429],{"class":302},[155,7968,432],{"class":184},[155,7970,7971,7973,7975,7977],{"class":157,"line":296},[155,7972,438],{"class":184},[155,7974,1320],{"class":441},[155,7976,444],{"class":184},[155,7978,447],{"class":184},[155,7980,7981,7983,7985,7987,7989,7991],{"class":157,"line":344},[155,7982,453],{"class":314},[155,7984,384],{"class":184},[155,7986,309],{"class":165},[155,7988,111],{"class":184},[155,7990,1320],{"class":325},[155,7992,447],{"class":184},[155,7994,7995,7997,7999,8001],{"class":157,"line":350},[155,7996,469],{"class":314},[155,7998,384],{"class":184},[155,8000,1347],{"class":302},[155,8002,447],{"class":184},[155,8004,8005],{"class":157,"line":356},[155,8006,482],{"class":184},[155,8008,8009],{"class":157,"line":361},[155,8010,220],{"emptyLinePlaceholder":219},[155,8012,8013,8015,8017,8019],{"class":157,"line":366},[155,8014,493],{"class":165},[155,8016,384],{"class":184},[155,8018,1168],{"class":302},[155,8020,500],{"class":184},[20,8022,1370],{},[20,8024,1373,8025,1085,8027,1378],{},[95,8026,1108],{},[95,8028,1111],{},[146,8030,8031],{"className":148,"code":1381,"language":150,"meta":151,"style":151},[95,8032,8033,8043,8099],{"__ignoreMap":151},[155,8034,8035,8037,8039,8041],{"class":157,"line":158},[155,8036,953],{"class":161},[155,8038,956],{"class":161},[155,8040,959],{"class":165},[155,8042,341],{"class":184},[155,8044,8045,8047,8049,8051,8053,8055,8057,8059,8061,8063,8065,8067,8069,8071,8073,8075,8077,8079,8081,8083,8085,8087,8089,8091,8093,8095,8097],{"class":157,"line":175},[155,8046,1011],{"class":165},[155,8048,384],{"class":184},[155,8050,971],{"class":161},[155,8052,959],{"class":165},[155,8054,111],{"class":184},[155,8056,1022],{"class":302},[155,8058,246],{"class":184},[155,8060,815],{"class":314},[155,8062,384],{"class":184},[155,8064,444],{"class":184},[155,8066,1320],{"class":441},[155,8068,444],{"class":184},[155,8070,205],{"class":184},[155,8072,1039],{"class":314},[155,8074,1426],{"class":184},[155,8076,444],{"class":184},[155,8078,1108],{"class":441},[155,8080,444],{"class":184},[155,8082,144],{"class":184},[155,8084,1437],{"class":387},[155,8086,205],{"class":184},[155,8088,903],{"class":184},[155,8090,1111],{"class":441},[155,8092,444],{"class":184},[155,8094,144],{"class":184},[155,8096,1450],{"class":387},[155,8098,1453],{"class":184},[155,8100,8101,8103,8105,8107],{"class":157,"line":216},[155,8102,985],{"class":302},[155,8104,246],{"class":184},[155,8106,381],{"class":302},[155,8108,390],{"class":184},[71,8110,1467],{"id":1466},[20,8112,1470],{},[146,8114,8115],{"className":148,"code":1473,"language":150,"meta":151,"style":151},[95,8116,8117,8127,8157,8161,8165,8169,8185,8189,8193,8209,8217,8225,8229,8233,8245,8249,8283,8287,8291,8295,8299,8319,8323,8343,8353,8363,8377,8387,8391,8395,8399,8411,8445,8449,8453,8457,8461,8503,8509,8513,8533,8543,8553,8567,8577,8581,8585,8589,8599,8609,8613,8623,8637,8651,8665,8675,8689,8693,8697],{"__ignoreMap":151},[155,8118,8119,8121,8123,8125],{"class":157,"line":158},[155,8120,162],{"class":161},[155,8122,166],{"class":165},[155,8124,169],{"class":161},[155,8126,172],{"class":165},[155,8128,8129,8131,8133,8135,8137,8139,8141,8143,8145,8147,8149,8151,8153,8155],{"class":157,"line":175},[155,8130,178],{"class":161},[155,8132,181],{"class":165},[155,8134,111],{"class":184},[155,8136,187],{"class":165},[155,8138,111],{"class":184},[155,8140,192],{"class":165},[155,8142,111],{"class":184},[155,8144,197],{"class":165},[155,8146,162],{"class":161},[155,8148,202],{"class":165},[155,8150,205],{"class":184},[155,8152,208],{"class":165},[155,8154,205],{"class":184},[155,8156,213],{"class":165},[155,8158,8159],{"class":157,"line":216},[155,8160,220],{"emptyLinePlaceholder":219},[155,8162,8163],{"class":157,"line":223},[155,8164,220],{"emptyLinePlaceholder":219},[155,8166,8167],{"class":157,"line":228},[155,8168,232],{"class":231},[155,8170,8171,8173,8175,8177,8179,8181,8183],{"class":157,"line":235},[155,8172,239],{"class":238},[155,8174,243],{"class":242},[155,8176,246],{"class":184},[155,8178,249],{"class":242},[155,8180,111],{"class":184},[155,8182,254],{"class":242},[155,8184,257],{"class":184},[155,8186,8187],{"class":157,"line":260},[155,8188,263],{"class":161},[155,8190,8191],{"class":157,"line":266},[155,8192,220],{"emptyLinePlaceholder":219},[155,8194,8195,8197,8199,8201,8203,8205,8207],{"class":157,"line":271},[155,8196,239],{"class":238},[155,8198,1124],{"class":242},[155,8200,246],{"class":184},[155,8202,249],{"class":242},[155,8204,111],{"class":184},[155,8206,254],{"class":242},[155,8208,257],{"class":184},[155,8210,8211,8213,8215],{"class":157,"line":276},[155,8212,1139],{"class":165},[155,8214,144],{"class":184},[155,8216,1144],{"class":242},[155,8218,8219,8221,8223],{"class":157,"line":291},[155,8220,1149],{"class":165},[155,8222,144],{"class":184},[155,8224,1144],{"class":242},[155,8226,8227],{"class":157,"line":296},[155,8228,220],{"emptyLinePlaceholder":219},[155,8230,8231],{"class":157,"line":344},[155,8232,220],{"emptyLinePlaceholder":219},[155,8234,8235,8237,8239,8241,8243],{"class":157,"line":350},[155,8236,239],{"class":238},[155,8238,281],{"class":242},[155,8240,246],{"class":184},[155,8242,286],{"class":242},[155,8244,257],{"class":184},[155,8246,8247],{"class":157,"line":356},[155,8248,220],{"emptyLinePlaceholder":219},[155,8250,8251,8253,8255,8257,8259,8261,8263,8265,8267,8269,8271,8273,8275,8277,8279,8281],{"class":157,"line":361},[155,8252,299],{"class":238},[155,8254,303],{"class":302},[155,8256,246],{"class":184},[155,8258,309],{"class":308},[155,8260,205],{"class":184},[155,8262,315],{"class":314},[155,8264,144],{"class":184},[155,8266,320],{"class":165},[155,8268,111],{"class":184},[155,8270,326],{"class":325},[155,8272,329],{"class":184},[155,8274,332],{"class":184},[155,8276,320],{"class":165},[155,8278,111],{"class":184},[155,8280,326],{"class":325},[155,8282,341],{"class":184},[155,8284,8285],{"class":157,"line":366},[155,8286,347],{"class":161},[155,8288,8289],{"class":157,"line":393},[155,8290,353],{"class":231},[155,8292,8293],{"class":157,"line":398},[155,8294,347],{"class":161},[155,8296,8297],{"class":157,"line":421},[155,8298,220],{"emptyLinePlaceholder":219},[155,8300,8301,8303,8305,8307,8309,8311,8313,8315,8317],{"class":157,"line":435},[155,8302,369],{"class":161},[155,8304,315],{"class":165},[155,8306,111],{"class":184},[155,8308,376],{"class":302},[155,8310,246],{"class":184},[155,8312,381],{"class":314},[155,8314,384],{"class":184},[155,8316,143],{"class":387},[155,8318,390],{"class":184},[155,8320,8321],{"class":157,"line":450},[155,8322,220],{"emptyLinePlaceholder":219},[155,8324,8325,8327,8329,8331,8333,8335,8337,8339,8341],{"class":157,"line":466},[155,8326,299],{"class":238},[155,8328,403],{"class":302},[155,8330,246],{"class":184},[155,8332,309],{"class":308},[155,8334,205],{"class":184},[155,8336,412],{"class":314},[155,8338,144],{"class":184},[155,8340,208],{"class":165},[155,8342,257],{"class":184},[155,8344,8345,8347,8349,8351],{"class":157,"line":479},[155,8346,424],{"class":165},[155,8348,111],{"class":184},[155,8350,429],{"class":302},[155,8352,432],{"class":184},[155,8354,8355,8357,8359,8361],{"class":157,"line":485},[155,8356,438],{"class":184},[155,8358,139],{"class":441},[155,8360,444],{"class":184},[155,8362,447],{"class":184},[155,8364,8365,8367,8369,8371,8373,8375],{"class":157,"line":490},[155,8366,453],{"class":314},[155,8368,384],{"class":184},[155,8370,309],{"class":165},[155,8372,111],{"class":184},[155,8374,139],{"class":325},[155,8376,447],{"class":184},[155,8378,8379,8381,8383,8385],{"class":157,"line":503},[155,8380,469],{"class":314},[155,8382,384],{"class":184},[155,8384,474],{"class":302},[155,8386,447],{"class":184},[155,8388,8389],{"class":157,"line":508},[155,8390,482],{"class":184},[155,8392,8393],{"class":157,"line":521},[155,8394,220],{"emptyLinePlaceholder":219},[155,8396,8397],{"class":157,"line":538},[155,8398,220],{"emptyLinePlaceholder":219},[155,8400,8401,8403,8405,8407,8409],{"class":157,"line":555},[155,8402,239],{"class":238},[155,8404,1168],{"class":242},[155,8406,246],{"class":184},[155,8408,286],{"class":242},[155,8410,257],{"class":184},[155,8412,8413,8415,8417,8419,8421,8423,8425,8427,8429,8431,8433,8435,8437,8439,8441,8443],{"class":157,"line":572},[155,8414,299],{"class":238},[155,8416,1181],{"class":302},[155,8418,246],{"class":184},[155,8420,309],{"class":308},[155,8422,205],{"class":184},[155,8424,1190],{"class":314},[155,8426,144],{"class":184},[155,8428,320],{"class":165},[155,8430,111],{"class":184},[155,8432,326],{"class":325},[155,8434,329],{"class":184},[155,8436,332],{"class":184},[155,8438,320],{"class":165},[155,8440,111],{"class":184},[155,8442,326],{"class":325},[155,8444,341],{"class":184},[155,8446,8447],{"class":157,"line":585},[155,8448,347],{"class":161},[155,8450,8451],{"class":157,"line":600},[155,8452,1219],{"class":231},[155,8454,8455],{"class":157,"line":605},[155,8456,347],{"class":161},[155,8458,8459],{"class":157,"line":610},[155,8460,220],{"emptyLinePlaceholder":219},[155,8462,8463,8465,8467,8469,8471,8473,8475,8477,8479,8481,8483,8485,8487,8489,8491,8493,8495,8497,8499,8501],{"class":157,"line":1822},[155,8464,1232],{"class":165},[155,8466,384],{"class":184},[155,8468,1190],{"class":165},[155,8470,111],{"class":184},[155,8472,376],{"class":302},[155,8474,246],{"class":184},[155,8476,381],{"class":314},[155,8478,384],{"class":184},[155,8480,249],{"class":302},[155,8482,111],{"class":184},[155,8484,1253],{"class":325},[155,8486,111],{"class":184},[155,8488,1108],{"class":325},[155,8490,1260],{"class":184},[155,8492,320],{"class":302},[155,8494,111],{"class":184},[155,8496,1253],{"class":325},[155,8498,111],{"class":184},[155,8500,1111],{"class":325},[155,8502,390],{"class":184},[155,8504,8505,8507],{"class":157,"line":1865},[155,8506,369],{"class":161},[155,8508,1279],{"class":165},[155,8510,8511],{"class":157,"line":1872},[155,8512,220],{"emptyLinePlaceholder":219},[155,8514,8515,8517,8519,8521,8523,8525,8527,8529,8531],{"class":157,"line":1877},[155,8516,299],{"class":238},[155,8518,403],{"class":302},[155,8520,246],{"class":184},[155,8522,309],{"class":308},[155,8524,205],{"class":184},[155,8526,412],{"class":314},[155,8528,144],{"class":184},[155,8530,208],{"class":165},[155,8532,257],{"class":184},[155,8534,8535,8537,8539,8541],{"class":157,"line":1898},[155,8536,424],{"class":165},[155,8538,111],{"class":184},[155,8540,429],{"class":302},[155,8542,432],{"class":184},[155,8544,8545,8547,8549,8551],{"class":157,"line":1909},[155,8546,438],{"class":184},[155,8548,1320],{"class":441},[155,8550,444],{"class":184},[155,8552,447],{"class":184},[155,8554,8555,8557,8559,8561,8563,8565],{"class":157,"line":1920},[155,8556,453],{"class":314},[155,8558,384],{"class":184},[155,8560,309],{"class":165},[155,8562,111],{"class":184},[155,8564,1320],{"class":325},[155,8566,447],{"class":184},[155,8568,8569,8571,8573,8575],{"class":157,"line":1935},[155,8570,469],{"class":314},[155,8572,384],{"class":184},[155,8574,1347],{"class":302},[155,8576,447],{"class":184},[155,8578,8579],{"class":157,"line":1946},[155,8580,482],{"class":184},[155,8582,8583],{"class":157,"line":1951},[155,8584,220],{"emptyLinePlaceholder":219},[155,8586,8587],{"class":157,"line":1956},[155,8588,220],{"emptyLinePlaceholder":219},[155,8590,8591,8593,8595,8597],{"class":157,"line":1961},[155,8592,1964],{"class":165},[155,8594,384],{"class":184},[155,8596,281],{"class":302},[155,8598,500],{"class":184},[155,8600,8601,8603,8605,8607],{"class":157,"line":1973},[155,8602,1976],{"class":165},[155,8604,384],{"class":184},[155,8606,1168],{"class":302},[155,8608,500],{"class":184},[155,8610,8611],{"class":157,"line":1985},[155,8612,220],{"emptyLinePlaceholder":219},[155,8614,8615,8617,8619,8621],{"class":157,"line":1990},[155,8616,511],{"class":165},[155,8618,384],{"class":184},[155,8620,516],{"class":302},[155,8622,432],{"class":184},[155,8624,8625,8627,8629,8631,8633,8635],{"class":157,"line":2001},[155,8626,524],{"class":314},[155,8628,384],{"class":184},[155,8630,444],{"class":184},[155,8632,531],{"class":441},[155,8634,444],{"class":184},[155,8636,447],{"class":184},[155,8638,8639,8641,8643,8645,8647,8649],{"class":157,"line":2016},[155,8640,541],{"class":314},[155,8642,384],{"class":184},[155,8644,444],{"class":184},[155,8646,548],{"class":441},[155,8648,444],{"class":184},[155,8650,447],{"class":184},[155,8652,8653,8655,8657,8659,8661,8663],{"class":157,"line":2031},[155,8654,558],{"class":314},[155,8656,384],{"class":184},[155,8658,444],{"class":184},[155,8660,565],{"class":441},[155,8662,444],{"class":184},[155,8664,447],{"class":184},[155,8666,8667,8669,8671,8673],{"class":157,"line":2046},[155,8668,575],{"class":314},[155,8670,384],{"class":184},[155,8672,580],{"class":387},[155,8674,447],{"class":184},[155,8676,8677,8679,8681,8683,8685,8687],{"class":157,"line":2057},[155,8678,588],{"class":314},[155,8680,591],{"class":184},[155,8682,2064],{"class":302},[155,8684,205],{"class":184},[155,8686,2069],{"class":302},[155,8688,597],{"class":184},[155,8690,8691],{"class":157,"line":2074},[155,8692,390],{"class":184},[155,8694,8695],{"class":157,"line":2079},[155,8696,220],{"emptyLinePlaceholder":219},[155,8698,8699,8701,8703,8705],{"class":157,"line":2084},[155,8700,249],{"class":165},[155,8702,111],{"class":184},[155,8704,617],{"class":302},[155,8706,500],{"class":184},[20,8708,2095,8709,2098,8711,2101],{},[95,8710,139],{},[95,8712,1320],{},[20,8714,2104,8715,144],{},[95,8716,649],{},[146,8718,8719],{"className":148,"code":2109,"language":150,"meta":151,"style":151},[95,8720,8721,8731,8761,8765,8769,8785,8789,8793,8809,8817,8825,8829,8833,8845,8849,8883,8887,8891,8895,8899,8919,8923,8957,8961,8965,8969,8973,9015,9021,9025,9045,9055,9065,9079,9089,9093,9103,9113,9127,9137,9141,9145,9149,9159,9163,9173,9187,9201,9215,9225,9235,9239,9243],{"__ignoreMap":151},[155,8722,8723,8725,8727,8729],{"class":157,"line":158},[155,8724,162],{"class":161},[155,8726,166],{"class":165},[155,8728,169],{"class":161},[155,8730,172],{"class":165},[155,8732,8733,8735,8737,8739,8741,8743,8745,8747,8749,8751,8753,8755,8757,8759],{"class":157,"line":175},[155,8734,178],{"class":161},[155,8736,181],{"class":165},[155,8738,111],{"class":184},[155,8740,187],{"class":165},[155,8742,111],{"class":184},[155,8744,192],{"class":165},[155,8746,111],{"class":184},[155,8748,197],{"class":165},[155,8750,162],{"class":161},[155,8752,202],{"class":165},[155,8754,205],{"class":184},[155,8756,208],{"class":165},[155,8758,205],{"class":184},[155,8760,213],{"class":165},[155,8762,8763],{"class":157,"line":216},[155,8764,220],{"emptyLinePlaceholder":219},[155,8766,8767],{"class":157,"line":223},[155,8768,220],{"emptyLinePlaceholder":219},[155,8770,8771,8773,8775,8777,8779,8781,8783],{"class":157,"line":228},[155,8772,239],{"class":238},[155,8774,243],{"class":242},[155,8776,246],{"class":184},[155,8778,249],{"class":242},[155,8780,111],{"class":184},[155,8782,254],{"class":242},[155,8784,257],{"class":184},[155,8786,8787],{"class":157,"line":235},[155,8788,263],{"class":161},[155,8790,8791],{"class":157,"line":260},[155,8792,220],{"emptyLinePlaceholder":219},[155,8794,8795,8797,8799,8801,8803,8805,8807],{"class":157,"line":266},[155,8796,239],{"class":238},[155,8798,1124],{"class":242},[155,8800,246],{"class":184},[155,8802,249],{"class":242},[155,8804,111],{"class":184},[155,8806,254],{"class":242},[155,8808,257],{"class":184},[155,8810,8811,8813,8815],{"class":157,"line":271},[155,8812,1139],{"class":165},[155,8814,144],{"class":184},[155,8816,1144],{"class":242},[155,8818,8819,8821,8823],{"class":157,"line":276},[155,8820,1149],{"class":165},[155,8822,144],{"class":184},[155,8824,1144],{"class":242},[155,8826,8827],{"class":157,"line":291},[155,8828,220],{"emptyLinePlaceholder":219},[155,8830,8831],{"class":157,"line":296},[155,8832,220],{"emptyLinePlaceholder":219},[155,8834,8835,8837,8839,8841,8843],{"class":157,"line":344},[155,8836,239],{"class":238},[155,8838,2230],{"class":242},[155,8840,246],{"class":184},[155,8842,286],{"class":242},[155,8844,257],{"class":184},[155,8846,8847],{"class":157,"line":350},[155,8848,220],{"emptyLinePlaceholder":219},[155,8850,8851,8853,8855,8857,8859,8861,8863,8865,8867,8869,8871,8873,8875,8877,8879,8881],{"class":157,"line":356},[155,8852,299],{"class":238},[155,8854,303],{"class":302},[155,8856,246],{"class":184},[155,8858,309],{"class":308},[155,8860,205],{"class":184},[155,8862,315],{"class":314},[155,8864,144],{"class":184},[155,8866,320],{"class":165},[155,8868,111],{"class":184},[155,8870,326],{"class":325},[155,8872,329],{"class":184},[155,8874,332],{"class":184},[155,8876,320],{"class":165},[155,8878,111],{"class":184},[155,8880,326],{"class":325},[155,8882,341],{"class":184},[155,8884,8885],{"class":157,"line":361},[155,8886,347],{"class":161},[155,8888,8889],{"class":157,"line":366},[155,8890,353],{"class":231},[155,8892,8893],{"class":157,"line":393},[155,8894,347],{"class":161},[155,8896,8897],{"class":157,"line":398},[155,8898,220],{"emptyLinePlaceholder":219},[155,8900,8901,8903,8905,8907,8909,8911,8913,8915,8917],{"class":157,"line":421},[155,8902,369],{"class":161},[155,8904,315],{"class":165},[155,8906,111],{"class":184},[155,8908,376],{"class":302},[155,8910,246],{"class":184},[155,8912,381],{"class":314},[155,8914,384],{"class":184},[155,8916,143],{"class":387},[155,8918,390],{"class":184},[155,8920,8921],{"class":157,"line":435},[155,8922,220],{"emptyLinePlaceholder":219},[155,8924,8925,8927,8929,8931,8933,8935,8937,8939,8941,8943,8945,8947,8949,8951,8953,8955],{"class":157,"line":450},[155,8926,299],{"class":238},[155,8928,1181],{"class":302},[155,8930,246],{"class":184},[155,8932,309],{"class":308},[155,8934,205],{"class":184},[155,8936,1190],{"class":314},[155,8938,144],{"class":184},[155,8940,320],{"class":165},[155,8942,111],{"class":184},[155,8944,326],{"class":325},[155,8946,329],{"class":184},[155,8948,332],{"class":184},[155,8950,320],{"class":165},[155,8952,111],{"class":184},[155,8954,326],{"class":325},[155,8956,341],{"class":184},[155,8958,8959],{"class":157,"line":466},[155,8960,347],{"class":161},[155,8962,8963],{"class":157,"line":479},[155,8964,1219],{"class":231},[155,8966,8967],{"class":157,"line":485},[155,8968,347],{"class":161},[155,8970,8971],{"class":157,"line":490},[155,8972,220],{"emptyLinePlaceholder":219},[155,8974,8975,8977,8979,8981,8983,8985,8987,8989,8991,8993,8995,8997,8999,9001,9003,9005,9007,9009,9011,9013],{"class":157,"line":503},[155,8976,1232],{"class":165},[155,8978,384],{"class":184},[155,8980,1190],{"class":165},[155,8982,111],{"class":184},[155,8984,376],{"class":302},[155,8986,246],{"class":184},[155,8988,381],{"class":314},[155,8990,384],{"class":184},[155,8992,249],{"class":302},[155,8994,111],{"class":184},[155,8996,1253],{"class":325},[155,8998,111],{"class":184},[155,9000,1108],{"class":325},[155,9002,1260],{"class":184},[155,9004,320],{"class":302},[155,9006,111],{"class":184},[155,9008,1253],{"class":325},[155,9010,111],{"class":184},[155,9012,1111],{"class":325},[155,9014,390],{"class":184},[155,9016,9017,9019],{"class":157,"line":508},[155,9018,369],{"class":161},[155,9020,1279],{"class":165},[155,9022,9023],{"class":157,"line":521},[155,9024,220],{"emptyLinePlaceholder":219},[155,9026,9027,9029,9031,9033,9035,9037,9039,9041,9043],{"class":157,"line":538},[155,9028,299],{"class":238},[155,9030,403],{"class":302},[155,9032,246],{"class":184},[155,9034,309],{"class":308},[155,9036,205],{"class":184},[155,9038,412],{"class":314},[155,9040,144],{"class":184},[155,9042,208],{"class":165},[155,9044,257],{"class":184},[155,9046,9047,9049,9051,9053],{"class":157,"line":555},[155,9048,424],{"class":165},[155,9050,111],{"class":184},[155,9052,429],{"class":302},[155,9054,432],{"class":184},[155,9056,9057,9059,9061,9063],{"class":157,"line":572},[155,9058,438],{"class":184},[155,9060,139],{"class":441},[155,9062,444],{"class":184},[155,9064,447],{"class":184},[155,9066,9067,9069,9071,9073,9075,9077],{"class":157,"line":585},[155,9068,453],{"class":314},[155,9070,384],{"class":184},[155,9072,309],{"class":165},[155,9074,111],{"class":184},[155,9076,139],{"class":325},[155,9078,447],{"class":184},[155,9080,9081,9083,9085,9087],{"class":157,"line":600},[155,9082,469],{"class":314},[155,9084,384],{"class":184},[155,9086,474],{"class":302},[155,9088,447],{"class":184},[155,9090,9091],{"class":157,"line":605},[155,9092,482],{"class":184},[155,9094,9095,9097,9099,9101],{"class":157,"line":610},[155,9096,424],{"class":165},[155,9098,111],{"class":184},[155,9100,429],{"class":302},[155,9102,432],{"class":184},[155,9104,9105,9107,9109,9111],{"class":157,"line":1822},[155,9106,438],{"class":184},[155,9108,1320],{"class":441},[155,9110,444],{"class":184},[155,9112,447],{"class":184},[155,9114,9115,9117,9119,9121,9123,9125],{"class":157,"line":1865},[155,9116,453],{"class":314},[155,9118,384],{"class":184},[155,9120,309],{"class":165},[155,9122,111],{"class":184},[155,9124,1320],{"class":325},[155,9126,447],{"class":184},[155,9128,9129,9131,9133,9135],{"class":157,"line":1872},[155,9130,469],{"class":314},[155,9132,384],{"class":184},[155,9134,1347],{"class":302},[155,9136,447],{"class":184},[155,9138,9139],{"class":157,"line":1877},[155,9140,482],{"class":184},[155,9142,9143],{"class":157,"line":1898},[155,9144,220],{"emptyLinePlaceholder":219},[155,9146,9147],{"class":157,"line":1909},[155,9148,220],{"emptyLinePlaceholder":219},[155,9150,9151,9153,9155,9157],{"class":157,"line":1920},[155,9152,2545],{"class":165},[155,9154,384],{"class":184},[155,9156,2230],{"class":302},[155,9158,500],{"class":184},[155,9160,9161],{"class":157,"line":1935},[155,9162,220],{"emptyLinePlaceholder":219},[155,9164,9165,9167,9169,9171],{"class":157,"line":1946},[155,9166,511],{"class":165},[155,9168,384],{"class":184},[155,9170,516],{"class":302},[155,9172,432],{"class":184},[155,9174,9175,9177,9179,9181,9183,9185],{"class":157,"line":1951},[155,9176,524],{"class":314},[155,9178,384],{"class":184},[155,9180,444],{"class":184},[155,9182,531],{"class":441},[155,9184,444],{"class":184},[155,9186,447],{"class":184},[155,9188,9189,9191,9193,9195,9197,9199],{"class":157,"line":1956},[155,9190,541],{"class":314},[155,9192,384],{"class":184},[155,9194,444],{"class":184},[155,9196,548],{"class":441},[155,9198,444],{"class":184},[155,9200,447],{"class":184},[155,9202,9203,9205,9207,9209,9211,9213],{"class":157,"line":1961},[155,9204,558],{"class":314},[155,9206,384],{"class":184},[155,9208,444],{"class":184},[155,9210,565],{"class":441},[155,9212,444],{"class":184},[155,9214,447],{"class":184},[155,9216,9217,9219,9221,9223],{"class":157,"line":1973},[155,9218,575],{"class":314},[155,9220,384],{"class":184},[155,9222,580],{"class":387},[155,9224,447],{"class":184},[155,9226,9227,9229,9231,9233],{"class":157,"line":1985},[155,9228,588],{"class":314},[155,9230,591],{"class":184},[155,9232,2626],{"class":302},[155,9234,597],{"class":184},[155,9236,9237],{"class":157,"line":1990},[155,9238,390],{"class":184},[155,9240,9241],{"class":157,"line":2001},[155,9242,220],{"emptyLinePlaceholder":219},[155,9244,9245,9247,9249,9251],{"class":157,"line":2016},[155,9246,249],{"class":165},[155,9248,111],{"class":184},[155,9250,617],{"class":302},[155,9252,500],{"class":184},[20,9254,2649,9255,1085,9257,2655,9259,2659],{},[95,9256,2652],{},[95,9258,1320],{},[95,9260,2658],{},[146,9262,9263],{"className":148,"code":2662,"language":150,"meta":151,"style":151},[95,9264,9265,9275,9291],{"__ignoreMap":151},[155,9266,9267,9269,9271,9273],{"class":157,"line":158},[155,9268,953],{"class":161},[155,9270,956],{"class":161},[155,9272,959],{"class":165},[155,9274,341],{"class":184},[155,9276,9277,9279,9281,9283,9285,9287,9289],{"class":157,"line":175},[155,9278,966],{"class":165},[155,9280,384],{"class":184},[155,9282,971],{"class":161},[155,9284,959],{"class":165},[155,9286,111],{"class":184},[155,9288,978],{"class":302},[155,9290,500],{"class":184},[155,9292,9293,9295,9297,9299],{"class":157,"line":216},[155,9294,985],{"class":302},[155,9296,246],{"class":184},[155,9298,990],{"class":302},[155,9300,390],{"class":184},[20,9302,2703],{},[146,9304,9305],{"className":148,"code":2706,"language":150,"meta":151,"style":151},[95,9306,9307,9317,9349,9359,9415],{"__ignoreMap":151},[155,9308,9309,9311,9313,9315],{"class":157,"line":158},[155,9310,953],{"class":161},[155,9312,956],{"class":161},[155,9314,959],{"class":165},[155,9316,341],{"class":184},[155,9318,9319,9321,9323,9325,9327,9329,9331,9333,9335,9337,9339,9341,9343,9345,9347],{"class":157,"line":175},[155,9320,1011],{"class":165},[155,9322,384],{"class":184},[155,9324,971],{"class":161},[155,9326,959],{"class":165},[155,9328,111],{"class":184},[155,9330,1022],{"class":302},[155,9332,246],{"class":184},[155,9334,815],{"class":314},[155,9336,384],{"class":184},[155,9338,444],{"class":184},[155,9340,139],{"class":441},[155,9342,444],{"class":184},[155,9344,205],{"class":184},[155,9346,1039],{"class":314},[155,9348,1042],{"class":184},[155,9350,9351,9353,9355,9357],{"class":157,"line":216},[155,9352,985],{"class":302},[155,9354,246],{"class":184},[155,9356,381],{"class":302},[155,9358,390],{"class":184},[155,9360,9361,9363,9365,9367,9369,9371,9373,9375,9377,9379,9381,9383,9385,9387,9389,9391,9393,9395,9397,9399,9401,9403,9405,9407,9409,9411,9413],{"class":157,"line":223},[155,9362,1011],{"class":165},[155,9364,384],{"class":184},[155,9366,971],{"class":161},[155,9368,959],{"class":165},[155,9370,111],{"class":184},[155,9372,1022],{"class":302},[155,9374,246],{"class":184},[155,9376,815],{"class":314},[155,9378,384],{"class":184},[155,9380,444],{"class":184},[155,9382,1320],{"class":441},[155,9384,444],{"class":184},[155,9386,205],{"class":184},[155,9388,1039],{"class":314},[155,9390,1426],{"class":184},[155,9392,444],{"class":184},[155,9394,1108],{"class":441},[155,9396,444],{"class":184},[155,9398,144],{"class":184},[155,9400,1437],{"class":387},[155,9402,205],{"class":184},[155,9404,903],{"class":184},[155,9406,1111],{"class":441},[155,9408,444],{"class":184},[155,9410,144],{"class":184},[155,9412,1450],{"class":387},[155,9414,1453],{"class":184},[155,9416,9417,9419,9421,9423],{"class":157,"line":228},[155,9418,985],{"class":302},[155,9420,246],{"class":184},[155,9422,381],{"class":302},[155,9424,390],{"class":184},[71,9426,2830],{"id":2829},[20,9428,2833],{},[20,9430,2836],{},[20,9432,2839,9433,144],{},[24,9434,9435,2846],{"href":2842},[95,9436,2845],{},[146,9438,9439],{"className":148,"code":2849,"language":150,"meta":151,"style":151},[95,9440,9441],{"__ignoreMap":151},[155,9442,9443,9445,9447,9449,9451,9453,9455,9457,9459,9461,9463,9465],{"class":157,"line":158},[155,9444,2856],{"class":165},[155,9446,384],{"class":184},[155,9448,320],{"class":165},[155,9450,111],{"class":184},[155,9452,2845],{"class":325},[155,9454,111],{"class":184},[155,9456,2869],{"class":302},[155,9458,246],{"class":184},[155,9460,2874],{"class":314},[155,9462,384],{"class":184},[155,9464,2879],{"class":387},[155,9466,390],{"class":184},[20,9468,2884,9469,2888],{},[95,9470,2887],{},[20,9472,2891],{},[146,9474,9475],{"className":148,"code":2894,"language":150,"meta":151,"style":151},[95,9476,9477,9489,9493,9527,9531,9535,9539,9543,9573,9607,9623,9627,9641,9687,9691,9697,9701,9721,9731,9741,9755,9765,9769,9773],{"__ignoreMap":151},[155,9478,9479,9481,9483,9485,9487],{"class":157,"line":158},[155,9480,239],{"class":238},[155,9482,2903],{"class":242},[155,9484,246],{"class":184},[155,9486,286],{"class":242},[155,9488,257],{"class":184},[155,9490,9491],{"class":157,"line":175},[155,9492,220],{"emptyLinePlaceholder":219},[155,9494,9495,9497,9499,9501,9503,9505,9507,9509,9511,9513,9515,9517,9519,9521,9523,9525],{"class":157,"line":216},[155,9496,299],{"class":238},[155,9498,2920],{"class":302},[155,9500,246],{"class":184},[155,9502,309],{"class":308},[155,9504,205],{"class":184},[155,9506,2929],{"class":314},[155,9508,144],{"class":184},[155,9510,320],{"class":165},[155,9512,111],{"class":184},[155,9514,326],{"class":325},[155,9516,329],{"class":184},[155,9518,332],{"class":184},[155,9520,320],{"class":165},[155,9522,111],{"class":184},[155,9524,326],{"class":325},[155,9526,341],{"class":184},[155,9528,9529],{"class":157,"line":223},[155,9530,347],{"class":161},[155,9532,9533],{"class":157,"line":228},[155,9534,2958],{"class":231},[155,9536,9537],{"class":157,"line":235},[155,9538,347],{"class":161},[155,9540,9541],{"class":157,"line":260},[155,9542,220],{"emptyLinePlaceholder":219},[155,9544,9545,9547,9549,9551,9553,9555,9557,9559,9561,9563,9565,9567,9569,9571],{"class":157,"line":266},[155,9546,2971],{"class":165},[155,9548,384],{"class":184},[155,9550,2976],{"class":165},[155,9552,111],{"class":184},[155,9554,2981],{"class":302},[155,9556,246],{"class":184},[155,9558,2829],{"class":314},[155,9560,384],{"class":184},[155,9562,249],{"class":302},[155,9564,111],{"class":184},[155,9566,2994],{"class":325},[155,9568,111],{"class":184},[155,9570,2829],{"class":302},[155,9572,1073],{"class":184},[155,9574,9575,9577,9579,9581,9583,9585,9587,9589,9591,9593,9595,9597,9599,9601,9603,9605],{"class":157,"line":271},[155,9576,1232],{"class":165},[155,9578,384],{"class":184},[155,9580,2929],{"class":165},[155,9582,111],{"class":184},[155,9584,3013],{"class":302},[155,9586,246],{"class":184},[155,9588,3018],{"class":302},[155,9590,205],{"class":184},[155,9592,3023],{"class":314},[155,9594,384],{"class":184},[155,9596,3028],{"class":302},[155,9598,111],{"class":184},[155,9600,3033],{"class":325},[155,9602,3036],{"class":184},[155,9604,376],{"class":302},[155,9606,432],{"class":184},[155,9608,9609,9611,9613,9615,9617,9619,9621],{"class":157,"line":276},[155,9610,3045],{"class":314},[155,9612,384],{"class":184},[155,9614,249],{"class":302},[155,9616,111],{"class":184},[155,9618,3054],{"class":325},[155,9620,111],{"class":184},[155,9622,3059],{"class":325},[155,9624,9625],{"class":157,"line":291},[155,9626,482],{"class":184},[155,9628,9629,9631,9633,9635,9637,9639],{"class":157,"line":296},[155,9630,1232],{"class":165},[155,9632,384],{"class":184},[155,9634,3072],{"class":165},[155,9636,111],{"class":184},[155,9638,376],{"class":302},[155,9640,432],{"class":184},[155,9642,9643,9645,9647,9649,9651,9653,9655,9657,9659,9661,9663,9665,9667,9669,9671,9673,9675,9677,9679,9681,9683,9685],{"class":157,"line":344},[155,9644,3083],{"class":314},[155,9646,384],{"class":184},[155,9648,249],{"class":302},[155,9650,111],{"class":184},[155,9652,3092],{"class":302},[155,9654,246],{"class":184},[155,9656,249],{"class":302},[155,9658,111],{"class":184},[155,9660,1253],{"class":325},[155,9662,111],{"class":184},[155,9664,2829],{"class":325},[155,9666,111],{"class":184},[155,9668,3109],{"class":302},[155,9670,3112],{"class":184},[155,9672,3115],{"class":387},[155,9674,205],{"class":184},[155,9676,320],{"class":302},[155,9678,111],{"class":184},[155,9680,1253],{"class":325},[155,9682,111],{"class":184},[155,9684,2829],{"class":325},[155,9686,390],{"class":184},[155,9688,9689],{"class":157,"line":350},[155,9690,482],{"class":184},[155,9692,9693,9695],{"class":157,"line":356},[155,9694,369],{"class":161},[155,9696,1279],{"class":165},[155,9698,9699],{"class":157,"line":361},[155,9700,220],{"emptyLinePlaceholder":219},[155,9702,9703,9705,9707,9709,9711,9713,9715,9717,9719],{"class":157,"line":366},[155,9704,299],{"class":238},[155,9706,403],{"class":302},[155,9708,246],{"class":184},[155,9710,309],{"class":308},[155,9712,205],{"class":184},[155,9714,412],{"class":314},[155,9716,144],{"class":184},[155,9718,208],{"class":165},[155,9720,257],{"class":184},[155,9722,9723,9725,9727,9729],{"class":157,"line":393},[155,9724,424],{"class":165},[155,9726,111],{"class":184},[155,9728,429],{"class":302},[155,9730,432],{"class":184},[155,9732,9733,9735,9737,9739],{"class":157,"line":398},[155,9734,438],{"class":184},[155,9736,3180],{"class":441},[155,9738,444],{"class":184},[155,9740,447],{"class":184},[155,9742,9743,9745,9747,9749,9751,9753],{"class":157,"line":421},[155,9744,453],{"class":314},[155,9746,384],{"class":184},[155,9748,309],{"class":165},[155,9750,111],{"class":184},[155,9752,3180],{"class":325},[155,9754,447],{"class":184},[155,9756,9757,9759,9761,9763],{"class":157,"line":435},[155,9758,469],{"class":314},[155,9760,384],{"class":184},[155,9762,3207],{"class":302},[155,9764,447],{"class":184},[155,9766,9767],{"class":157,"line":450},[155,9768,482],{"class":184},[155,9770,9771],{"class":157,"line":466},[155,9772,220],{"emptyLinePlaceholder":219},[155,9774,9775,9777,9779,9781],{"class":157,"line":479},[155,9776,493],{"class":165},[155,9778,384],{"class":184},[155,9780,2903],{"class":302},[155,9782,500],{"class":184},[20,9784,3230,9785,3234],{},[95,9786,3233],{},[20,9788,3237,9789,3244,9793,3247,9795,3252,9797,3255,9799,3258,9801,3262,9803,3266],{},[24,9790,9791,3243],{"href":3240},[95,9792,2829],{},[95,9794,3018],{},[24,9796,3251],{"href":3250},[95,9798,3028],{},[95,9800,2829],{},[95,9802,3261],{},[95,9804,3265],{},[20,9806,3269,9807,3272,9809,3276,9811,3279],{},[95,9808,3261],{},[95,9810,3275],{},[95,9812,3275],{},[20,9814,3282],{},[146,9816,9817],{"className":148,"code":3285,"language":150,"meta":151,"style":151},[95,9818,9819,9829,9861],{"__ignoreMap":151},[155,9820,9821,9823,9825,9827],{"class":157,"line":158},[155,9822,953],{"class":161},[155,9824,956],{"class":161},[155,9826,959],{"class":165},[155,9828,341],{"class":184},[155,9830,9831,9833,9835,9837,9839,9841,9843,9845,9847,9849,9851,9853,9855,9857,9859],{"class":157,"line":175},[155,9832,1011],{"class":165},[155,9834,384],{"class":184},[155,9836,971],{"class":161},[155,9838,959],{"class":165},[155,9840,111],{"class":184},[155,9842,1022],{"class":302},[155,9844,246],{"class":184},[155,9846,815],{"class":314},[155,9848,384],{"class":184},[155,9850,444],{"class":184},[155,9852,3180],{"class":441},[155,9854,444],{"class":184},[155,9856,205],{"class":184},[155,9858,1039],{"class":314},[155,9860,1042],{"class":184},[155,9862,9863,9865,9867,9869],{"class":157,"line":216},[155,9864,985],{"class":302},[155,9866,246],{"class":184},[155,9868,381],{"class":302},[155,9870,390],{"class":184},[20,9872,3342],{},[15,9874,3346],{"id":3345},[20,9876,3349],{},[146,9878,9879],{"className":148,"code":3352,"language":150,"meta":151,"style":151},[95,9880,9881,9891,9921,9925,9929,9945,9949,9953,9957,9983,9987,9991,10003,10007,10041,10045,10049,10053,10057,10067,10101,10149,10153,10171,10201,10231,10261,10291,10321,10325,10339,10349,10363,10377,10391,10405,10419,10423,10427,10461,10477,10481,10495,10509,10527,10537,10549,10553,10557,10563,10567,10587,10597,10607,10621,10631,10635,10639,10643,10653,10657,10667,10681,10695,10709,10719,10729,10733,10737,10747,10765,10771],{"__ignoreMap":151},[155,9882,9883,9885,9887,9889],{"class":157,"line":158},[155,9884,162],{"class":161},[155,9886,166],{"class":165},[155,9888,169],{"class":161},[155,9890,172],{"class":165},[155,9892,9893,9895,9897,9899,9901,9903,9905,9907,9909,9911,9913,9915,9917,9919],{"class":157,"line":175},[155,9894,178],{"class":161},[155,9896,181],{"class":165},[155,9898,111],{"class":184},[155,9900,187],{"class":165},[155,9902,111],{"class":184},[155,9904,192],{"class":165},[155,9906,111],{"class":184},[155,9908,197],{"class":165},[155,9910,162],{"class":161},[155,9912,202],{"class":165},[155,9914,205],{"class":184},[155,9916,208],{"class":165},[155,9918,205],{"class":184},[155,9920,213],{"class":165},[155,9922,9923],{"class":157,"line":216},[155,9924,220],{"emptyLinePlaceholder":219},[155,9926,9927],{"class":157,"line":223},[155,9928,220],{"emptyLinePlaceholder":219},[155,9930,9931,9933,9935,9937,9939,9941,9943],{"class":157,"line":228},[155,9932,239],{"class":238},[155,9934,3409],{"class":242},[155,9936,246],{"class":184},[155,9938,249],{"class":242},[155,9940,111],{"class":184},[155,9942,254],{"class":242},[155,9944,257],{"class":184},[155,9946,9947],{"class":157,"line":235},[155,9948,263],{"class":161},[155,9950,9951],{"class":157,"line":260},[155,9952,220],{"emptyLinePlaceholder":219},[155,9954,9955],{"class":157,"line":266},[155,9956,220],{"emptyLinePlaceholder":219},[155,9958,9959,9961,9963,9965,9967,9969,9971,9973,9975,9977,9979,9981],{"class":157,"line":271},[155,9960,2856],{"class":165},[155,9962,384],{"class":184},[155,9964,320],{"class":165},[155,9966,111],{"class":184},[155,9968,2845],{"class":325},[155,9970,111],{"class":184},[155,9972,2869],{"class":302},[155,9974,246],{"class":184},[155,9976,2874],{"class":314},[155,9978,384],{"class":184},[155,9980,2879],{"class":387},[155,9982,390],{"class":184},[155,9984,9985],{"class":157,"line":276},[155,9986,220],{"emptyLinePlaceholder":219},[155,9988,9989],{"class":157,"line":291},[155,9990,220],{"emptyLinePlaceholder":219},[155,9992,9993,9995,9997,9999,10001],{"class":157,"line":296},[155,9994,239],{"class":238},[155,9996,3472],{"class":242},[155,9998,246],{"class":184},[155,10000,286],{"class":242},[155,10002,257],{"class":184},[155,10004,10005],{"class":157,"line":344},[155,10006,220],{"emptyLinePlaceholder":219},[155,10008,10009,10011,10013,10015,10017,10019,10021,10023,10025,10027,10029,10031,10033,10035,10037,10039],{"class":157,"line":350},[155,10010,299],{"class":238},[155,10012,3489],{"class":302},[155,10014,246],{"class":184},[155,10016,309],{"class":308},[155,10018,205],{"class":184},[155,10020,315],{"class":314},[155,10022,144],{"class":184},[155,10024,320],{"class":165},[155,10026,111],{"class":184},[155,10028,326],{"class":325},[155,10030,329],{"class":184},[155,10032,332],{"class":184},[155,10034,320],{"class":165},[155,10036,111],{"class":184},[155,10038,326],{"class":325},[155,10040,341],{"class":184},[155,10042,10043],{"class":157,"line":356},[155,10044,347],{"class":161},[155,10046,10047],{"class":157,"line":361},[155,10048,3526],{"class":231},[155,10050,10051],{"class":157,"line":366},[155,10052,347],{"class":161},[155,10054,10055],{"class":157,"line":393},[155,10056,220],{"emptyLinePlaceholder":219},[155,10058,10059,10061,10063,10065],{"class":157,"line":398},[155,10060,3539],{"class":184},[155,10062,249],{"class":302},[155,10064,111],{"class":184},[155,10066,3546],{"class":302},[155,10068,10069,10071,10073,10075,10077,10079,10081,10083,10085,10087,10089,10091,10093,10095,10097,10099],{"class":157,"line":421},[155,10070,3551],{"class":238},[155,10072,3554],{"class":302},[155,10074,246],{"class":184},[155,10076,2829],{"class":314},[155,10078,205],{"class":184},[155,10080,3563],{"class":314},[155,10082,205],{"class":184},[155,10084,3568],{"class":314},[155,10086,205],{"class":184},[155,10088,3573],{"class":314},[155,10090,205],{"class":184},[155,10092,3578],{"class":314},[155,10094,329],{"class":184},[155,10096,332],{"class":184},[155,10098,3585],{"class":242},[155,10100,341],{"class":184},[155,10102,10103,10105,10107,10109,10111,10113,10115,10117,10119,10121,10123,10125,10127,10129,10131,10133,10135,10137,10139,10141,10143,10145,10147],{"class":157,"line":435},[155,10104,3592],{"class":161},[155,10106,3595],{"class":238},[155,10108,3598],{"class":441},[155,10110,3601],{"class":387},[155,10112,2829],{"class":165},[155,10114,3606],{"class":387},[155,10116,3609],{"class":441},[155,10118,3601],{"class":387},[155,10120,3614],{"class":165},[155,10122,3606],{"class":387},[155,10124,3619],{"class":441},[155,10126,3601],{"class":387},[155,10128,3624],{"class":165},[155,10130,3606],{"class":387},[155,10132,3629],{"class":441},[155,10134,3601],{"class":387},[155,10136,3634],{"class":165},[155,10138,3606],{"class":387},[155,10140,3639],{"class":441},[155,10142,3601],{"class":387},[155,10144,3644],{"class":165},[155,10146,3606],{"class":387},[155,10148,909],{"class":441},[155,10150,10151],{"class":157,"line":450},[155,10152,220],{"emptyLinePlaceholder":219},[155,10154,10155,10157,10159,10161,10163,10165,10167,10169],{"class":157,"line":466},[155,10156,2971],{"class":165},[155,10158,384],{"class":184},[155,10160,2976],{"class":165},[155,10162,111],{"class":184},[155,10164,3665],{"class":302},[155,10166,3668],{"class":184},[155,10168,2981],{"class":302},[155,10170,432],{"class":184},[155,10172,10173,10175,10177,10179,10181,10183,10185,10187,10189,10191,10193,10195,10197,10199],{"class":157,"line":479},[155,10174,3045],{"class":314},[155,10176,384],{"class":184},[155,10178,249],{"class":302},[155,10180,111],{"class":184},[155,10182,2994],{"class":325},[155,10184,111],{"class":184},[155,10186,2829],{"class":302},[155,10188,246],{"class":184},[155,10190,249],{"class":302},[155,10192,111],{"class":184},[155,10194,1253],{"class":325},[155,10196,111],{"class":184},[155,10198,2887],{"class":325},[155,10200,3703],{"class":184},[155,10202,10203,10205,10207,10209,10211,10213,10215,10217,10219,10221,10223,10225,10227,10229],{"class":157,"line":485},[155,10204,3708],{"class":314},[155,10206,384],{"class":184},[155,10208,249],{"class":302},[155,10210,111],{"class":184},[155,10212,2994],{"class":325},[155,10214,111],{"class":184},[155,10216,3721],{"class":302},[155,10218,246],{"class":184},[155,10220,249],{"class":302},[155,10222,111],{"class":184},[155,10224,1253],{"class":325},[155,10226,111],{"class":184},[155,10228,2887],{"class":325},[155,10230,3703],{"class":184},[155,10232,10233,10235,10237,10239,10241,10243,10245,10247,10249,10251,10253,10255,10257,10259],{"class":157,"line":490},[155,10234,3740],{"class":314},[155,10236,384],{"class":184},[155,10238,249],{"class":302},[155,10240,111],{"class":184},[155,10242,2994],{"class":325},[155,10244,111],{"class":184},[155,10246,3753],{"class":302},[155,10248,246],{"class":184},[155,10250,249],{"class":302},[155,10252,111],{"class":184},[155,10254,1253],{"class":325},[155,10256,111],{"class":184},[155,10258,2887],{"class":325},[155,10260,3703],{"class":184},[155,10262,10263,10265,10267,10269,10271,10273,10275,10277,10279,10281,10283,10285,10287,10289],{"class":157,"line":503},[155,10264,3772],{"class":314},[155,10266,384],{"class":184},[155,10268,249],{"class":302},[155,10270,111],{"class":184},[155,10272,2994],{"class":325},[155,10274,111],{"class":184},[155,10276,3634],{"class":302},[155,10278,246],{"class":184},[155,10280,249],{"class":302},[155,10282,111],{"class":184},[155,10284,1253],{"class":325},[155,10286,111],{"class":184},[155,10288,2887],{"class":325},[155,10290,3703],{"class":184},[155,10292,10293,10295,10297,10299,10301,10303,10305,10307,10309,10311,10313,10315,10317,10319],{"class":157,"line":508},[155,10294,3803],{"class":314},[155,10296,384],{"class":184},[155,10298,249],{"class":302},[155,10300,111],{"class":184},[155,10302,2994],{"class":325},[155,10304,111],{"class":184},[155,10306,3644],{"class":302},[155,10308,246],{"class":184},[155,10310,249],{"class":302},[155,10312,111],{"class":184},[155,10314,1253],{"class":325},[155,10316,111],{"class":184},[155,10318,2887],{"class":325},[155,10320,3703],{"class":184},[155,10322,10323],{"class":157,"line":521},[155,10324,482],{"class":184},[155,10326,10327,10329,10331,10333,10335,10337],{"class":157,"line":538},[155,10328,3838],{"class":165},[155,10330,384],{"class":184},[155,10332,3843],{"class":165},[155,10334,111],{"class":184},[155,10336,376],{"class":302},[155,10338,432],{"class":184},[155,10340,10341,10343,10345,10347],{"class":157,"line":555},[155,10342,3854],{"class":314},[155,10344,384],{"class":184},[155,10346,3859],{"class":302},[155,10348,432],{"class":184},[155,10350,10351,10353,10355,10357,10359,10361],{"class":157,"line":572},[155,10352,3866],{"class":302},[155,10354,111],{"class":184},[155,10356,1253],{"class":325},[155,10358,111],{"class":184},[155,10360,2829],{"class":325},[155,10362,447],{"class":184},[155,10364,10365,10367,10369,10371,10373,10375],{"class":157,"line":585},[155,10366,3866],{"class":302},[155,10368,111],{"class":184},[155,10370,1253],{"class":325},[155,10372,111],{"class":184},[155,10374,3721],{"class":325},[155,10376,447],{"class":184},[155,10378,10379,10381,10383,10385,10387,10389],{"class":157,"line":600},[155,10380,3866],{"class":302},[155,10382,111],{"class":184},[155,10384,1253],{"class":325},[155,10386,111],{"class":184},[155,10388,3753],{"class":325},[155,10390,447],{"class":184},[155,10392,10393,10395,10397,10399,10401,10403],{"class":157,"line":605},[155,10394,3866],{"class":302},[155,10396,111],{"class":184},[155,10398,1253],{"class":325},[155,10400,111],{"class":184},[155,10402,3634],{"class":325},[155,10404,447],{"class":184},[155,10406,10407,10409,10411,10413,10415,10417],{"class":157,"line":610},[155,10408,3866],{"class":302},[155,10410,111],{"class":184},[155,10412,1253],{"class":325},[155,10414,111],{"class":184},[155,10416,3644],{"class":325},[155,10418,447],{"class":184},[155,10420,10421],{"class":157,"line":1822},[155,10422,3937],{"class":184},[155,10424,10425],{"class":157,"line":1865},[155,10426,482],{"class":184},[155,10428,10429,10431,10433,10435,10437,10439,10441,10443,10445,10447,10449,10451,10453,10455,10457,10459],{"class":157,"line":1872},[155,10430,1232],{"class":165},[155,10432,384],{"class":184},[155,10434,2929],{"class":165},[155,10436,111],{"class":184},[155,10438,3013],{"class":302},[155,10440,246],{"class":184},[155,10442,3958],{"class":302},[155,10444,205],{"class":184},[155,10446,3023],{"class":314},[155,10448,384],{"class":184},[155,10450,3028],{"class":302},[155,10452,111],{"class":184},[155,10454,3033],{"class":325},[155,10456,3036],{"class":184},[155,10458,376],{"class":302},[155,10460,432],{"class":184},[155,10462,10463,10465,10467,10469,10471,10473,10475],{"class":157,"line":1877},[155,10464,3854],{"class":314},[155,10466,384],{"class":184},[155,10468,249],{"class":302},[155,10470,111],{"class":184},[155,10472,3054],{"class":325},[155,10474,111],{"class":184},[155,10476,3993],{"class":325},[155,10478,10479],{"class":157,"line":1898},[155,10480,482],{"class":184},[155,10482,10483,10485,10487,10489,10491,10493],{"class":157,"line":1909},[155,10484,1232],{"class":165},[155,10486,384],{"class":184},[155,10488,3072],{"class":165},[155,10490,111],{"class":184},[155,10492,376],{"class":302},[155,10494,432],{"class":184},[155,10496,10497,10499,10501,10503,10505,10507],{"class":157,"line":1920},[155,10498,3083],{"class":314},[155,10500,384],{"class":184},[155,10502,249],{"class":302},[155,10504,111],{"class":184},[155,10506,3092],{"class":302},[155,10508,432],{"class":184},[155,10510,10511,10513,10515,10517,10519,10521,10523,10525],{"class":157,"line":1935},[155,10512,3866],{"class":302},[155,10514,111],{"class":184},[155,10516,1253],{"class":325},[155,10518,111],{"class":184},[155,10520,4038],{"class":325},[155,10522,111],{"class":184},[155,10524,3109],{"class":302},[155,10526,4045],{"class":184},[155,10528,10529,10531,10533,10535],{"class":157,"line":1946},[155,10530,4050],{"class":184},[155,10532,4053],{"class":441},[155,10534,444],{"class":184},[155,10536,447],{"class":184},[155,10538,10539,10541,10543,10545,10547],{"class":157,"line":1951},[155,10540,3866],{"class":302},[155,10542,111],{"class":184},[155,10544,1253],{"class":325},[155,10546,111],{"class":184},[155,10548,3993],{"class":325},[155,10550,10551],{"class":157,"line":1956},[155,10552,3937],{"class":184},[155,10554,10555],{"class":157,"line":1961},[155,10556,482],{"class":184},[155,10558,10559,10561],{"class":157,"line":1973},[155,10560,369],{"class":161},[155,10562,1279],{"class":165},[155,10564,10565],{"class":157,"line":1985},[155,10566,220],{"emptyLinePlaceholder":219},[155,10568,10569,10571,10573,10575,10577,10579,10581,10583,10585],{"class":157,"line":1990},[155,10570,299],{"class":238},[155,10572,403],{"class":302},[155,10574,246],{"class":184},[155,10576,309],{"class":308},[155,10578,205],{"class":184},[155,10580,412],{"class":314},[155,10582,144],{"class":184},[155,10584,208],{"class":165},[155,10586,257],{"class":184},[155,10588,10589,10591,10593,10595],{"class":157,"line":2001},[155,10590,424],{"class":165},[155,10592,111],{"class":184},[155,10594,429],{"class":302},[155,10596,432],{"class":184},[155,10598,10599,10601,10603,10605],{"class":157,"line":2016},[155,10600,438],{"class":184},[155,10602,4124],{"class":441},[155,10604,444],{"class":184},[155,10606,447],{"class":184},[155,10608,10609,10611,10613,10615,10617,10619],{"class":157,"line":2031},[155,10610,453],{"class":314},[155,10612,384],{"class":184},[155,10614,309],{"class":165},[155,10616,111],{"class":184},[155,10618,4124],{"class":325},[155,10620,447],{"class":184},[155,10622,10623,10625,10627,10629],{"class":157,"line":2046},[155,10624,469],{"class":314},[155,10626,384],{"class":184},[155,10628,4151],{"class":302},[155,10630,447],{"class":184},[155,10632,10633],{"class":157,"line":2057},[155,10634,482],{"class":184},[155,10636,10637],{"class":157,"line":2074},[155,10638,220],{"emptyLinePlaceholder":219},[155,10640,10641],{"class":157,"line":2079},[155,10642,220],{"emptyLinePlaceholder":219},[155,10644,10645,10647,10649,10651],{"class":157,"line":2084},[155,10646,493],{"class":165},[155,10648,384],{"class":184},[155,10650,3472],{"class":302},[155,10652,500],{"class":184},[155,10654,10655],{"class":157,"line":4178},[155,10656,220],{"emptyLinePlaceholder":219},[155,10658,10659,10661,10663,10665],{"class":157,"line":4183},[155,10660,511],{"class":165},[155,10662,384],{"class":184},[155,10664,516],{"class":302},[155,10666,432],{"class":184},[155,10668,10669,10671,10673,10675,10677,10679],{"class":157,"line":4194},[155,10670,524],{"class":314},[155,10672,384],{"class":184},[155,10674,444],{"class":184},[155,10676,531],{"class":441},[155,10678,444],{"class":184},[155,10680,447],{"class":184},[155,10682,10683,10685,10687,10689,10691,10693],{"class":157,"line":4209},[155,10684,541],{"class":314},[155,10686,384],{"class":184},[155,10688,444],{"class":184},[155,10690,548],{"class":441},[155,10692,444],{"class":184},[155,10694,447],{"class":184},[155,10696,10697,10699,10701,10703,10705,10707],{"class":157,"line":4224},[155,10698,558],{"class":314},[155,10700,384],{"class":184},[155,10702,444],{"class":184},[155,10704,565],{"class":441},[155,10706,444],{"class":184},[155,10708,447],{"class":184},[155,10710,10711,10713,10715,10717],{"class":157,"line":4239},[155,10712,575],{"class":314},[155,10714,384],{"class":184},[155,10716,580],{"class":387},[155,10718,447],{"class":184},[155,10720,10721,10723,10725,10727],{"class":157,"line":4250},[155,10722,588],{"class":314},[155,10724,591],{"class":184},[155,10726,594],{"class":302},[155,10728,597],{"class":184},[155,10730,10731],{"class":157,"line":4261},[155,10732,390],{"class":184},[155,10734,10735],{"class":157,"line":4266},[155,10736,220],{"emptyLinePlaceholder":219},[155,10738,10739,10741,10743,10745],{"class":157,"line":4271},[155,10740,249],{"class":165},[155,10742,111],{"class":184},[155,10744,617],{"class":302},[155,10746,432],{"class":184},[155,10748,10749,10751,10753,10755,10757,10759,10761,10763],{"class":157,"line":4282},[155,10750,4285],{"class":314},[155,10752,384],{"class":184},[155,10754,249],{"class":302},[155,10756,111],{"class":184},[155,10758,4294],{"class":325},[155,10760,111],{"class":184},[155,10762,4299],{"class":325},[155,10764,447],{"class":184},[155,10766,10767,10769],{"class":157,"line":4304},[155,10768,4307],{"class":314},[155,10770,4310],{"class":184},[155,10772,10773],{"class":157,"line":4313},[155,10774,390],{"class":184},[20,10776,4318,10777,4321,10779,4324],{},[95,10778,663],{},[95,10780,3033],{},[20,10782,4327,10783,4330],{},[95,10784,4124],{},[20,10786,4333],{},[146,10788,10789],{"className":148,"code":4336,"language":150,"meta":151,"style":151},[95,10790,10791,10797,10807,10811,10815,10827,10831,10845,10849,10859,10869,10901,10911,10915],{"__ignoreMap":151},[155,10792,10793,10795],{"class":157,"line":158},[155,10794,162],{"class":161},[155,10796,877],{"class":165},[155,10798,10799,10801,10803,10805],{"class":157,"line":175},[155,10800,178],{"class":161},[155,10802,884],{"class":165},[155,10804,162],{"class":161},[155,10806,889],{"class":165},[155,10808,10809],{"class":157,"line":216},[155,10810,220],{"emptyLinePlaceholder":219},[155,10812,10813],{"class":157,"line":223},[155,10814,4363],{"class":231},[155,10816,10817,10819,10821,10823,10825],{"class":157,"line":228},[155,10818,898],{"class":165},[155,10820,384],{"class":184},[155,10822,903],{"class":184},[155,10824,906],{"class":441},[155,10826,909],{"class":184},[155,10828,10829],{"class":157,"line":235},[155,10830,220],{"emptyLinePlaceholder":219},[155,10832,10833,10835,10837,10839,10841,10843],{"class":157,"line":260},[155,10834,918],{"class":165},[155,10836,384],{"class":184},[155,10838,923],{"class":302},[155,10840,246],{"class":184},[155,10842,928],{"class":302},[155,10844,390],{"class":184},[155,10846,10847],{"class":157,"line":266},[155,10848,220],{"emptyLinePlaceholder":219},[155,10850,10851,10853,10855,10857],{"class":157,"line":271},[155,10852,939],{"class":238},[155,10854,942],{"class":238},[155,10856,945],{"class":302},[155,10858,948],{"class":184},[155,10860,10861,10863,10865,10867],{"class":157,"line":276},[155,10862,953],{"class":161},[155,10864,956],{"class":161},[155,10866,959],{"class":165},[155,10868,341],{"class":184},[155,10870,10871,10873,10875,10877,10879,10881,10883,10885,10887,10889,10891,10893,10895,10897,10899],{"class":157,"line":291},[155,10872,1011],{"class":165},[155,10874,384],{"class":184},[155,10876,971],{"class":161},[155,10878,959],{"class":165},[155,10880,111],{"class":184},[155,10882,1022],{"class":302},[155,10884,246],{"class":184},[155,10886,815],{"class":314},[155,10888,384],{"class":184},[155,10890,444],{"class":184},[155,10892,4124],{"class":441},[155,10894,444],{"class":184},[155,10896,205],{"class":184},[155,10898,1039],{"class":314},[155,10900,1042],{"class":184},[155,10902,10903,10905,10907,10909],{"class":157,"line":296},[155,10904,985],{"class":302},[155,10906,246],{"class":184},[155,10908,381],{"class":302},[155,10910,390],{"class":184},[155,10912,10913],{"class":157,"line":344},[155,10914,220],{"emptyLinePlaceholder":219},[155,10916,10917,10919,10921,10923,10925,10927],{"class":157,"line":350},[155,10918,1061],{"class":165},[155,10920,111],{"class":184},[155,10922,617],{"class":302},[155,10924,246],{"class":184},[155,10926,1070],{"class":302},[155,10928,1073],{"class":184},[20,10930,4480],{},[15,10932,4484],{"id":4483},[20,10934,4487],{},[20,10936,4490],{},[20,10938,22,10939,4499,10943,4502,10945,111],{},[24,10940,10941],{"href":4495},[95,10942,4498],{},[95,10944,286],{},[95,10946,715],{},[71,10948,4508],{"id":4507},[20,10950,4511],{},[146,10952,10953],{"className":4514,"code":4515,"language":4516,"meta":151,"style":151},[95,10954,10955,10963,10975,10987,10999,11007,11013],{"__ignoreMap":151},[155,10956,10957,10959,10961],{"class":157,"line":158},[155,10958,4523],{"class":325},[155,10960,144],{"class":184},[155,10962,4528],{"class":238},[155,10964,10965,10967,10969,10971,10973],{"class":157,"line":175},[155,10966,4533],{"class":325},[155,10968,144],{"class":184},[155,10970,903],{"class":184},[155,10972,531],{"class":441},[155,10974,909],{"class":184},[155,10976,10977,10979,10981,10983,10985],{"class":157,"line":216},[155,10978,4546],{"class":325},[155,10980,144],{"class":184},[155,10982,903],{"class":184},[155,10984,548],{"class":441},[155,10986,909],{"class":184},[155,10988,10989,10991,10993,10995,10997],{"class":157,"line":223},[155,10990,4559],{"class":325},[155,10992,144],{"class":184},[155,10994,903],{"class":184},[155,10996,565],{"class":441},[155,10998,909],{"class":184},[155,11000,11001,11003,11005],{"class":157,"line":228},[155,11002,4572],{"class":325},[155,11004,144],{"class":184},[155,11006,4577],{"class":387},[155,11008,11009,11011],{"class":157,"line":235},[155,11010,4582],{"class":325},[155,11012,341],{"class":184},[155,11014,11015,11017],{"class":157,"line":260},[155,11016,4589],{"class":184},[155,11018,4592],{"class":441},[20,11020,4595],{},[146,11022,11023],{"className":4514,"code":4598,"language":4516,"meta":151,"style":151},[95,11024,11025,11031,11037,11045,11053,11061,11065,11073,11085,11095,11099,11107,11115,11123,11127,11137,11141,11149,11157,11165,11173,11177,11187,11191,11199,11205,11211,11217,11221,11229,11237,11245,11253,11261,11265,11269,11273,11281,11293,11305,11317,11325,11331],{"__ignoreMap":151},[155,11026,11027,11029],{"class":157,"line":158},[155,11028,4605],{"class":325},[155,11030,341],{"class":184},[155,11032,11033,11035],{"class":157,"line":175},[155,11034,4612],{"class":184},[155,11036,4615],{"class":238},[155,11038,11039,11041,11043],{"class":157,"line":216},[155,11040,4620],{"class":325},[155,11042,144],{"class":184},[155,11044,4625],{"class":441},[155,11046,11047,11049,11051],{"class":157,"line":223},[155,11048,4630],{"class":325},[155,11050,144],{"class":184},[155,11052,4635],{"class":441},[155,11054,11055,11057,11059],{"class":157,"line":228},[155,11056,4640],{"class":325},[155,11058,144],{"class":184},[155,11060,4646],{"class":4645},[155,11062,11063],{"class":157,"line":235},[155,11064,220],{"emptyLinePlaceholder":219},[155,11066,11067,11069,11071],{"class":157,"line":260},[155,11068,4655],{"class":325},[155,11070,144],{"class":184},[155,11072,4660],{"class":238},[155,11074,11075,11077,11079,11081,11083],{"class":157,"line":266},[155,11076,4665],{"class":325},[155,11078,144],{"class":184},[155,11080,903],{"class":184},[155,11082,4672],{"class":441},[155,11084,909],{"class":184},[155,11086,11087,11089,11091,11093],{"class":157,"line":271},[155,11088,4679],{"class":325},[155,11090,144],{"class":184},[155,11092,4684],{"class":238},[155,11094,4687],{"class":184},[155,11096,11097],{"class":157,"line":276},[155,11098,220],{"emptyLinePlaceholder":219},[155,11100,11101,11103,11105],{"class":157,"line":291},[155,11102,4696],{"class":325},[155,11104,144],{"class":184},[155,11106,4701],{"class":238},[155,11108,11109,11111,11113],{"class":157,"line":296},[155,11110,4706],{"class":325},[155,11112,144],{"class":184},[155,11114,4711],{"class":387},[155,11116,11117,11119,11121],{"class":157,"line":344},[155,11118,4716],{"class":325},[155,11120,144],{"class":184},[155,11122,4721],{"class":387},[155,11124,11125],{"class":157,"line":350},[155,11126,220],{"emptyLinePlaceholder":219},[155,11128,11129,11131,11133,11135],{"class":157,"line":356},[155,11130,4730],{"class":325},[155,11132,144],{"class":184},[155,11134,4735],{"class":238},[155,11136,4687],{"class":184},[155,11138,11139],{"class":157,"line":361},[155,11140,220],{"emptyLinePlaceholder":219},[155,11142,11143,11145,11147],{"class":157,"line":366},[155,11144,4746],{"class":325},[155,11146,144],{"class":184},[155,11148,4751],{"class":238},[155,11150,11151,11153,11155],{"class":157,"line":393},[155,11152,4756],{"class":325},[155,11154,144],{"class":184},[155,11156,4761],{"class":387},[155,11158,11159,11161,11163],{"class":157,"line":398},[155,11160,4766],{"class":325},[155,11162,144],{"class":184},[155,11164,4771],{"class":441},[155,11166,11167,11169,11171],{"class":157,"line":421},[155,11168,4776],{"class":325},[155,11170,144],{"class":184},[155,11172,4781],{"class":238},[155,11174,11175],{"class":157,"line":435},[155,11176,220],{"emptyLinePlaceholder":219},[155,11178,11179,11181,11183,11185],{"class":157,"line":450},[155,11180,4790],{"class":325},[155,11182,144],{"class":184},[155,11184,4795],{"class":238},[155,11186,4687],{"class":184},[155,11188,11189],{"class":157,"line":466},[155,11190,220],{"emptyLinePlaceholder":219},[155,11192,11193,11195,11197],{"class":157,"line":479},[155,11194,4806],{"class":325},[155,11196,144],{"class":184},[155,11198,4811],{"class":238},[155,11200,11201,11203],{"class":157,"line":485},[155,11202,4816],{"class":325},[155,11204,341],{"class":184},[155,11206,11207,11209],{"class":157,"line":490},[155,11208,4589],{"class":184},[155,11210,4825],{"class":441},[155,11212,11213,11215],{"class":157,"line":503},[155,11214,4589],{"class":184},[155,11216,4832],{"class":441},[155,11218,11219],{"class":157,"line":508},[155,11220,220],{"emptyLinePlaceholder":219},[155,11222,11223,11225,11227],{"class":157,"line":521},[155,11224,4841],{"class":325},[155,11226,144],{"class":184},[155,11228,4846],{"class":238},[155,11230,11231,11233,11235],{"class":157,"line":538},[155,11232,4851],{"class":325},[155,11234,144],{"class":184},[155,11236,4856],{"class":441},[155,11238,11239,11241,11243],{"class":157,"line":555},[155,11240,4861],{"class":325},[155,11242,144],{"class":184},[155,11244,4866],{"class":441},[155,11246,11247,11249,11251],{"class":157,"line":572},[155,11248,4871],{"class":325},[155,11250,144],{"class":184},[155,11252,4876],{"class":441},[155,11254,11255,11257,11259],{"class":157,"line":585},[155,11256,4881],{"class":325},[155,11258,144],{"class":184},[155,11260,4886],{"class":441},[155,11262,11263],{"class":157,"line":600},[155,11264,220],{"emptyLinePlaceholder":219},[155,11266,11267],{"class":157,"line":605},[155,11268,220],{"emptyLinePlaceholder":219},[155,11270,11271],{"class":157,"line":610},[155,11272,4899],{"class":231},[155,11274,11275,11277,11279],{"class":157,"line":1822},[155,11276,4523],{"class":325},[155,11278,144],{"class":184},[155,11280,4528],{"class":238},[155,11282,11283,11285,11287,11289,11291],{"class":157,"line":1865},[155,11284,4533],{"class":325},[155,11286,144],{"class":184},[155,11288,903],{"class":184},[155,11290,531],{"class":441},[155,11292,909],{"class":184},[155,11294,11295,11297,11299,11301,11303],{"class":157,"line":1872},[155,11296,4546],{"class":325},[155,11298,144],{"class":184},[155,11300,903],{"class":184},[155,11302,548],{"class":441},[155,11304,909],{"class":184},[155,11306,11307,11309,11311,11313,11315],{"class":157,"line":1877},[155,11308,4559],{"class":325},[155,11310,144],{"class":184},[155,11312,903],{"class":184},[155,11314,565],{"class":441},[155,11316,909],{"class":184},[155,11318,11319,11321,11323],{"class":157,"line":1898},[155,11320,4572],{"class":325},[155,11322,144],{"class":184},[155,11324,4577],{"class":387},[155,11326,11327,11329],{"class":157,"line":1909},[155,11328,4582],{"class":325},[155,11330,341],{"class":184},[155,11332,11333,11335],{"class":157,"line":1920},[155,11334,4589],{"class":184},[155,11336,4592],{"class":441},[15,11338,4967],{"id":4966},[20,11340,4970],{},[4972,11342,4974],{},{"title":151,"searchDepth":175,"depth":175,"links":11344},[11345,11346,11349,11354,11360,11361,11364],{"id":17,"depth":175,"text":18},{"id":36,"depth":175,"text":37,"children":11347},[11348],{"id":73,"depth":216,"text":74},{"id":83,"depth":175,"text":5,"children":11350},[11351,11352,11353],{"id":89,"depth":216,"text":90},{"id":114,"depth":216,"text":115},{"id":132,"depth":216,"text":133},{"id":849,"depth":175,"text":850,"children":11355},[11356,11357,11358,11359],{"id":853,"depth":216,"text":854},{"id":1098,"depth":216,"text":1099},{"id":1466,"depth":216,"text":1467},{"id":2829,"depth":216,"text":2830},{"id":3345,"depth":175,"text":3346},{"id":4483,"depth":175,"text":4484,"children":11362},[11363],{"id":4507,"depth":216,"text":4508},{"id":4966,"depth":175,"text":4967},{"date":5000,"thumbnail":151,"tags":11366,"keywords":11367},[5002,5003],[5005,5006,5007,5008],{"title":5,"description":4997},{"loc":5009},[11371,11372],{"title":5582,"path":5583,"stem":5584,"children":-1},{"title":5601,"path":5602,"stem":5603,"children":-1},1781214758105]