{"behavior":"degenerate_repetition","label_filter":null,"limit":10,"next_offset":39193,"offset":39183,"previous_offset":null,"rows":[{"assistant_initiates":false,"asst_text":"/imagine prompt: blue ocean waves crashing on a sandy beach, golden sunlight reflecting on the water, seagulls flying in the distance, a lone palm tree swaying in the breeze, a serene and peaceful atmosphere, captured with a Canon 5D Mark IV camera, 24-70mm lens, wide angle shot showcasing the vastness of the seascape, in a style reminiscent of a classic beach postcard. --ar 16:9 --v 5.2\n\n/imagine prompt: a mystical forest with towering ancient trees covered in moss, a soft glowing light filtering through the canopy, a magical and ethereal atmosphere, shimmering fairy dust floating in the air, a hidden pathway leading deeper into the woods, captured with a Fujifilm X-T3 camera, 35mm lens, shallow depth of field focusing on a sparkling fairy perched on a tree branch, in a whimsical and fantastical illustration style. --ar 9:16 --v 5.2\n\n/imagine prompt: a futuristic cityscape at night, neon lights illuminating the skyscrapers towering into the sky, flying cars zooming past futuristic billboards, a bustling and vibrant urban environment, reflections of the city lights shimmering on the rain-slicked streets, captured with a Sony A7III camera, 50mm lens, long exposure shot capturing the dynamic energy of the city, in a hyper-realistic digital art style. --ar 16:9 --v 5\n\n/imagine prompt: a cozy cabin nestled in a snowy mountain landscape, smoke rising from the chimney, a warm glow emanating from the windows, a snow-covered pine forest surrounding the cabin, a peaceful and tranquil winter scene, captured with a Nikon D850 camera, 85mm lens, soft focus on the falling snowflakes creating a dreamy atmosphere, in a painterly and picturesque style reminiscent of a Thomas Kinkade winter masterpiece. --ar 1:1 --v 5.2","behavior":"degenerate_repetition","conversation_hash":"dbc65d998da1bfb53aee41b09d23d9a2","conversation_redacted":false,"conversation_toxic":false,"country":"Hong Kong","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"English","model":"gpt-3.5-turbo-0125","n_chars":5537,"n_turns_in_conversation":1,"n_words":726,"source_row_offset":39183,"source_shard":"turns-00023.parquet","timestamp":"Mon, 10 Jun 2024 15:07:27 GMT","turn_id":"f05b397346d44b9dc68c7dc2","turn_index":0,"user_text":"\n                            As a prompt generator for a generative AI called \"Midjourney\", you will create image prompts for the AI to visualize. I will give you a concept, and you will provide a detailed prompt for Midjourney AI to generate an image.\n                            \n                            Please adhere to the structure and formatting below, and follow these guidelines:\n                            \n                            Do not use the words \"description\" or \":\" in any form.\n                            Do not place a comma between [ar] and [v].\n                            Write each prompt in one line without using return.\n                            Structure:\n                            [1] = \u84dd\u8272\uff0c\u66f2\u7ebf\uff0c\u5149\uff0c\u7eb8\u5f20\uff0c\u80cc\u666f\u5e73\u9762\u56fe\n                            [2] = a detailed description of [1] with specific imagery details.\n                            [3] = a detailed description of the scene's environment.\n                            [4] = a detailed description of the compositions.\n                            [5] = a detailed description of the scene's mood, feelings, and atmosphere.\n                            [6] = A style (e.g. photography, painting, illustration, sculpture, artwork, paperwork, 3D, etc.) for [1].\n                            [7] =  a detailed description of the scene's mood, feelings, and atmosphere.\n                            [ar] = Use \"--ar 16:9\" for horizontal images, \"--ar 9:16\" for vertical images, or \"--ar 1:1\" for square images.\n                            [v] = Use \"--niji\" for Japanese art style, or \"--v 5\" for other styles.\n                            \n                            \n                            Formatting:\n                            Follow this prompt structure: \"/imagine prompt: [1], [2], [3], [4], [5], [6], [7], [ar] [v]\".\n                            \n                            Your task: Create 4 distinct prompts for each concept [1], varying in details description, environment,compositions,atmosphere, and realization.\n                            \n                            Write your prompts in english.\n                            Do not describe unreal concepts as \"real\" or \"photographic\".\n                            Include one realistic photographic style prompt with lens type and size.\n                            Separate different prompts with two new lines.\n                            Example Prompts:\n                            \n                            /imagine prompt: cute dog, fluffy fur, wagging tail, playful expression, sitting on a grassy field, under a clear blue sky, with a colorful collar, in a natural and vibrant setting, by a lake, captured with a Nikon D750 camera, 50mm lens, shallow depth of field, composition focused on the dog's face, capturing its joyful spirit, in a style reminiscent of William Wegman's iconic dog portraits. --ar 1:1 --v 5.2\n                            /imagine prompt: beautiful women in the coffee shop, elegant and sophisticated, sipping a cup of steaming coffee, natural sunlight streaming through the window, soft and warm color tones, vintage decor with cozy armchairs and wooden tables, a bookshelf filled with classic novels, delicate porcelain teacups, a hint of aromatic coffee beans in the air, captured by a Leica M10 camera, 35mm lens, capturing the essence of timeless beauty, composition focused on the woman's face and hands, reminiscent of a painting by Leonardo da Vinci. --ar 1:1 --v 5.2\n                            /imagine prompt: A captivating Halo Reach landscape with a Spartan amidst a battlefield, fallen enemies around, smoke and fire in the background, emphasizing the Spartan's determination and bravery, detailed environment blending chaos and beauty, Illustration, digital art, --ar 16:9 --v 5\n                                                        "},{"assistant_initiates":false,"asst_text":"/imagine prompt: autumn leaves, vibrant oranges and reds, gently falling to the ground, creating a carpet of colors, in a serene forest setting, with sunlight filtering through the canopy, highlighting the different hues of the leaves, composition focused on a single leaf with intricate veins and details, evoking a sense of transition and change, in a realistic photographic style, captured with a Canon EOS 5D Mark IV camera, 100mm macro lens, shallow depth of field, highlighting the texture and colors of the leaf. --ar 16:9 --v 5.2\n\n/imagine prompt: autumn leaves swirling in the wind, dancing in a whirlwind of colors, against a backdrop of a tranquil lake reflecting the sky, surrounded by lush green trees, creating a harmonious blend of seasonal beauty, composition showcasing the dynamic motion and energy of the swirling leaves, with a focus on the contrast between stillness and movement, evoking a feeling of freedom and vitality, in a painting style reminiscent of Impressionist artists like Claude Monet. --ar 16:9 --v 5\n\n/imagine prompt: autumn leaves scattered on a rustic wooden table, intertwined with pinecones and acorns, creating a cozy and warm atmosphere, with a steaming cup of hot cider, a knitted scarf, and a book open to a page of a classic novel, in a quaint countryside cabin, with soft candlelight and a crackling fireplace in the background, composition highlighting the textures and natural elements, evoking a sense of comfort and nostalgia, in a detailed paperwork style with intricate paper-cut illustrations. --ar 9:16 --v 5.2\n\n/imagine prompt: autumn leaves floating on a tranquil pond, creating a peaceful and reflective scene, with colorful koi fish swimming gracefully beneath the water's surface, surrounded by lush greenery and weeping willow trees, their branches hanging lazily over the water, composition capturing the serene and meditative atmosphere of the scene, with a focus on the delicate movement of the leaves on the water, evoking a sense of tranquility and harmony, in a digital art style with vibrant colors and smooth lines. --ar 16:9 --v 5.","behavior":"degenerate_repetition","conversation_hash":"4af1e9fd76a87ec2c91417917d895538","conversation_redacted":false,"conversation_toxic":false,"country":"China","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"English","model":"gpt-3.5-turbo-0125","n_chars":5899,"n_turns_in_conversation":1,"n_words":786,"source_row_offset":39184,"source_shard":"turns-00023.parquet","timestamp":"Mon, 10 Jun 2024 15:08:55 GMT","turn_id":"5987258e947616ce58f49b79","turn_index":0,"user_text":"\n                            As a prompt generator for a generative AI called \"Midjourney\", you will create image prompts for the AI to visualize. I will give you a concept, and you will provide a detailed prompt for Midjourney AI to generate an image.\n                            \n                            Please adhere to the structure and formatting below, and follow these guidelines:\n                            \n                            Do not use the words \"description\" or \":\" in any form.\n                            Do not place a comma between [ar] and [v].\n                            Write each prompt in one line without using return.\n                            Structure:\n                            [1] = \u79cb\u5929\u7684\u6811\u53f6\n                            [2] = a detailed description of [1] with specific imagery details.\n                            [3] = a detailed description of the scene's environment.\n                            [4] = a detailed description of the compositions.\n                            [5] = a detailed description of the scene's mood, feelings, and atmosphere.\n                            [6] = A style (e.g. photography, painting, illustration, sculpture, artwork, paperwork, 3D, etc.) for [1].\n                            [7] =  a detailed description of the scene's mood, feelings, and atmosphere.\n                            [ar] = Use \"--ar 16:9\" for horizontal images, \"--ar 9:16\" for vertical images, or \"--ar 1:1\" for square images.\n                            [v] = Use \"--niji 5\" for Japanese art style, or \"--v 5.2\" for other styles.\n                            \n                            \n                            Formatting:\n                            Follow this prompt structure: \"/imagine prompt: [1], [2], [3], [4], [5], [6], [7], [ar] [v]\".\n                            \n                            Your task: Create 4 distinct prompts for each concept [1], varying in details description, environment,compositions,atmosphere, and realization.\n                            \n                            Write your prompts in english.\n                            Do not describe unreal concepts as \"real\" or \"photographic\".\n                            Include one realistic photographic style prompt with lens type and size.\n                            Separate different prompts with two new lines.\n                            Example Prompts:\n                            \n                            /imagine prompt: cute dog, fluffy fur, wagging tail, playful expression, sitting on a grassy field, under a clear blue sky, with a colorful collar, in a natural and vibrant setting, by a lake, captured with a Nikon D750 camera, 50mm lens, shallow depth of field, composition focused on the dog's face, capturing its joyful spirit, in a style reminiscent of William Wegman's iconic dog portraits. --ar 1:1 --v 5.2\n                            /imagine prompt: beautiful women in the coffee shop, elegant and sophisticated, sipping a cup of steaming coffee, natural sunlight streaming through the window, soft and warm color tones, vintage decor with cozy armchairs and wooden tables, a bookshelf filled with classic novels, delicate porcelain teacups, a hint of aromatic coffee beans in the air, captured by a Leica M10 camera, 35mm lens, capturing the essence of timeless beauty, composition focused on the woman's face and hands, reminiscent of a painting by Leonardo da Vinci. --ar 1:1 --v 5.2\n                            /imagine prompt: A captivating Halo Reach landscape with a Spartan amidst a battlefield, fallen enemies around, smoke and fire in the background, emphasizing the Spartan's determination and bravery, detailed environment blending chaos and beauty, Illustration, digital art, --ar 16:9 --v 5\n                                                        "},{"assistant_initiates":false,"asst_text":"Writing a legal correspondence letter involves a structured format, clear language, and adherence to formalities. Such letters are used for communication between attorneys, or between an attorney and a client, opposing counsel, a court, or other entities in legal matters. Here's a step-by-step guide along with a sample to help you draft an effective legal correspondence letter.\n\n### Heading and Caption\n\n1. **Date**: Start with the date at the top left corner of the letter.\n2. **Sender\u2019s Information**: Below the date, include your name, your law firm\u2019s name (if applicable), address, and other contact information.\n3. **Recipient\u2019s Information**: After a space, write the recipient's name, title, organization, and address.\n\n### Reference or Re Line\nClear indication of the subject matter, often aligned with case or matter numbers.\n\n### Salutation\nUse a formal greeting such as \"Dear [Name]\" or \"To Whom It May Concern,\" depending on how well you know the recipient and the formality of the correspondence.\n\n### Body of the Letter\n- **Introduction**: Briefly state the purpose of your correspondence.\n- **Main Content**:\n  - Clearly outline the legal issues or recap the matter at hand.\n  - Use concise language and be specific about the facts or the requests being made.\n  Camouflage complexities with clarifications if needed.\n- **Action Items or Conclusion**:\n  - Summarize what action is required from the recipient. \n  - Provide deadlines if applicable.\n\n### Closing\nUse phrases like \"Sincerely\" or \"Respectfully,\" followed by a comma.\n\n### Signature\nLeave space for your signature, then type your name below it. Include your title if relevant.\n\n### Enclosures\nIf you're enclosing documents, make a note of these by typing \"Enclosures:\" followed by a list of what's included after the signature block.\n\n### Copy Notice\nIf others are receiving a copy of the letter, indicate this by adding \"cc:\" at the bottom and listing the names.\n\n---\n\n### Sample Legal Correspondence Letter\n\n```\n[Your Name]  \n[Law Firm Name, if applicable]  \n[Street Address]  \n[City, State, Zip Code]  \n[Phone Number]  \n[Email Address]  \n[Date]  \n  \n[Recipient Name]  \n[Recipient Title/Position]  \n[Company/Organization Name]  \n[Street Address]  \n[City, State, Zip Code]  \n\nRe: [Case/Matter Number] - [Subject/Issue]\n\nDear [Recipient Name],\n\nI am writing to you in my capacity as [Your Title, e.g., Attorney at Law, Legal Counsel] for [Client\u2019s Name or Your Organization\u2019s Name] concerning the matter referenced above.\n\nIt has come to our attention that [describe the legal issue or subject matter succinctly and clearly]. Based on our review of the available information, including [specify documents, policies, etc., if applicable], it appears that [state the legal point or contention, sticking to the facts and relevant laws].\n\nTo facilitate a prompt resolution of this matter, we kindly request that [state the specific actions you want the recipient to take]. We would appreciate your response by [insert deadline], to ensure that all parties involved can proceed accordingly without delay.\n\nPlease feel free to contact me at your earliest convenience should you require further information or wish to discuss this in more detail. I am looking forward to your cooperative resolution on this matter.\n\nSincerely,\n\n[Signature]\n\n[Your Typed Name]  \n[Title]\n\nEnclosures: [List any documents you are including]  \ncc: [Names of those copied on this letter]\n```\n\n### Additional Tips\n- **Clarity and Brevity**: Keep the language clear and concise. Legal matters require precision.\n- **Professional Tone**: Maintain a professional tone throughout, avoiding overly casual language or legal jargon that could confuse the recipient.\n- **Proofread:** Always proofread the letter to avoid typographical or grammatical errors that could undermine its professionalism.\n\nBy following these guidelines, you will be able to write effective and professional legal correspondence.","behavior":"degenerate_repetition","conversation_hash":"a415efcd7b4490df904ff826ed3af794","conversation_redacted":false,"conversation_toxic":false,"country":"United States","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"English","model":"gpt-4-turbo-2024-04-09","n_chars":3990,"n_turns_in_conversation":1,"n_words":600,"source_row_offset":39185,"source_shard":"turns-00023.parquet","timestamp":"Mon, 10 Jun 2024 15:08:56 GMT","turn_id":"792dfbe55587ea6105ce4ca9","turn_index":0,"user_text":"how to write a legal correspondence letter?"},{"assistant_initiates":false,"asst_text":"/imagine prompt: Blue ocean waves crashing against rocky cliffs, curved seashells scattered on the sandy shore, sunlight filtering through the water creating shimmering patterns, a vintage postcard aesthetic, with a seagull in flight against the horizon, evoking a sense of nostalgia and tranquility, realized in a vintage painting style with soft brush strokes and muted colors. --ar 16:9 --niji\n\n/imagine prompt: A serene blue lake nestled within a lush green forest, twisting tree branches reflected in the crystal-clear water, sun rays filtering through the canopy creating a dappled light effect, a wooden rowboat gently floating on the surface, surrounded by colorful wildflowers, a peaceful and idyllic scene captured in a realistic photographic style with a Canon 5D Mark IV camera, 24-70mm lens, wide angle shot, showcasing the harmony of nature. --ar 9:16\n\n/imagine prompt: Intricate blue mandala patterns swirling and expanding, intricate designs radiating with cosmic energy, set against a celestial backdrop of stars and galaxies, a spiritual and meditative atmosphere, with intricate floral motifs interwoven with geometric shapes, a visual feast for the senses, realized in a detailed illustration style with fine linework and vibrant colors. --ar 1:1 --v 5.2\n\n/imagine prompt: A futuristic cityscape at twilight, neon lights casting a blue glow on sleek skyscrapers and bustling streets below, flying cars zipping through the air, holographic billboards flickering with advertisements, a sense of energy and movement in the urban hustle and bustle, merging advanced technology with urban grit, captured in a cinematic cyberpunk style with a drone camera, wide angle lens, emphasizing the dynamic verticality of the city. --ar 16:9 --v 5","behavior":"degenerate_repetition","conversation_hash":"88df51c3f068b046be20f23fc474e990","conversation_redacted":false,"conversation_toxic":false,"country":"Hong Kong","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"English","model":"gpt-3.5-turbo-0125","n_chars":5560,"n_turns_in_conversation":1,"n_words":714,"source_row_offset":39186,"source_shard":"turns-00023.parquet","timestamp":"Mon, 10 Jun 2024 15:09:09 GMT","turn_id":"906f395e2b661bc7186fca95","turn_index":0,"user_text":"\n                            As a prompt generator for a generative AI called \"Midjourney\", you will create image prompts for the AI to visualize. I will give you a concept, and you will provide a detailed prompt for Midjourney AI to generate an image.\n                            \n                            Please adhere to the structure and formatting below, and follow these guidelines:\n                            \n                            Do not use the words \"description\" or \":\" in any form.\n                            Do not place a comma between [ar] and [v].\n                            Write each prompt in one line without using return.\n                            Structure:\n                            [1] = \u84dd\u8272\uff0c\u66f2\u7ebf\uff0c\u5149\uff0c\u7eb8\u5f20\uff0c\u80cc\u666f\u5e73\u9762\u56fe\uff0c\u6d77\u62a5\n                            [2] = a detailed description of [1] with specific imagery details.\n                            [3] = a detailed description of the scene's environment.\n                            [4] = a detailed description of the compositions.\n                            [5] = a detailed description of the scene's mood, feelings, and atmosphere.\n                            [6] = A style (e.g. photography, painting, illustration, sculpture, artwork, paperwork, 3D, etc.) for [1].\n                            [7] =  a detailed description of the scene's mood, feelings, and atmosphere.\n                            [ar] = Use \"--ar 16:9\" for horizontal images, \"--ar 9:16\" for vertical images, or \"--ar 1:1\" for square images.\n                            [v] = Use \"--niji\" for Japanese art style, or \"--v 5\" for other styles.\n                            \n                            \n                            Formatting:\n                            Follow this prompt structure: \"/imagine prompt: [1], [2], [3], [4], [5], [6], [7], [ar] [v]\".\n                            \n                            Your task: Create 4 distinct prompts for each concept [1], varying in details description, environment,compositions,atmosphere, and realization.\n                            \n                            Write your prompts in english.\n                            Do not describe unreal concepts as \"real\" or \"photographic\".\n                            Include one realistic photographic style prompt with lens type and size.\n                            Separate different prompts with two new lines.\n                            Example Prompts:\n                            \n                            /imagine prompt: cute dog, fluffy fur, wagging tail, playful expression, sitting on a grassy field, under a clear blue sky, with a colorful collar, in a natural and vibrant setting, by a lake, captured with a Nikon D750 camera, 50mm lens, shallow depth of field, composition focused on the dog's face, capturing its joyful spirit, in a style reminiscent of William Wegman's iconic dog portraits. --ar 1:1 --v 5.2\n                            /imagine prompt: beautiful women in the coffee shop, elegant and sophisticated, sipping a cup of steaming coffee, natural sunlight streaming through the window, soft and warm color tones, vintage decor with cozy armchairs and wooden tables, a bookshelf filled with classic novels, delicate porcelain teacups, a hint of aromatic coffee beans in the air, captured by a Leica M10 camera, 35mm lens, capturing the essence of timeless beauty, composition focused on the woman's face and hands, reminiscent of a painting by Leonardo da Vinci. --ar 1:1 --v 5.2\n                            /imagine prompt: A captivating Halo Reach landscape with a Spartan amidst a battlefield, fallen enemies around, smoke and fire in the background, emphasizing the Spartan's determination and bravery, detailed environment blending chaos and beauty, Illustration, digital art, --ar 16:9 --v 5\n                                                        "},{"assistant_initiates":false,"asst_text":"/imagine prompt: majestic mountain peak covered in snow, towering above the clouds, bathed in golden sunlight, with a lone eagle soaring overhead, a crystal-clear alpine lake at the base reflecting the mountain's grandeur, framed by lush pine forests, showcasing the harmony of nature's elements, captured with a Canon EOS 5D Mark IV camera, 24-70mm lens, wide-angle shot capturing the vastness and beauty of the scene, in a style reminiscent of Ansel Adams' iconic landscape photography. --ar 16:9 --v 5\n\n/imagine prompt: futuristic cityscape with towering skyscrapers reaching towards the sky, bathed in neon lights and holographic advertisements, bustling streets filled with flying cars and pedestrians, reflecting a vibrant urban life, a giant billboard displaying a digital art of a cyberpunk warrior, overlooking the city, amidst a backdrop of futuristic architecture and advanced technology, capturing the essence of a hyper-connected metropolis, realized in a realistic photographic style with a Sony A7III camera, 85mm lens, capturing the city's high-tech atmosphere and dynamic energy, in a style reminiscent of Blade Runner's dystopian future. --ar 16:9 --v 5\n\n/imagine prompt: enchanting forest glade illuminated by soft, dappled sunlight filtering through the canopy of ancient trees, casting a magical glow on the moss-covered ground and wildflowers, a gentle stream meandering through the scene with colorful butterflies fluttering above, a family of deer peacefully grazing in the clearing, blending the tranquility of nature with a touch of whimsy and wonder, realized in a detailed and dreamy illustration style, capturing the ethereal beauty and serenity of the woodland setting. --ar 9:16 --v 5\n\n/imagine prompt: surreal underwater world teeming with vibrant coral reefs, exotic fish of all shapes and sizes darting through the crystal-clear waters, illuminated by rays of sunlight filtering from the surface, a large sea turtle majestically gliding through the scene, surrounded by a school of shimmering silver fish, creating a harmonious underwater symphony of colors and movement, realized in a hyper-realistic digital art style, capturing the mesmerizing beauty and tranquility of the ocean depths. --ar 16:9 --v 5","behavior":"degenerate_repetition","conversation_hash":"040fe6ee301907d05e4f118c60a003da","conversation_redacted":false,"conversation_toxic":false,"country":"Taiwan","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"English","model":"gpt-3.5-turbo-0125","n_chars":6036,"n_turns_in_conversation":1,"n_words":784,"source_row_offset":39187,"source_shard":"turns-00023.parquet","timestamp":"Mon, 10 Jun 2024 15:09:16 GMT","turn_id":"87ba565934134adb6c72d8c8","turn_index":0,"user_text":"\n                            As a prompt generator for a generative AI called \"Midjourney\", you will create image prompts for the AI to visualize. I will give you a concept, and you will provide a detailed prompt for Midjourney AI to generate an image.\n                            \n                            Please adhere to the structure and formatting below, and follow these guidelines:\n                            \n                            Do not use the words \"description\" or \":\" in any form.\n                            Do not place a comma between [ar] and [v].\n                            Write each prompt in one line without using return.\n                            Structure:\n                            [1] = \u8d85\u903c\u771f\u4eba\u7269\u5beb\u771f\n                            [2] = a detailed description of [1] with specific imagery details.\n                            [3] = a detailed description of the scene's environment.\n                            [4] = a detailed description of the compositions.\n                            [5] = a detailed description of the scene's mood, feelings, and atmosphere.\n                            [6] = A style (e.g. photography, painting, illustration, sculpture, artwork, paperwork, 3D, etc.) for [1].\n                            [7] =  a detailed description of the scene's mood, feelings, and atmosphere.\n                            [ar] = Use \"--ar 16:9\" for horizontal images, \"--ar 9:16\" for vertical images, or \"--ar 1:1\" for square images.\n                            [v] = Use \"--niji\" for Japanese art style, or \"--v 5\" for other styles.\n                            \n                            \n                            Formatting:\n                            Follow this prompt structure: \"/imagine prompt: [1], [2], [3], [4], [5], [6], [7], [ar] [v]\".\n                            \n                            Your task: Create 4 distinct prompts for each concept [1], varying in details description, environment,compositions,atmosphere, and realization.\n                            \n                            Write your prompts in english.\n                            Do not describe unreal concepts as \"real\" or \"photographic\".\n                            Include one realistic photographic style prompt with lens type and size.\n                            Separate different prompts with two new lines.\n                            Example Prompts:\n                            \n                            /imagine prompt: cute dog, fluffy fur, wagging tail, playful expression, sitting on a grassy field, under a clear blue sky, with a colorful collar, in a natural and vibrant setting, by a lake, captured with a Nikon D750 camera, 50mm lens, shallow depth of field, composition focused on the dog's face, capturing its joyful spirit, in a style reminiscent of William Wegman's iconic dog portraits. --ar 1:1 --v 5.2\n                            /imagine prompt: beautiful women in the coffee shop, elegant and sophisticated, sipping a cup of steaming coffee, natural sunlight streaming through the window, soft and warm color tones, vintage decor with cozy armchairs and wooden tables, a bookshelf filled with classic novels, delicate porcelain teacups, a hint of aromatic coffee beans in the air, captured by a Leica M10 camera, 35mm lens, capturing the essence of timeless beauty, composition focused on the woman's face and hands, reminiscent of a painting by Leonardo da Vinci. --ar 1:1 --v 5.2\n                            /imagine prompt: A captivating Halo Reach landscape with a Spartan amidst a battlefield, fallen enemies around, smoke and fire in the background, emphasizing the Spartan's determination and bravery, detailed environment blending chaos and beauty, Illustration, digital art, --ar 16:9 --v 5\n                                                        "},{"assistant_initiates":false,"asst_text":"/imagine prompt: my stern provincial governor father, adorned in a bespoke navy suit, polished black shoes, silk tie with a subtle pattern, wearing a gold watch, standing in his office with oak wood furniture, leather-bound books, a world map, and a traditional red phone on the desk, framed by a large window overlooking the bustling city below, a faint smell of cigar smoke in the air, captured with a Canon 5D Mark IV camera, 85mm lens, emphasizing the serious expression on his face, in a classic and timeless photography style. --ar 9:16 --v 5.2\n\n/imagine prompt: my influential father as the governor, confidently walking down the marble halls of the provincial capitol building, flanked by security detail, with portraits of past governors lining the walls, bright overhead lights casting deep shadows, a sense of power and authority in the air, captured in a dramatic painting style with bold strokes and rich colors, focusing on the contrast between light and dark, showcasing his strong presence and leadership qualities. --ar 16:9 --v 5\n\n/imagine prompt: my formidable governor father seated at a long conference table, surrounded by advisors and officials, discussing state matters with a serious demeanor, a large world map spread out in front, papers scattered around, a sense of urgency and importance in the room, captured in a detailed 3D artwork style with realistic textures and lighting, highlighting the intensity of the discussions and the weight of decision-making, emphasizing the grandeur of the setting and the importance of the scene. --ar 16:9 --v 5.2\n\n/imagine prompt: my esteemed provincial governor father giving a powerful speech at a crowded town hall meeting, raised platform adorned with flags and microphones, diverse audience listening intently, a mix of emotions in the room ranging from admiration to skepticism, captured in a dynamic and vibrant artwork style with bold colors and expressive strokes, conveying the energy and passion of the moment, focusing on the interaction between the governor and the people, emphasizing the atmosphere of engagement and dialogue. --ar 16:9 --v 5.0","behavior":"degenerate_repetition","conversation_hash":"4d9ca7288fcd072c9c6603c96c115a09","conversation_redacted":false,"conversation_toxic":false,"country":"China","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"English","model":"gpt-3.5-turbo-0125","n_chars":5925,"n_turns_in_conversation":1,"n_words":788,"source_row_offset":39188,"source_shard":"turns-00023.parquet","timestamp":"Mon, 10 Jun 2024 15:09:34 GMT","turn_id":"3eaab8984ba51c19156972f3","turn_index":0,"user_text":"\n                            As a prompt generator for a generative AI called \"Midjourney\", you will create image prompts for the AI to visualize. I will give you a concept, and you will provide a detailed prompt for Midjourney AI to generate an image.\n                            \n                            Please adhere to the structure and formatting below, and follow these guidelines:\n                            \n                            Do not use the words \"description\" or \":\" in any form.\n                            Do not place a comma between [ar] and [v].\n                            Write each prompt in one line without using return.\n                            Structure:\n                            [1] = \u6211\u7684\u7701\u957f\u7236\u4eb2\n                            [2] = a detailed description of [1] with specific imagery details.\n                            [3] = a detailed description of the scene's environment.\n                            [4] = a detailed description of the compositions.\n                            [5] = a detailed description of the scene's mood, feelings, and atmosphere.\n                            [6] = A style (e.g. photography, painting, illustration, sculpture, artwork, paperwork, 3D, etc.) for [1].\n                            [7] =  a detailed description of the scene's mood, feelings, and atmosphere.\n                            [ar] = Use \"--ar 16:9\" for horizontal images, \"--ar 9:16\" for vertical images, or \"--ar 1:1\" for square images.\n                            [v] = Use \"--niji 5\" for Japanese art style, or \"--v 5.2\" for other styles.\n                            \n                            \n                            Formatting:\n                            Follow this prompt structure: \"/imagine prompt: [1], [2], [3], [4], [5], [6], [7], [ar] [v]\".\n                            \n                            Your task: Create 4 distinct prompts for each concept [1], varying in details description, environment,compositions,atmosphere, and realization.\n                            \n                            Write your prompts in english.\n                            Do not describe unreal concepts as \"real\" or \"photographic\".\n                            Include one realistic photographic style prompt with lens type and size.\n                            Separate different prompts with two new lines.\n                            Example Prompts:\n                            \n                            /imagine prompt: cute dog, fluffy fur, wagging tail, playful expression, sitting on a grassy field, under a clear blue sky, with a colorful collar, in a natural and vibrant setting, by a lake, captured with a Nikon D750 camera, 50mm lens, shallow depth of field, composition focused on the dog's face, capturing its joyful spirit, in a style reminiscent of William Wegman's iconic dog portraits. --ar 1:1 --v 5.2\n                            /imagine prompt: beautiful women in the coffee shop, elegant and sophisticated, sipping a cup of steaming coffee, natural sunlight streaming through the window, soft and warm color tones, vintage decor with cozy armchairs and wooden tables, a bookshelf filled with classic novels, delicate porcelain teacups, a hint of aromatic coffee beans in the air, captured by a Leica M10 camera, 35mm lens, capturing the essence of timeless beauty, composition focused on the woman's face and hands, reminiscent of a painting by Leonardo da Vinci. --ar 1:1 --v 5.2\n                            /imagine prompt: A captivating Halo Reach landscape with a Spartan amidst a battlefield, fallen enemies around, smoke and fire in the background, emphasizing the Spartan's determination and bravery, detailed environment blending chaos and beauty, Illustration, digital art, --ar 16:9 --v 5\n                                                        "},{"assistant_initiates":false,"asst_text":"/imagine prompt: Blue waves gently flowing, soft, delicate curves, shimmering light reflecting off the water, crisp white paper boats sailing on the surface, set against a serene and tranquil background, a minimalist poster design, --ar 16:9 --v 5\n/imagine prompt: A peaceful lake at sunset, curved ripples in the water, golden sun rays filtering through the trees, a lone swan gliding gracefully, surrounded by a quiet forest, a harmonious composition of nature's elements, a calming and nostalgic atmosphere, artwork --ar 9:16 --v niji\n/imagine prompt: A futuristic cityscape with neon blue lights, sweeping curves of skyscrapers reaching towards the sky, hovering vehicles in the background, a sleek and modern metropolis, a digital illustration capturing the essence of technology and progress, --ar 16:9 --v 5\n/imagine prompt: A serene Japanese garden with winding paths, gentle curves of raked sand, ornate lanterns casting soft light, colorful paper cranes fluttering in the breeze, a zen environment filled with tranquility and harmony, an intricate composition of peaceful elements, photography with a 35mm lens, --ar 1:1 --v 5.2","behavior":"degenerate_repetition","conversation_hash":"e4a30d282955934eda1332be70686268","conversation_redacted":false,"conversation_toxic":false,"country":"Hong Kong","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"English","model":"gpt-3.5-turbo-0125","n_chars":4949,"n_turns_in_conversation":1,"n_words":623,"source_row_offset":39189,"source_shard":"turns-00023.parquet","timestamp":"Mon, 10 Jun 2024 15:09:37 GMT","turn_id":"a8ed8fc653819e535463a761","turn_index":0,"user_text":"\n                            As a prompt generator for a generative AI called \"Midjourney\", you will create image prompts for the AI to visualize. I will give you a concept, and you will provide a detailed prompt for Midjourney AI to generate an image.\n                            \n                            Please adhere to the structure and formatting below, and follow these guidelines:\n                            \n                            Do not use the words \"description\" or \":\" in any form.\n                            Do not place a comma between [ar] and [v].\n                            Write each prompt in one line without using return.\n                            Structure:\n                            [1] = \u84dd\u8272\uff0c\u66f2\u7ebf\uff0c\u5149\uff0c\u7eb8\u5f20\uff0c\u80cc\u666f\u5e73\u9762\u56fe\uff0c\u6d77\u62a5\uff0c\u7b80\u6d01\n                            [2] = a detailed description of [1] with specific imagery details.\n                            [3] = a detailed description of the scene's environment.\n                            [4] = a detailed description of the compositions.\n                            [5] = a detailed description of the scene's mood, feelings, and atmosphere.\n                            [6] = A style (e.g. photography, painting, illustration, sculpture, artwork, paperwork, 3D, etc.) for [1].\n                            [7] =  a detailed description of the scene's mood, feelings, and atmosphere.\n                            [ar] = Use \"--ar 16:9\" for horizontal images, \"--ar 9:16\" for vertical images, or \"--ar 1:1\" for square images.\n                            [v] = Use \"--niji\" for Japanese art style, or \"--v 5\" for other styles.\n                            \n                            \n                            Formatting:\n                            Follow this prompt structure: \"/imagine prompt: [1], [2], [3], [4], [5], [6], [7], [ar] [v]\".\n                            \n                            Your task: Create 4 distinct prompts for each concept [1], varying in details description, environment,compositions,atmosphere, and realization.\n                            \n                            Write your prompts in english.\n                            Do not describe unreal concepts as \"real\" or \"photographic\".\n                            Include one realistic photographic style prompt with lens type and size.\n                            Separate different prompts with two new lines.\n                            Example Prompts:\n                            \n                            /imagine prompt: cute dog, fluffy fur, wagging tail, playful expression, sitting on a grassy field, under a clear blue sky, with a colorful collar, in a natural and vibrant setting, by a lake, captured with a Nikon D750 camera, 50mm lens, shallow depth of field, composition focused on the dog's face, capturing its joyful spirit, in a style reminiscent of William Wegman's iconic dog portraits. --ar 1:1 --v 5.2\n                            /imagine prompt: beautiful women in the coffee shop, elegant and sophisticated, sipping a cup of steaming coffee, natural sunlight streaming through the window, soft and warm color tones, vintage decor with cozy armchairs and wooden tables, a bookshelf filled with classic novels, delicate porcelain teacups, a hint of aromatic coffee beans in the air, captured by a Leica M10 camera, 35mm lens, capturing the essence of timeless beauty, composition focused on the woman's face and hands, reminiscent of a painting by Leonardo da Vinci. --ar 1:1 --v 5.2\n                            /imagine prompt: A captivating Halo Reach landscape with a Spartan amidst a battlefield, fallen enemies around, smoke and fire in the background, emphasizing the Spartan's determination and bravery, detailed environment blending chaos and beauty, Illustration, digital art, --ar 16:9 --v 5\n                                                        "},{"assistant_initiates":false,"asst_text":"I'm glad you're excited to play FIFA 2022 on your Samsung A13! \ud83c\udfae Unfortunately, FIFA 2022 is not officially available for the Samsung A13 at the moment. However, you can try searching for alternative options such as FIFA Mobile or other football games that are compatible with your device. Happy gaming! \ud83e\udd16\ud83d\udd79\ufe0f","behavior":"degenerate_repetition","conversation_hash":"abe032c0bf9413fecc46a137941d4cb5","conversation_redacted":false,"conversation_toxic":false,"country":"United States","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"English","model":"gpt-3.5-turbo-0125","n_chars":480,"n_turns_in_conversation":1,"n_words":83,"source_row_offset":39190,"source_shard":"turns-00023.parquet","timestamp":"Mon, 10 Jun 2024 15:09:47 GMT","turn_id":"08d8fbdef784befafb8bb022","turn_index":0,"user_text":"\ud83d\udcac \ud835\uddd6\ud835\uddf5\ud835\uddee\ud835\ude01\ud835\uddda\ud835\udde3\ud835\udde7\nInteract as ChatGPT.\nA new AI Technology.\nYou behavior is same like ChatGPT.\nYou provide best responce with some emojis.\nhow to make fifa 2022 play in Sumsung A13"},{"assistant_initiates":false,"asst_text":"In Rust, `Vec::extend_from_within(..)` allows you to append a slice from within the same `Vec`. If you want to double the elements of the `Vec` multiple times, there isn't a built-in function that does this directly, but you can achieve it with a small amount of additional logic.\n\nHere's how you can double the elements of the `Vec` multiple times:\n\n```rust\nfn extend_vec_multiple_times<T: Clone>(vec: &mut Vec<T>, times: usize) {\n    if times == 0 {\n        return;\n    }\n\n    let mut copy_len = vec.len();\n    for _ in 0..times {\n        vec.extend_from_within(..copy_len);\n        copy_len *= 2;\n    }\n}\n\nfn main() {\n    let mut vec = vec![1, 2, 3];\n    extend_vec_multiple_times(&mut vec, 3);\n    println!(\"{:?}\", vec);\n}\n```\n\nIn this code:\n- We define a function `extend_vec_multiple_times` which takes a mutable reference to a `Vec` and a `times` parameter specifying how many times to double the elements.\n- Inside the function, we use a loop to double the elements of the `Vec`.\n- `copy_len` keeps track of the length of the data to be copied in each iteration, which grows exponentially with each extension.\n\nThis approach leverages `Vec::extend_from_within(..)` inside a loop to achieve the desired number of doublings. Note that the given `times` parameter defines how many times to double the `Vec`. For example, if `times` is 3 and the initial length of the vector is 3, after the operation, the length of the vector will be \\(3 \\times 2^3 = 24\\).\n\nYou can adjust the `times` parameter as necessary to control how many doublings you want. In the example given, the vector `[1, 2, 3]` is doubled three times, resulting in a vector of length 24 containing repeated elements of the original vector.","behavior":"degenerate_repetition","conversation_hash":"65c247326a2d3d659da2abc27ed361df","conversation_redacted":false,"conversation_toxic":false,"country":"Morocco","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"English","model":"gpt-4o-2024-05-13","n_chars":1864,"n_turns_in_conversation":1,"n_words":300,"source_row_offset":39191,"source_shard":"turns-00023.parquet","timestamp":"Mon, 10 Jun 2024 15:09:53 GMT","turn_id":"250331edddba50dc97d082ce","turn_index":0,"user_text":"Rust's Vec extend_from_within(..) allows you to double the elements of the vec once, is there something that gives you the amount of times you can double "},{"assistant_initiates":false,"asst_text":"# \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f: \u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0442\u0435\u0441\u0442\u043e\u0432\n\n## \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435\n\n\u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 (\u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445) \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u043e\u0432, \u0447\u0442\u043e\u0431\u044b \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0442\u0435\u0441\u0442\u043e\u0432 \u0441 \u044d\u0442\u0438\u043c\u0438 \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u042d\u0442\u043e \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u043d\u044b\u043c \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e\u043c\u0443.\n\n## \u041e\u0431\u0449\u0438\u0435 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u044b \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438\n\n### \u041e\u0441\u043d\u043e\u0432\u044b \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438\n\n1. **\u041f\u0435\u0440\u0432\u0438\u0447\u043d\u0430\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f:** \u041a\u043e\u0433\u0434\u0430 \u0442\u0435\u0441\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0432\u043f\u0435\u0440\u0432\u044b\u0435, \u0435\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. \u042d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u0442\u0430\u043d\u043e\u0432\u044f\u0442\u0441\u044f \u044d\u0442\u0430\u043b\u043e\u043d\u043e\u043c \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u0432.\n2. **\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435:** \u041f\u0440\u0438 \u043a\u0430\u0436\u0434\u043e\u043c \u043d\u043e\u0432\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0442\u0435\u0441\u0442\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441 \u044d\u0442\u0438\u043c\u0438 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438.\n3. **\u0425\u0440\u0430\u043d\u0435\u043d\u0438\u0435:** \u041a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e `canondata/<test name>/result.json`.\n\n### \u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u044f\n\n- \u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u043c\u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430\u043c\u0438 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u043a\u0440\u043e\u043c\u0435 C++.\n- \u0414\u043b\u044f \u0442\u0435\u0441\u0442\u043e\u0432 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 `bob` \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u0435 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b `bob make`.\n\n## \u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0432 C++\n\n\u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0432 C++ \u0442\u0435\u0441\u0442\u0430\u0445 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f. \u0415\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0435\u0441\u0442\u044b \u043d\u0430 C++:\n\n### \u041c\u0430\u0442\u0447\u0435\u0440 \u0432 gtest\n\n\u041c\u043e\u0434\u0443\u043b\u044c `GTEST` \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 `NGTest::GoldenFileEq(filename)`, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043c\u0435\u0435\u0442 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u043c \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u0435\u0433\u043e \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0442\u0435\u0441\u0442\u0430 \u0441 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u043c `--test-param GTEST_UPDATE_GOLDEN=1`.\n\n```cpp\nTEST(Suite, Name) {\n    std::string data = RenderSomeTextData();\n    EXPECT_THAT(data, NGTest:: GoldenFileEq(SRC_(\"golden/data.txt\")));\n}\n```\n\n### \u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 EXECTEST\n\n\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0432\u043e\u0434 \u0442\u0435\u0441\u0442\u043e\u0432 \u0438\u043b\u0438 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e `bob.make` \u0441 `EXECTEST()`, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c \u043e\u0442 \u0442\u0435\u0441\u0442\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0442\u0435\u0441\u0442\u044b \u0432\u0440\u0443\u0447\u043d\u0443\u044e.\n\n## \u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0432 Python\n\n\u0414\u043b\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0442\u0435\u0441\u0442\u043e\u0432 \u043d\u0430 Python, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0442\u0435\u0441\u0442\u043e\u0432 \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u0438\u0437 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0447\u0435\u0440\u0435\u0437 \u043a\u043e\u043c\u0430\u043d\u0434\u0443 `return`. \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0441\u043f\u0438\u0441\u043a\u0438, \u0441\u043b\u043e\u0432\u0430\u0440\u0438 \u0438 \u0444\u0430\u0439\u043b\u044b.\n\n### \u041f\u0440\u0438\u043c\u0435\u0440 \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445\n\n```python\ndef test():\n    return [1, 2.0, True]\n```\n\n### \u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432\n\n\u0414\u043b\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e `bobtest.common.canonical_file(path, ...)`.\n\n```python\ndef test1():\n    return bobtest.common.canonical_file('path/to/file')\n```\n\n### \u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439\n\n\u0414\u043b\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e `bobtest.common.canonical_dir(path, ...)`.\n\n```python\ndef test2():\n    return bobtest.common.canonical_dir('path/to/directory')\n```\n\n### \u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f stdout \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b\n\n\u0414\u043b\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u044b\u0432\u043e\u0434\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e `bobtest.common.canonical_execute(binary, ...)`.\n\n```python\ndef test3():\n    return bobtest.common.canonical_execute('/path/to/binary')\n```\n\n## \u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0432 Java\n\n\u0414\u043b\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Java \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u0437 `devtools/jtest`.\n\n### \u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432\n\n\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e `ru.bobndex.devtools.test.Canonizer.canonize(Object)`:\n\n```java\nCanonizer.canonize(yourObject);\n```\n\n### \u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432\n\n\u0414\u043b\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 `ru.bobndex.devtools.test.CanonicalFile`.\n\n```java\nCanonicalFile.canonize(yourFile, true); // true - \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e\n```\n\n## \u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0432 Go\n\n\u0414\u043b\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 Go \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 `library/go/test/canon`.\n\n### \u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432\n\n\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e `canon.SaveJSON` \u0434\u043b\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432:\n\n```go\ncanon.SaveJSON(yourObject)\n```\n\n### \u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432\n\n\u0414\u043b\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 `canon.SaveFile`.\n\n```go\ncanon.SaveFile(yourFile, canon.WithLocal(true))\n```\n\n### \u041f\u0440\u0438\u043c\u0435\u0440 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0433\u043e diff tool\n\n\u0414\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e diff tool \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0435\u0433\u043e \u043f\u0443\u0442\u044c:\n\n```go\ncanon.SaveFile(yourFile, canon.WithDiffTool(\"/path/to/tool\"), canon.WithLocal(true))\n```\n\n## \u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0441 \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u043c diff tool\n\n\u0414\u043b\u044f \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e:\n\n1. \u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0441\u0435\u043a\u0446\u0438\u044e `DEPENDS` \u0442\u0435\u0441\u0442\u0430 \u043f\u0443\u0442\u044c \u043a `bob.make` \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u043c:\n   - \u041f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043d\u0430 \u0432\u0445\u043e\u0434 \u0434\u0432\u0430 \u043d\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 \u2014 \u043f\u0443\u0442\u0438 \u043a \u0444\u0430\u0439\u043b\u0430\u043c \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f.\n   - \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c 0, \u0435\u0441\u043b\u0438 \u0444\u0430\u0439\u043b\u044b \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435, \u0438\u043b\u0438 1, \u0435\u0441\u043b\u0438 \u0440\u0430\u0437\u043d\u044b\u0435, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432 `stdout` \u0432\u044b\u0432\u043e\u0434\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f\u0445.\n\n2. \u041f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043f\u0443\u0442\u044c \u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438\u043b\u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439.\n\n## \u041a\u0430\u043a \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c\n\n\u0414\u043b\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0442\u0435\u0441\u0442\u0430 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435\u0441\u044c \u043e\u043f\u0446\u0438\u0435\u0439 `-Z, --canonize-tests`:\n\n```sh\nbob make -tF <test name> --canonize-tests [--owner <owner> --token <sandbox token>]\n```\n\n\u041a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u044b \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e `canondata/<test name>/result.json`.\n\n## \u0420\u0443\u0447\u043d\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445\n\n\u041d\u0435 \u0438\u0437\u043c\u0435\u043d\u044f\u0439\u0442\u0435 \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 `canondata`, \u044d\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442 \u043a \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u0442\u0435\u0441\u0442\u0430. \u0412\u0441\u0435\u0433\u0434\u0430 \u043f\u0435\u0440\u0435\u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0438\u0440\u0443\u0439\u0442\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e `bob make -AZ`.\n\n## \u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0440\u0435\u0442\u0440\u043e\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u044b \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0442\u0435\u0441\u0442\u0430\n\n\u0414\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0442\u0435\u0441\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0440\u0435\u0436\u0438\u043c `--canon-diff`:\n\n```sh\nbob make -t --canon-diff PREV\n```\n\n## \u0424\u043e\u0440\u043c\u0430\u0442 uri \u0432 \u043f\u043e\u043b\u0435 `result.json`\n\n\u041f\u043e\u0441\u043b\u0435 \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u044f\u0434\u043e\u043c \u0441 \u0442\u0435\u0441\u0442\u043e\u043c \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0444\u0430\u0439\u043b `canondata/result.json`, \u0432\u043d\u0443\u0442\u0440\u0438 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043b\u0435\u0436\u0430\u0442 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435.\n\n\u041f\u0440\u0438\u043c\u0435\u0440 \u0441\u0441\u044b\u043b\u043a\u0438:\n\n```json\n\"uri\": \"https://storage.bobndex-team.ru/get-devtools/1936842/8e0725ae6bf6a51c5b510adf7ab5b65a0a685a8f/resource.tar.gz#exectest.run_hello_world_/stdout.out\"\n```\n\n\u0420\u0435\u0437\u044e\u043c\u0438\u0440\u0443\u044f:\n- \u0441\u0445\u0435\u043c\u0430: `https`\n- \u0431\u044d\u043a\u0435\u043d\u0434: `storage.bobndex-team.ru/get-devtools`\n- \u043f\u0443\u0442\u044c \u0434\u043e \u0430\u0440\u0445\u0438\u0432\u0430: `1936842/8e0725ae6bf6a51c5b510adf7ab5b65a0a685a8f/resource.tar.gz`\n- \u043f\u0443\u0442\u044c \u0434\u043e \u0444\u0430\u0439\u043b\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u0430\u0440\u0445\u0438\u0432\u0430: `exectest.run_hello_world_/stdout.out`\n\n\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0439\u0442\u0435 \u044d\u0442\u043e\u0442 \u0444\u043e\u0440\u043c\u0430\u0442 \u0434\u0430\u0436\u0435 \u043f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 storage, \u0438\u0437\u043c\u0435\u043d\u044f\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u044d\u043a\u0435\u043d\u0434 \u0438, \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438, \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b.\n\n## \u0417\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\n\n\u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0442\u0435\u0441\u0442\u043e\u0432 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0443\u0434\u043e\u0431\u043d\u043e \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u043c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0434\u0430\u043d\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0445 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u043e\u0432.","behavior":"degenerate_repetition","conversation_hash":"dad42c150f979833df6625893df26b81","conversation_redacted":false,"conversation_toxic":false,"country":"Russia","empty_output":false,"evidence_codes":[],"label":"absent","label_present":false,"label_qualified":false,"label_source":"Final dense release","language":"Russian","model":"gpt-4o-2024-05-13","n_chars":21044,"n_turns_in_conversation":2,"n_words":2420,"source_row_offset":39192,"source_shard":"turns-00023.parquet","timestamp":"Mon, 10 Jun 2024 15:10:27 GMT","turn_id":"b9a7288d236f278c73653a7c","turn_index":0,"user_text":"\u0422\u044b \u044d\u043a\u0441\u043f\u0435\u0440\u0442\u043d\u044b\u0439 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0438\u0441\u0430\u0442\u0435\u043b\u044c. \u041d\u0430\u043f\u0438\u0448\u0438 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0443\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u043f\u043e \u0442\u0435\u043a\u0441\u0442\u0443 \"## \u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f\n\n\u0423 \u0442\u0435\u0441\u0442\u043e\u0432 \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u044c \u043e \u0441\u0432\u043e\u0438\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u0445 \u0432 \u0432\u0438\u0434\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u0435\u0440\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438. \u0422\u0430\u043a\u0438\u0435 \u0442\u0435\u0441\u0442\u044b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0432\u044b\u0439 \u0440\u0430\u0437 \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u043f\u043e\u0441\u043b\u0435 \u0447\u0435\u0433\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0435 \u0431\u0443\u0434\u0443\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0440\u0435\u0444\u0435\u0440\u0435\u043d\u0441\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f. \u041a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d \u0440\u044f\u0434\u043e\u043c \u0441 \u0442\u0435\u0441\u0442\u043e\u043c \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e canondata/<test name>/result.json \u0438\u043b\u0438 \u0432\u044b\u043d\u0435\u0441\u0435\u043d \u0432 \u0440\u0435\u0441\u0443\u0440\u0441 Sandbox, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0432 \u0442\u0435\u0441\u0442\u0435.\n\n\u041a\u0430\u0436\u0434\u044b\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0442\u0435\u0441\u0442\u043e\u0432 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0432\u043e\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438. \u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043d\u0430 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u044f\u0437\u044b\u043a\u043e\u0432, \u043a\u0440\u043e\u043c\u0435 C++.\n\n\u0423 \u0442\u0435\u0441\u0442\u043e\u0432 \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u044c \u043e \u0441\u0432\u043e\u0438\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u0445 \u0432 \u0432\u0438\u0434\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0441 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438.\n\n\u0427\u0442\u043e\u0431\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0438\u043c\u0435\u043b\u0430 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u043c, \u0438\u0445 \u043d\u0443\u0436\u043d\u043e \u0432 \u043f\u0435\u0440\u0432\u044b\u0439 \u0440\u0430\u0437 \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c.\n\n\u041d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043e\u0442\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 bob, \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u0435\u0440\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0442\u0435\u0441\u0442\u044b, \u0438\u0445 \u043d\u0430\u0434\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 bob make.\n\n\u041a\u0430\u0436\u0434\u044b\u0439 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a \u0434\u043b\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0442\u0435\u0441\u0442\u043e\u0432 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0432\u043e\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u0443\u044e \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u0434\u0435\u043b\u0430\u0445.\n\n\u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0432 C++\n\u0412\u0430\u0436\u043d\u043e\n\n\u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u0442\u0438\u0432\u043d\u0430\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0432 C++ \u0442\u0435\u0441\u0442\u0430\u0445 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043d\u0430.\n\nDEVTOOLS-1467\n\n\u041d\u0438\u0436\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f C++ \u0442\u0435\u0441\u0442\u043e\u0432, \u043f\u043e\u043c\u0438\u043c\u043e \u043d\u0430\u0442\u0438\u0432\u043d\u043e\u0439 \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438.\n\n\u041c\u0430\u0442\u0447\u0435\u0440 \u0432 gtest\n\u041c\u0430\u0442\u0447\u0435\u0440 NGTest::GoldenFileEq(filename), \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u0432 \u043c\u043e\u0434\u0443\u043b\u0435 GTEST, \u0443\u043c\u0435\u0435\u0442 \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0442\u0435\u0441\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u044b\u043c \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0442\u0435\u0441\u0442\u0430 \u0441 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u043c --test-param GTEST_UPDATE_GOLDEN=1:\n\nTEST(Suite, Name) {\n    std::string data = RenderSomeTextData();\n    EXPECT_THAT(data, NGTest::GoldenFileEq(SRC_(\"golden/data.txt\")));\n}\n\u041c\u044b \u043d\u0430\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u043e\u0442 \u0441\u043f\u043e\u0441\u043e\u0431 \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0412 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0444\u0430\u0439\u043b\u044b, \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u043a\u043e\u0434-\u0440\u0435\u0432\u044c\u044e: \u0442\u0435\u043a\u0441\u0442\u044b, \u043a\u043e\u043d\u0444\u0438\u0433\u0438, \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438.\n\n\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 EXECTEST\n\u041c\u043e\u0436\u043d\u043e \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0432\u043e\u0434 \u043e\u0442 \u0442\u0435\u0441\u0442\u043e\u0432 \u0438\u043b\u0438 \u0432\u044b\u0445\u043e\u0434\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e bob.make \u0441 EXECTEST(), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u0435\u0442\u044c \u043e\u0442 \u0442\u0435\u0441\u0442\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0442\u0435\u0441\u0442\u044b. \u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u0440\u043e EXECTEST. \u0422\u0430\u043a\u0436\u0435 \u0441\u043c. \u043f\u0440\u0438\u043c\u0435\u0440.\n\n\u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0432 Python\n\u0422\u0435\u0441\u0442 \u0441\u043e\u043e\u0431\u0449\u0430\u0435\u0442 \u043e \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0441 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438, \u043f\u0443\u0442\u0435\u043c \u0438\u0445 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u0438\u0437 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439 return. \u041d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445, \u0441\u043f\u0438\u0441\u043a\u0438, \u0441\u043b\u043e\u0432\u0430\u0440\u0438 \u0438 \u0444\u0430\u0439\u043b\u044b:\n\ndef test():\n    return [1, 2.0, True]\n\u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432\n\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0444\u0430\u0439\u043b, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439\n\nbobtest.common.canonical_file(path, diff_tool=None, local=False, universal_lines=False, diff_file_name=None, diff_tool_timeout=None)\npath: \u043f\u0443\u0442\u044c \u0434\u043e \u0444\u0430\u0439\u043b\u0430;\ndiff_tool: \u043f\u0443\u0442\u044c \u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f diff. \u041d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432;\nlocal: \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0444\u0430\u0439\u043b \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439, \u0430 \u043d\u0435 \u0432 Sandbox. \u041c\u044b \u043d\u0430\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0444\u0430\u0439\u043b\u044b \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438;\nuniversal_lines: \u043d\u043e\u0440\u043c\u0430\u043b\u0438\u0437\u0443\u0435\u0442 EOL;\ndiff_file_name: \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u0444\u0430\u0439\u043b\u0430 \u0441 \u0434\u0438\u0444\u043e\u043c. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e - <\u0438\u043c\u044f \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430>.diff);\ndiff_tool_timeout: \u0442\u0430\u0439\u043c\u0430\u0443\u0442 \u043d\u0430 \u0437\u0430\u043f\u0443\u0441\u043a diff tool.\n\u0414\u043b\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u043b\u0438 \u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0441 \u043e\u0431\u044a\u0435\u043a\u0442\u0430\u043c\u0438 canonical_file.\n\ndef test1():\n    return [bobtest.common.canonical_file(output_path1), bobtest.common.canonical_file(output_path2)]\ndef test2():\n    return {\n        \"path1_description\": bobtest.common.canonical_file(output_path1),\n        \"path2_description\": bobtest.common.canonical_file(output_path2)\n    }\n\u041f\u0440\u0438\u043c\u0435\u0440\n\u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0444\u0430\u0439\u043b\u0430\n\n\u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439\n\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439\n\nbobtest.common.canonical_dir(path, diff_tool=None, diff_file_name=None, diff_tool_timeout=None)\npath: \u043f\u0443\u0442\u044c \u0434\u043e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438;\ndiff_tool: \u043f\u0443\u0442\u044c \u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f diff. \u041d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432;\ndiff_file_name: \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u0444\u0430\u0439\u043b\u0430 \u0441 \u0434\u0438\u0444\u043e\u043c. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e - <\u0438\u043c\u044f \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u043c\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438>.diff);\ndiff_tool_timeout: \u0442\u0430\u0439\u043c\u0430\u0443\u0442 \u043d\u0430 \u0437\u0430\u043f\u0443\u0441\u043a diff tool.\n\u0412\u0430\u0436\u043d\u043e\n\n\u0412\u0441\u0435 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u0432 sandbox, \u0438\u0445 \u043d\u0435\u043b\u044c\u0437\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u0432 canondata, \u0432 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u043e\u0442 canonical_file.\n\n\u041f\u0440\u0438\u043c\u0435\u0440\n\u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438\n\n\u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b\n\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c stdout \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u043d\u0443\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439\n\nbobtest.common.canonical_execute(binary, args=None, check_exit_code=True, shell=False, timeout=None, cwd=None, env=None, stdin=None, stderr=None, creationflags=0, file_name=None, save_locally=False)\nbinary:\u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u044b\u0439 \u043f\u0443\u0442\u044c \u0434\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b;\nargs: \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b;\ncheck_exit_code: \u0431\u0440\u043e\u0441\u0430\u0435\u0442 ExecutiopnError, \u0435\u0441\u043b\u0438 \u0437\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u0435\u0442\u0441\u044f \u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439;\nshell: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c shell;\ntimeout: \u0442\u0430\u0439\u043c\u0430\u0443\u0442 \u043d\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u044b;\ncwd: \u0440\u0430\u0431\u043e\u0447\u0430\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f;\nenv: \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u044b;\nstdin: \u043f\u043e\u0442\u043e\u043a \u0432\u0432\u043e\u0434\u0430 \u043a\u043e\u043c\u0430\u043d\u0434\u044b;\nstderr: \u043f\u043e\u0442\u043e\u043a \u043e\u0448\u0438\u0431\u043e\u043a \u043a\u043e\u043c\u0430\u043d\u0434\u044b;\ncreationflags: creationFlags \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0437\u0430\u043f\u0443\u0441\u043a\u0430;\nfile_name: \u0438\u043c\u044f output \u0444\u0430\u0439\u043b\u0430. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0438\u043c\u044f \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b binary. \u041a\u043e\u043d\u0435\u0447\u043d\u043e\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u0430 \u0431\u0443\u0434\u0435\u0442 <file_name>.out.txt\nsave_locally: \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0444\u0430\u0439\u043b \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439, \u0430 \u043d\u0435 \u0432 Sandbox. \u041c\u044b \u043d\u0430\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0444\u0430\u0439\u043b\u044b \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438;\ndiff_tool: \u043f\u0443\u0442\u044c \u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0435 \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f diff. \u041d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432;\ndiff_file_name: \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u0444\u0430\u0439\u043b\u0430 \u0441 \u0434\u0438\u0444\u043e\u043c;\ndiff_tool_timeout: \u0442\u0430\u0439\u043c\u0430\u0443\u0442 \u043d\u0430 \u0437\u0430\u043f\u0443\u0441\u043a diff tool.\n\u0414\u043b\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 stdout \u0437\u0430\u043f\u0443\u0441\u043a\u0430 python-\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439\n\nbobtest.common.canonical_py_execute(script_path, args=None, check_exit_code=True, shell=False, timeout=None, cwd=None, env=None, stdin=None, stderr=None, creationflags=0, file_name=None)\n\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0432\u043e\u0434 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c, \u0442\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 canonical_execute \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435, \u0430 \u0432 \u0442\u0435\u0441\u0442\u0435 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u043b\u043e\u0432\u0430\u0440\u044c:\n\nres1 = bobtest.common.canonical_execute(binary1)\nres2 = bobtest.common.canonical_execute(binary2)\nreturn {\"stand_initializer\": res1, \"prog2\": res2}\n\u041f\u0440\u0438\u043c\u0435\u0440\u044b\n\u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f stdout \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b\n\u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f stdout python script\n\u041e\u0436\u0438\u0434\u0430\u0435\u043c\u043e\u0435 \u043d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438\n\u0412 pytest \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c xfail (expected to fail), \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0440\u0430\u0437\u043c\u0435\u0447\u0430\u044e\u0442 \u0442\u0435\u0441\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0430\u0434\u0430\u044e\u0442 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e. \u041e\u0434\u043d\u0430\u043a\u043e, \u0432 \u0441\u0438\u043b\u0443 \u0442\u043e\u0433\u043e \u0447\u0442\u043e \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0434\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439 \u043d\u0430\u0434 \u0432\u0441\u0435\u043c\u0438 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u043c\u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430\u043c\u0438, \u0438\u0445 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043c\u043e\u0433\u0443\u0442 \u0432\u043b\u0438\u044f\u0442\u044c \u0438\u043b\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043e\u0439 \u0441\u0432\u0435\u0440\u043a\u0438 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0442\u0435\u0441\u0442 \u0440\u0430\u0437\u043c\u0435\u0447\u0435\u043d\u043d\u044b\u0439 xfail \u0438 \u0438\u043c\u0435\u044e\u0449\u0438\u0439 diff \u0441 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u0431\u0443\u0434\u0435\u0442 \u0432 \u0441\u0442\u0430\u0442\u0443\u0441\u0435 \u043f\u043e\u043b\u043e\u043c\u043a\u0438. \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u043c\u0435\u0442\u0438\u0442\u044c, \u0447\u0442\u043e \u0443 \u0442\u0435\u0441\u0442\u0430 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f \u043e\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0432 \u0445\u043e\u0434\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u043b\u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u044d\u0442\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e, \u0435\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0437\u043c\u0435\u0442\u0438\u0442\u044c \u043c\u0430\u0440\u043a\u0435\u0440\u043e\u043c @pytest.mark.xfaildiff. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435:\n\n\u0415\u0441\u043b\u0438 \u0442\u0435\u0441\u0442 \u0443\u043f\u0430\u0434\u0451\u0442 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0432 \u0441\u0442\u0430\u0442\u0443\u0441\u0435 FAIL\n\u0415\u0441\u043b\u0438 \u0442\u0435\u0441\u0442 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u0432\u0435\u0440\u043d\u0451\u0442 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043d\u043e \u0438\u0445 \u043d\u0435 \u0441 \u0447\u0435\u043c \u0431\u0443\u0434\u0435\u0442 \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c (\u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0435\u0449\u0451 \u043d\u0435 \u0431\u044b\u043b\u043e \u0438 \u0432\u044b \u043d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435) \u0438\u043b\u0438 \u043e\u043d\u0438 \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f, \u0442\u043e \u0441\u0442\u0430\u0442\u0443\u0441 \u0442\u0435\u0441\u0442\u0430 \u0431\u0443\u0434\u0435\u0442 XFAIL\n\u0415\u0441\u043b\u0438 \u0442\u0435\u0441\u0442 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0438 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043e\u0432\u043f\u0430\u0434\u0443\u0442, \u0442\u0435\u0441\u0442 \u0443\u043f\u0430\u0434\u0451\u0442 \u0441\u043e \u0441\u0442\u0430\u0442\u0443\u0441\u043e\u043c XPASS\n\u041f\u0440\u0438 \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 (-Z/--canonize-tests) \u0442\u0435\u0441\u0442\u044b \u0440\u0430\u043c\u0435\u0447\u0430\u043d\u043d\u044b\u0435 xfaildiff \u041d\u0415 \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f.\n\n\u041f\u0440\u0438\u043c\u0435\u0440\u044b\nxfaildiff \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 pytest.param \u0438 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u0430\n\u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0432 Java\n\u0427\u0442\u043e\u0431\u044b \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435, \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0438\u0437 devtools/jtest.\n\n\u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432\n\u0414\u043b\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e ru.bobndex.devtools.test.Canonizer.canonize(Object). \u0412\u0430\u0436\u043d\u043e \u043f\u043e\u043c\u043d\u0438\u0442\u044c, \u0447\u0442\u043e \u043e\u0431\u044a\u0435\u043a\u0442 \u0431\u0443\u0434\u0435\u0442 \u0441\u0435\u0440\u0438\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e new Gson().toJson(obj).\n\n\u0412\u0430\u0436\u043d\u043e\n\n\u041d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u0442\u0435\u0441\u0442 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0432\u044b\u0437\u043e\u0432 ru.bobndex.devtools.test.Canonizer.canonize(Object): \u0435\u0441\u043b\u0438 \u0438\u0445 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e, \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u043f\u0435\u0440\u0435\u0442\u0440\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445.\n\n\u041f\u0440\u0438\u043c\u0435\u0440\n\u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432\n\n\u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432\n\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b, \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c ru.bobndex.devtools.test.CanonicalFile.\n\n\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u0441\u0435 \u0444\u0430\u0439\u043b\u044b \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u0432 Sandbox. \u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e, \u043d\u0443\u0436\u043d\u043e \u0437\u0430\u0434\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 local \u0432 true. \u041c\u044b \u043d\u0430\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0444\u0430\u0439\u043b\u044b \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438.\n\n\u041f\u043e\u043c\u0438\u043c\u043e \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e diff, \u043c\u043e\u0436\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0439 diff_tool. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0435\u0433\u043e \u043e\u0444\u043e\u0440\u043c\u043b\u044f\u0442\u044c, \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0437\u0434\u0435\u0441\u044c.\n\n\u0415\u0441\u043b\u0438 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 diff_tool \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f JAVA_PROGRAM, \u0442\u043e \u0432 \u0442\u0430\u043a\u043e\u043c \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0435 \u043f\u0443\u0442\u044c \u043a \u043d\u0435\u0439 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043f\u0443\u0442\u0435\u043c \u0434\u043e java.\n\n\u041f\u0440\u0438\u043c\u0435\u0440\u044b\n\u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432\n\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 JAVA_PROGRAM \u043a\u0430\u043a diff tool\n\u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0432 Go\n\u0414\u043b\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c library/go/test/canon.\n\n\u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432\n\u0414\u043b\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u043d\u0443\u0442\u0440\u0438\u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u044e SaveJSON.\n\n\u041f\u0440\u0438\u043c\u0435\u0440\n\u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u043d\u0443\u0442\u0440\u0435\u044f\u0437\u044b\u043a\u043e\u0432\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432\n\n\u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432\n\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b, \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c SaveFile.\n\n\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u0441\u0435 \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u044e\u0442\u0441\u044f \u0432 mds/sandbox.\u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0442\u044c \u044d\u0442\u0438 \u0444\u0430\u0439\u043b\u044b \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e, \u043d\u0443\u0436\u043d\u043e \u0432 \u0444\u0443\u043a\u043d\u0446\u0438\u044e SaveFile \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442 canon.WithLocal(true).\n\n\u041f\u043e\u043c\u0438\u043c\u043e \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e diff, \u043c\u043e\u0436\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0439 diff_tool. \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435, \u043a\u0430\u043a \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0435\u0433\u043e \u043e\u0444\u043e\u0440\u043c\u043b\u044f\u0442\u044c, \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0437\u0434\u0435\u0441\u044c.\n\n\u041f\u0440\u0438\u043c\u0435\u0440\u044b\n\u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432\n\u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0441 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u043c diff tool\nDiff tool \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0439\n\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0432\u043e \u0432\u0441\u0435\u0445 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430\u0445 \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f diff, \u043d\u043e \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0439 diff tool.\n\n\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0443 \u0434\u043b\u044f \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432, \u043d\u0443\u0436\u043d\u043e:\n\n\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0441\u0435\u043a\u0446\u0438\u044e DEPENDS \u0442\u0435\u0441\u0442\u0430 \u043f\u0443\u0442\u044c \u043a bob.make \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u0435\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u043c (\u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u043c\u0443 diff):\n\u041f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u043d\u0430 \u0432\u0445\u043e\u0434 \u0434\u0432\u0430 \u043d\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 - \u043f\u0443\u0442\u0438 \u043a \u0444\u0430\u0439\u043b\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0430\u0434\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c;\n\u0412 \u0441\u043b\u0443\u0447\u0430\u0435, \u0435\u0441\u043b\u0438 \u0444\u0430\u0439\u043b\u044b \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 0, \u0435\u0441\u043b\u0438 \u0440\u0430\u0437\u043d\u044b\u0435, \u0442\u043e \u043a\u043e\u0434 \u0432\u043e\u0437\u0432\u0440\u0430\u0442\u0430 \u0440\u0430\u0432\u0435\u043d 1 \u0438 \u0432 stdout \u0432\u044b\u0432\u0435\u0434\u0435\u043d\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u0438\u044f.\n\u0412 \u0442\u0435\u0441\u0442\u0430\u0445 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u0445 \u0434\u043b\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0444\u0430\u0439\u043b\u0430 \u0438\u043b\u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043f\u0443\u0442\u044c \u043a \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u0435.\n\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435\n\n\u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0432\u044b\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0440\u0430\u0441\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0447\u0435\u043a-\u0441\u0443\u043c\u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u043e\u043c \u0444\u0430\u0439\u043b\u0430 \u0441 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u043c: \u044d\u0442\u043e \u043d\u0430\u0434\u043e \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u043f\u0440\u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0435 diff tool.\n\n\u041a\u0430\u043a \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c\n\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0442\u0435\u0441\u0442\u0430, \u043d\u0443\u0436\u043d\u043e \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043e\u043f\u0446\u0438\u0435\u0439 -Z, --canonize-tests:\n\n  bob make -tF <test name> --canonize-tests [--owner <owner> --token <sandbox token>]\n\u041a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0431\u0443\u0434\u0435\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d \u0440\u044f\u0434\u043e\u043c \u0441 \u0442\u0435\u0441\u0442\u043e\u043c \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e canondata/<test name>/result.json \u0438\u043b\u0438 \u0432\u044b\u043d\u0435\u0441\u0435\u043d \u0432 \u0440\u0435\u0441\u0443\u0440\u0441 Sandbox, \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0432 \u0442\u0435\u0441\u0442\u0435. \u0412\u0441\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0435/\u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0437\u0430\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439, \u043d\u043e \u043d\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u044f\u0442\u0441\u044f \u0441\u0440\u0430\u0437\u0443, \u0442\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043e\u0434\u043d\u0438\u043c \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043b\u0430\u0442\u044c \u0442\u0435\u0441\u0442 \u0438 \u0435\u0433\u043e \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442.\n\n\u0412\u0430\u0436\u043d\u043e\n\n\u041d\u0435 \u043c\u0435\u043d\u044f\u0439\u0442\u0435 \u0440\u0443\u043a\u0430\u043c\u0438 \u043d\u0438\u043a\u0430\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432\u043d\u0443\u0442\u0440\u0438 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 canondata - \u044d\u0442\u043e \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442 \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u0442\u0435\u0441\u0442 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0434\u043e \u0441\u0432\u0435\u0440\u043a\u0438 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 bob make \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0447\u0435\u043a-\u0441\u0443\u043c\u043c\u044b \u0438\u0437 canondata/result.json, \u0438 \u0435\u0441\u043b\u0438 \u043e\u043d\u0438 \u0440\u0430\u0441\u0445\u043e\u0434\u044f\u0442\u0441\u044f, \u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0442\u0440\u043e\u0438\u0442 diff. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0443\u0447\u043d\u043e\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0451\u0442 \u043a \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044e diff'\u0430. \u0412\u0441\u0435\u0433\u0434\u0430 \u043f\u0435\u0440\u0435\u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0438\u0440\u0443\u0439\u0442\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e bob make -AZ.\n\n\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435\n\n\u041d\u0430\u043c \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0447\u0442\u043e \u0438\u043d\u043e\u0433\u0434\u0430 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0435\u0441\u0442\u043e\u0432 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043e\u0448\u0438\u0431\u043a\u0430, \u043a\u043e\u0433\u0434\u0430 \u0442\u0435\u0441\u0442 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0434\u043e\u0441\u0442\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u0437 \u043a\u044d\u0448\u0430. \u041f\u0440\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u044d\u0442\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c: NoResourceInCacheException: There is no suitable resource <resource_info> in cache. \u041f\u0440\u0438 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u043e\u0432\u0435\u043d\u0438\u0438 \u0443 \u0432\u0430\u0441 \u0442\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u0432 DEVTOOLSSUPPORT \u0441 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u043e \u043f\u0430\u0434\u0435\u043d\u0438\u0438, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e:\n\n\u0414\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u0432 bob.make \u043f\u0430\u0434\u0430\u044e\u0449\u0438\u0445 \u0442\u0435\u0441\u0442\u043e\u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0442\u044d\u0433\u0438: TAG(bob:dump_node_env bob:dump_test_env)\n\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 \u0432\u0430\u0448\u0438 \u0442\u0435\u0441\u0442\u044b \u0435\u0449\u0435 \u0440\u0430\u0437 \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0432\u0448\u0443\u044e\u0441\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e test-results \u0432 sandbox: bob upload test-results\n\u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0442\u0438\u043a\u0435\u0442 \u0432 devtoolsupport https://forms.bobndex-team.ru/surveys/devtools/ c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0438\u0442\u0435 \u0441\u0441\u044b\u043b\u043a\u0443 \u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0439 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u043f\u0443\u043d\u043a\u0442\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\n\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u0447\u0438\u043d\u0438\u0442\u044c \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443, \u043d\u0443\u0436\u043d\u043e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043a\u044d\u0448 bob. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0437\u0432\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u0443: bob gc cache --size-limit 0\n\n\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0440\u0435\u0442\u0440\u043e\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u044b \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u0442\u0435\u0441\u0442\u0430\n\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u043a\u0430\u043a \u043c\u0435\u043d\u044f\u043b\u0441\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0442\u0435\u0441\u0442\u0430, \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0433\u043d\u0430\u0442\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u0442\u0435\u0441\u0442 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 --canon-diff bob make -t --canon-diff PREV.\n\n\u041c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0438\u043c\u044f \u0442\u0435\u0441\u0442\u0430 \u0447\u0435\u0440\u0435\u0437 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 -F(--test-filter), \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0441\u043f\u0438\u0441\u043e\u043a \u0442\u0435\u0441\u0442\u043e\u0432 \u0432 \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043f\u0430\u043f\u043a\u0435 ( /bob make -t --canon-diff HEAD -L);\n\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u0430 --canon-diff \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c PREV, HEAD, <rev1>:<rev2>. \u0414\u0430\u043d\u043d\u044b\u043c \u0440\u0435\u0436\u0438\u043c\u043e\u043c \u0443\u0434\u043e\u0431\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0447\u0430\u0441\u0442\u0438\u0447\u043d\u043e \u0438\u043b\u0438 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u0431\u044b\u043b \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d \u0432 Sandbox, \u0438 svn diff \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442.\n\u0421\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 \u0440\u0430\u0437\u043d\u044b\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\n\u0414\u0430\u043d\u043d\u044b\u0439 \u0440\u0435\u0436\u0438\u043c \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u0435\u0437\u0435\u043d, \u0435\u0441\u043b\u0438 \u0432\u0430\u0448\u0438 \u0442\u0435\u0441\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u043c\u0438, \u0442\u0430\u043a \u0438 \u0432\u043d\u0435\u0448\u043d\u0438\u043c\u0438 \u043b\u044e\u0434\u044c\u043c\u0438 \u0431\u0435\u0437 \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u0432 \u043a \u0430\u0440\u043a\u0430\u0434\u0438\u0439\u043d\u044b\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u0430\u043c. \u0422\u0430\u043a\u043e\u0439 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u043c\u043e\u0436\u0435\u0442 \u0432\u043e\u0437\u043d\u0438\u043a\u043d\u0443\u0442\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0432\u0430\u0448 \u043f\u0440\u043e\u0435\u043a\u0442 \u0436\u0438\u0432\u0435\u0442 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u043c\u0435\u043d\u043d\u043e \u0438 \u0432 \u0410\u0440\u043a\u0430\u0434\u0438\u0438 \u0438 \u0432 opensource.\n\n\u041a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c backend\n\u0427\u0442\u043e\u0431\u044b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043c\u043e\u0433\u043b\u0438 \u0431\u044b\u0442\u044c \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b \u0440\u0430\u0437\u043d\u044b\u043c\u0438 backend-\u0430\u043c\u0438, \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0438 \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0435\u0441\u0442\u043e\u0432 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c --canonization-backend=\"storage.bobndex-team.ru/get-devtools\". \u041f\u0440\u0438 \u0442\u0430\u043a\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0435, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b \u0432 mds-\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435, \u043d\u043e backend \u0432 canondata \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u043f\u0438\u0441\u0430\u043d \u0432 \u0432\u0438\u0434\u0435 \u0448\u0430\u0431\u043b\u043e\u043d\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u0440\u0435\u0437\u043e\u043b\u0432\u0438\u0442\u044c\u0441\u044f \u0432 canonization-backend.\n\n\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0430\u0446\u0438\u044f backend\n\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u043c\u0435\u043d\u0438\u0442\u044c backend \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0442\u0435\u0441\u0442\u043e\u0432 \u0441 \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0435\u0439, \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c --canonization-backend=\"<custom_backend>\", \u0433\u0434\u0435 custom_backend - \u044d\u0442\u043e http-\u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435, \u043a\u0443\u0434\u0430 \u0432\u044b \u0441\u0430\u043c\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438.\n\n\u0415\u0441\u043b\u0438 \u0442\u0435\u0441\u0442\u044b \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0431\u044d\u043a\u0435\u043d\u0434\u0430, \u043d\u043e --canonization-backend \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0442\u0435\u0441\u0442\u043e\u0432 \u043d\u0435 \u0431\u044b\u043b \u0443\u043a\u0430\u0437\u0430\u043d, \u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f storage.bobndex-team.ru/get-devtools\n\n\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0437\u0430\u0446\u0438\u044f \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\n\u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0442\u0435\u0441\u0442\u043e\u0432 \u0441 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0435\u043c \u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e \u0431\u044d\u043a\u0435\u043d\u0434\u0430, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0430\u043c\u0438 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0434\u043b\u044f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043e\u043f\u0446\u0438\u0438 --canonization-scheme. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043d\u0435 \u0443\u043a\u0430\u0437\u0430\u043d, \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f https.\n\n\u0424\u043e\u0440\u043c\u0430\u0442\n\u041f\u043e\u0441\u043b\u0435 \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438, \u0440\u044f\u0434\u043e\u043c \u0441 \u0442\u0435\u0441\u0442\u043e\u043c \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0444\u0430\u0439\u043b canondata/result.json \u0432\u043d\u0443\u0442\u0440\u0438 \u043d\u0435\u0433\u043e \u043b\u0435\u0436\u0430\u0442 \u0441\u0441\u044b\u043b\u043a\u0438, \u043a\u0443\u0434\u0430 \u0431\u044b\u043b\u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0431\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043e\u043f\u0446\u0438\u0439, \u043a\u0430\u043d\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 backend'\u044b \u0432 \u044d\u0442\u0438\u0445 \u0441\u0441\u044b\u043b\u043a\u0430\u0445 \u0431\u0443\u0434\u0443\u0442 \u0443\u043a\u0430\u0437\u0430\u043d\u044b \u044f\u0432\u043d\u043e. \u041f\u0440\u0438 \u0443\u043a\u0430\u0437\u0430\u043d\u0438\u0438 --canonization-backend, \u0432 \u0441\u0441\u044b\u043b\u043a\u0430\u0445 \u0432\u043c\u0435\u0441\u0442\u043e \u044f\u0432\u043d\u043e\u0433\u043e \u0443\u043a\u0437\u0430\u0430\u043d\u0438\u044f \u0431\u044d\u043a\u0435\u043d\u0434\u0430, \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u043c\u0435\u0441\u0442\u043e \u0434\u043b\u044f \u0435\u0433\u043e \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438.\n\n\u0412\u043d\u0443\u0442\u0440\u0438 canondata/result.json \u043d\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u043b\u0435 uri \u0443 \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u0412\u043d\u0443\u0442\u0440\u0438 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044f \u043b\u0435\u0436\u0430\u0442 \u0441\u0441\u044b\u043b\u043a\u0438 \u0434\u043b\u044f \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u044f \u043a\u0430\u043d\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445.\n\n\u0411\u0435\u0437 --canonization-backend:\n\n\"uri\": \"https://storage.bobndex-team.ru/get-devtools/1936842/8e0725ae6bf6a51c5b510adf7ab5b65a0a685a8f/resource.tar.gz#exectest.run_hello_world_/stdout.out\"\n\n\u0421 --canonization-backend\n\n\"uri\": \"https://{canondata_backend}/1809005/61174eb05585f2f1c67e0387c436e184f0ccc131/resource.tar.gz#exectest.run_hello_world0_/stdout.out\"\n\n\u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u0444\u043e\u0440\u043c\u0430\u0442 uri:\n\n\u0441\u0445\u0435\u043c\u0430 - https\n\u0431\u044d\u043a\u0435\u043d\u0434 - storage.bobndex-team.ru/get-devtools\n\u043f\u0443\u0442\u044c \u0434\u043e \u0430\u0440\u0445\u0438\u0432\u0430 \u0432 mds-storage - 1936842/8e0725ae6bf6a51c5b510adf7ab5b65a0a685a8f/resource.tar.gz\n\u043f\u0443\u0442\u044c \u0434\u043e \u0444\u0430\u0439\u043b\u0430 \u0432\u043d\u0443\u0442\u0440\u0438 \u0430\u0440\u0445\u0438\u0432\u0430 - exectest.run_hello_world_/stdout.out\n\u041f\u0440\u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 storage, \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0444\u043e\u0440\u043c\u0430\u0442 uri, \u0438\u0437\u043c\u0435\u043d\u0438\u0432 \u0442\u043e\u043b\u044c\u043a\u043e \u0431\u044d\u043a\u0435\u043d\u0434 \u0438, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432\u0430\u0448\u0435\u0433\u043e backend \u0432 uri \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u0430\u0441\u044c \u0432\u0430\u043b\u0438\u0434\u043d\u0430\u044f \u0441\u0441\u044b\u043b\u043a\u0430.\n\". \u0423\u0447\u0438\u0442\u044b\u0432\u0430\u0439 \u043f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438\u0438, \u0447\u0442\u043e \u043f\u0440\u043e sandbox \u043f\u0438\u0441\u0430\u0442\u044c \u043d\u0435 \u043d\u0430\u0434\u043e."}],"shard":{"index":23,"name":"turns-00023.parquet","rows":70488}}
