Full Code of SimonCropp/WaffleGenerator for AI

main 04504833cb55 cached
56 files
153.4 KB
37.8k tokens
73 symbols
1 requests
Download .txt
Repository: SimonCropp/WaffleGenerator
Branch: main
Commit: 04504833cb55
Files: 56
Total size: 153.4 KB

Directory structure:
gitextract_pa37ucf7/

├── .editorconfig
├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── config.yml
│   │   └── feature_request.md
│   ├── dependabot.yml
│   ├── stale.yml
│   └── workflows/
│       ├── merge-dependabot.yml
│       ├── milestone-release.yml
│       └── on-push-do-doco.yml
├── .gitignore
├── RedGateLicense.txt
├── code_of_conduct.md
├── license.txt
├── readme.md
└── src/
    ├── Directory.Build.props
    ├── Directory.Packages.props
    ├── Shared.sln.DotSettings
    ├── Tests/
    │   ├── FakerUsage.cs
    │   ├── GlobalUsings.cs
    │   ├── ModuleInitializer.cs
    │   ├── Tests.csproj
    │   ├── WaffleEngineTests.HtmlWaffleMultiple.verified.txt
    │   ├── WaffleEngineTests.HtmlWaffleMultipleWithHeadAndBody.verified.txt
    │   ├── WaffleEngineTests.HtmlWaffleNoHeading.verified.txt
    │   ├── WaffleEngineTests.HtmlWaffleNoHeadingWithHeadAndBody.verified.txt
    │   ├── WaffleEngineTests.HtmlWaffleSingle.verified.txt
    │   ├── WaffleEngineTests.HtmlWaffleSingleWithHeadAndBody.verified.txt
    │   ├── WaffleEngineTests.MarkdownWaffleMultiple.verified.md
    │   ├── WaffleEngineTests.MarkdownWaffleNoHeading.verified.md
    │   ├── WaffleEngineTests.MarkdownWaffleSingle.verified.md
    │   ├── WaffleEngineTests.TextWaffleMultiple.verified.txt
    │   ├── WaffleEngineTests.TextWaffleNoHeading.verified.txt
    │   ├── WaffleEngineTests.TextWaffleSingle.verified.txt
    │   ├── WaffleEngineTests.Title.verified.txt
    │   └── WaffleEngineTests.cs
    ├── WaffleGenerator/
    │   ├── AssemblyInfo.cs
    │   ├── Constants.cs
    │   ├── Extensions.cs
    │   ├── Heading.cs
    │   ├── InnerEngine.cs
    │   ├── Paragraph.cs
    │   ├── WaffleContent.cs
    │   ├── WaffleEngine.cs
    │   └── WaffleGenerator.csproj
    ├── WaffleGenerator.Bogus/
    │   ├── Waffle.cs
    │   ├── WaffleGenerator.Bogus.csproj
    │   └── WaffleGeneratorExtensions.cs
    ├── WaffleGenerator.slnx
    ├── WaffleGenerator.slnx.DotSettings
    ├── appveyor.yml
    ├── global.json
    ├── key.snk
    ├── mdsnippets.json
    └── nuget.config

================================================
FILE CONTENTS
================================================

================================================
FILE: .editorconfig
================================================
root = true

[*]
indent_style = space
end_of_line = lf
insert_final_newline = true

[*.cs]
indent_size = 4
charset = utf-8

# Redundant accessor body
resharper_redundant_accessor_body_highlighting = error

# Replace with field keyword
resharper_replace_with_field_keyword_highlighting = error

# Replace with single call to Single(..)
resharper_replace_with_single_call_to_single_highlighting = error

# Replace with single call to SingleOrDefault(..)
resharper_replace_with_single_call_to_single_or_default_highlighting = error

# Replace with single call to LastOrDefault(..)
resharper_replace_with_single_call_to_last_or_default_highlighting = error

# Element is localizable
resharper_localizable_element_highlighting = none

# Replace with single call to Last(..)
resharper_replace_with_single_call_to_last_highlighting = error

# Replace with single call to First(..)
resharper_replace_with_single_call_to_first_highlighting = error

# Replace with single call to FirstOrDefault(..)
resharper_replace_with_single_call_to_first_or_default_highlighting = error

# Replace with single call to Any(..)
resharper_replace_with_single_call_to_any_highlighting = error

# Simplify negative equality expression
resharper_negative_equality_expression_highlighting = error

# Replace with single call to Count(..)
resharper_replace_with_single_call_to_count_highlighting = error

# Declare types in namespaces
dotnet_diagnostic.CA1050.severity = none

# Use Literals Where Appropriate
dotnet_diagnostic.CA1802.severity = error

# Template should be a static expression
dotnet_diagnostic.CA2254.severity = error

# Potentially misleading parameter name in lambda or local function
resharper_all_underscore_local_parameter_name_highlighting = none

# Redundant explicit collection creation in argument of 'params' parameter
resharper_redundant_explicit_params_array_creation_highlighting = error

# Do not initialize unnecessarily
dotnet_diagnostic.CA1805.severity = error

# Avoid unsealed attributes
dotnet_diagnostic.CA1813.severity = error

# Test for empty strings using string length
dotnet_diagnostic.CA1820.severity = none

# Remove empty finalizers
dotnet_diagnostic.CA1821.severity = error

# Mark members as static
dotnet_diagnostic.CA1822.severity = error

# Avoid unused private fields
dotnet_diagnostic.CA1823.severity = error

# Avoid zero-length array allocations
dotnet_diagnostic.CA1825.severity = error

# Use property instead of Linq Enumerable method
dotnet_diagnostic.CA1826.severity = error

# Do not use Count()/LongCount() when Any() can be used
dotnet_diagnostic.CA1827.severity = error
dotnet_diagnostic.CA1828.severity = error

# Use Length/Count property instead of Enumerable.Count method
dotnet_diagnostic.CA1829.severity = error

# Prefer strongly-typed Append and Insert method overloads on StringBuilder
dotnet_diagnostic.CA1830.severity = error

# Use AsSpan instead of Range-based indexers for string when appropriate
dotnet_diagnostic.CA1831.severity = error

# Use AsSpan instead of Range-based indexers for string when appropriate
dotnet_diagnostic.CA1831.severity = error
dotnet_diagnostic.CA1832.severity = error
dotnet_diagnostic.CA1833.severity = error

# Use StringBuilder.Append(char) for single character strings
dotnet_diagnostic.CA1834.severity = error

# Prefer IsEmpty over Count when available
dotnet_diagnostic.CA1836.severity = error

# Prefer IsEmpty over Count when available
dotnet_diagnostic.CA1836.severity = error

# Use Environment.ProcessId instead of Process.GetCurrentProcess().Id
dotnet_diagnostic.CA1837.severity = error

# Use Environment.ProcessPath instead of Process.GetCurrentProcess().MainModule.FileName
dotnet_diagnostic.CA1839.severity = error

# Use Environment.CurrentManagedThreadId instead of Thread.CurrentThread.ManagedThreadId
dotnet_diagnostic.CA1840.severity = error

# Prefer Dictionary Contains methods
dotnet_diagnostic.CA1841.severity = error

# Do not use WhenAll with a single task
dotnet_diagnostic.CA1842.severity = error

# Do not use WhenAll/WaitAll with a single task
dotnet_diagnostic.CA1842.severity = error
dotnet_diagnostic.CA1843.severity = error

# Use span-based 'string.Concat'
dotnet_diagnostic.CA1845.severity = error

# Prefer AsSpan over Substring
dotnet_diagnostic.CA1846.severity = error

# Use string.Contains(char) instead of string.Contains(string) with single characters
dotnet_diagnostic.CA1847.severity = error

# Prefer static HashData method over ComputeHash
dotnet_diagnostic.CA1850.severity = error

# Possible multiple enumerations of IEnumerable collection
dotnet_diagnostic.CA1851.severity = error

# Unnecessary call to Dictionary.ContainsKey(key)
dotnet_diagnostic.CA1853.severity = error

# Prefer the IDictionary.TryGetValue(TKey, out TValue) method
dotnet_diagnostic.CA1854.severity = error

# Use Span<T>.Clear() instead of Span<T>.Fill()
dotnet_diagnostic.CA1855.severity = error

# Incorrect usage of ConstantExpected attribute
dotnet_diagnostic.CA1856.severity = error

# The parameter expects a constant for optimal performance
dotnet_diagnostic.CA1857.severity = error

# Use StartsWith instead of IndexOf
dotnet_diagnostic.CA1858.severity = error

# Avoid using Enumerable.Any() extension method
dotnet_diagnostic.CA1860.severity = error

# Avoid constant arrays as arguments
dotnet_diagnostic.CA1861.severity = error

# Use the StringComparison method overloads to perform case-insensitive string comparisons
dotnet_diagnostic.CA1862.severity = error

# Prefer the IDictionary.TryAdd(TKey, TValue) method
dotnet_diagnostic.CA1864.severity = error

# Use string.Method(char) instead of string.Method(string) for string with single char
dotnet_diagnostic.CA1865.severity = error
dotnet_diagnostic.CA1866.severity = error
dotnet_diagnostic.CA1867.severity = error

# Unnecessary call to 'Contains' for sets
dotnet_diagnostic.CA1868.severity = error

# Cache and reuse 'JsonSerializerOptions' instances
dotnet_diagnostic.CA1869.severity = error

# Use a cached 'SearchValues' instance
dotnet_diagnostic.CA1870.severity = error

# Microsoft .NET properties
trim_trailing_whitespace = true
csharp_preferred_modifier_order = public, private, protected, internal, new, static, abstract, virtual, sealed, readonly, override, extern, unsafe, volatile, async:suggestion
resharper_namespace_body = file_scoped
dotnet_naming_rule.private_constants_rule.severity = warning
dotnet_naming_rule.private_constants_rule.style = lower_camel_case_style
dotnet_naming_rule.private_constants_rule.symbols = private_constants_symbols
dotnet_naming_rule.private_instance_fields_rule.severity = warning
dotnet_naming_rule.private_instance_fields_rule.style = lower_camel_case_style
dotnet_naming_rule.private_instance_fields_rule.symbols = private_instance_fields_symbols
dotnet_naming_rule.private_static_fields_rule.severity = warning
dotnet_naming_rule.private_static_fields_rule.style = lower_camel_case_style
dotnet_naming_rule.private_static_fields_rule.symbols = private_static_fields_symbols
dotnet_naming_rule.private_static_readonly_rule.severity = warning
dotnet_naming_rule.private_static_readonly_rule.style = lower_camel_case_style
dotnet_naming_rule.private_static_readonly_rule.symbols = private_static_readonly_symbols
dotnet_naming_style.lower_camel_case_style.capitalization = camel_case
dotnet_naming_style.upper_camel_case_style.capitalization = pascal_case
dotnet_naming_symbols.private_constants_symbols.applicable_accessibilities = private
dotnet_naming_symbols.private_constants_symbols.applicable_kinds = field
dotnet_naming_symbols.private_constants_symbols.required_modifiers = const
dotnet_naming_symbols.private_instance_fields_symbols.applicable_accessibilities = private
dotnet_naming_symbols.private_instance_fields_symbols.applicable_kinds = field
dotnet_naming_symbols.private_static_fields_symbols.applicable_accessibilities = private
dotnet_naming_symbols.private_static_fields_symbols.applicable_kinds = field
dotnet_naming_symbols.private_static_fields_symbols.required_modifiers = static
dotnet_naming_symbols.private_static_readonly_symbols.applicable_accessibilities = private
dotnet_naming_symbols.private_static_readonly_symbols.applicable_kinds = field
dotnet_naming_symbols.private_static_readonly_symbols.required_modifiers = static, readonly
dotnet_style_parentheses_in_arithmetic_binary_operators = never_if_unnecessary:none
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:none
dotnet_style_parentheses_in_relational_binary_operators = never_if_unnecessary:none

# ReSharper properties
resharper_object_creation_when_type_not_evident = target_typed

# ReSharper inspection severities
resharper_arrange_object_creation_when_type_evident_highlighting = error
resharper_arrange_object_creation_when_type_not_evident_highlighting = error
resharper_arrange_redundant_parentheses_highlighting = error
resharper_arrange_static_member_qualifier_highlighting = error
resharper_arrange_this_qualifier_highlighting = error
resharper_arrange_type_member_modifiers_highlighting = none
resharper_built_in_type_reference_style_for_member_access_highlighting = hint
resharper_built_in_type_reference_style_highlighting = hint
resharper_check_namespace_highlighting = none
resharper_convert_to_using_declaration_highlighting = error
resharper_field_can_be_made_read_only_local_highlighting = none
resharper_merge_into_logical_pattern_highlighting = warning
resharper_merge_into_pattern_highlighting = error
resharper_method_has_async_overload_highlighting = warning
# because stop rider giving errors before source generators have run
resharper_partial_type_with_single_part_highlighting = warning
resharper_redundant_base_qualifier_highlighting = warning
resharper_redundant_cast_highlighting = error
resharper_redundant_empty_object_creation_argument_list_highlighting = error
resharper_redundant_empty_object_or_collection_initializer_highlighting = error
resharper_redundant_name_qualifier_highlighting = error
resharper_redundant_suppress_nullable_warning_expression_highlighting = error
resharper_redundant_using_directive_highlighting = error
resharper_redundant_verbatim_string_prefix_highlighting = error
resharper_redundant_lambda_signature_parentheses_highlighting = error
resharper_replace_substring_with_range_indexer_highlighting = warning
resharper_suggest_var_or_type_built_in_types_highlighting = error
resharper_suggest_var_or_type_elsewhere_highlighting = error
resharper_suggest_var_or_type_simple_types_highlighting = error
resharper_unnecessary_whitespace_highlighting = error
resharper_use_await_using_highlighting = warning
resharper_use_deconstruction_highlighting = warning

# Sort using and Import directives with System.* appearing first
dotnet_sort_system_directives_first = true

# Avoid "this." and "Me." if not necessary
dotnet_style_qualification_for_field = false:error
dotnet_style_qualification_for_property = false:error
dotnet_style_qualification_for_method = false:error
dotnet_style_qualification_for_event = false:error

# Use language keywords instead of framework type names for type references
dotnet_style_predefined_type_for_locals_parameters_members = true:error
dotnet_style_predefined_type_for_member_access = true:error

# Suggest more modern language features when available
dotnet_style_object_initializer = true:error
dotnet_style_collection_initializer = true:error
dotnet_style_coalesce_expression = false:error
dotnet_style_null_propagation = true:error
dotnet_style_explicit_tuple_names = true:error

# Use collection expression syntax
resharper_use_collection_expression_highlighting = error

# Prefer "var" everywhere
csharp_style_var_for_built_in_types = true:error
csharp_style_var_when_type_is_apparent = true:error
csharp_style_var_elsewhere = true:error

# Prefer method-like constructs to have a block body
csharp_style_expression_bodied_methods = true:error
csharp_style_expression_bodied_local_functions = true:error
csharp_style_expression_bodied_constructors = true:error
csharp_style_expression_bodied_operators = true:error
resharper_place_expr_method_on_single_line = false

# Prefer property-like constructs to have an expression-body
csharp_style_expression_bodied_properties = true:error
csharp_style_expression_bodied_indexers = true:error
csharp_style_expression_bodied_accessors = true:error

# Suggest more modern language features when available
csharp_style_pattern_matching_over_is_with_cast_check = true:error
csharp_style_pattern_matching_over_as_with_null_check = true:error
csharp_style_inlined_variable_declaration = true:suggestion
csharp_style_throw_expression = true:suggestion
csharp_style_conditional_delegate_call = true:suggestion

# Newline settings
#csharp_new_line_before_open_brace = all:error
resharper_max_array_initializer_elements_on_line = 1
csharp_new_line_before_else = true
csharp_new_line_before_catch = true
csharp_new_line_before_finally = true
csharp_new_line_before_members_in_object_initializers = true
csharp_new_line_before_members_in_anonymous_types = true
resharper_wrap_before_first_type_parameter_constraint = true
resharper_wrap_extends_list_style = chop_always
resharper_wrap_after_dot_in_method_calls = false
resharper_wrap_before_binary_pattern_op = false
resharper_wrap_object_and_collection_initializer_style = chop_always
resharper_place_simple_initializer_on_single_line = false

# space
resharper_space_around_lambda_arrow = true

dotnet_style_require_accessibility_modifiers = never:error
resharper_place_type_constraints_on_same_line = false
resharper_blank_lines_inside_namespace = 0
resharper_blank_lines_after_file_scoped_namespace_directive = 1
resharper_blank_lines_inside_type = 0

resharper_place_attribute_on_same_line = false

#braces https://www.jetbrains.com/help/resharper/EditorConfig_CSHARP_CSharpCodeStylePageImplSchema.html#Braces
resharper_braces_for_ifelse = required
resharper_braces_for_foreach = required
resharper_braces_for_while = required
resharper_braces_for_dowhile = required
resharper_braces_for_lock = required
resharper_braces_for_fixed = required
resharper_braces_for_for = required

resharper_return_value_of_pure_method_is_not_used_highlighting = error

resharper_member_hides_interface_member_with_default_implementation_highlighting = error

resharper_misleading_body_like_statement_highlighting = error

resharper_redundant_record_class_keyword_highlighting = error

resharper_redundant_extends_list_entry_highlighting = error

resharper_redundant_type_arguments_inside_nameof_highlighting = error

# Xml files
[*.{xml,config,nuspec,resx,vsixmanifest,csproj,targets,props,fsproj}]
indent_size = 2
# https://www.jetbrains.com/help/resharper/EditorConfig_XML_XmlCodeStylePageSchema.html#resharper_xml_blank_line_after_pi
resharper_blank_line_after_pi = false
resharper_space_before_self_closing = true
ij_xml_space_inside_empty_tag = true

[*.json]
indent_size = 2

# Verify settings
[*.{received,verified}.{txt,xml,json,md,sql,csv,html,htm,nuspec,rels}]
charset = utf-8-bom
end_of_line = lf
indent_size = unset
indent_style = unset
insert_final_newline = false
tab_width = unset
trim_trailing_whitespace = false

================================================
FILE: .gitattributes
================================================
* text=auto eol=lf
*.png binary
*.snk binary


*.verified.txt text eol=lf working-tree-encoding=UTF-8
*.verified.xml text eol=lf working-tree-encoding=UTF-8
*.verified.json text eol=lf working-tree-encoding=UTF-8

.editorconfig text eol=lf working-tree-encoding=UTF-8
*.sln.DotSettings text eol=lf working-tree-encoding=UTF-8
*.slnx.DotSettings text eol=lf working-tree-encoding=UTF-8

================================================
FILE: .github/FUNDING.yml
================================================
github: SimonCropp


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug fix
about: Create a bug fix to help us improve
---

Note: New issues raised, where it is clear the submitter has not read the issue template, are likely to be closed with "please read the issue template". Please don't take offense at this. It is simply a time management decision. If someone raises an issue, and can't be bothered to spend the time to read the issue template, then the project maintainers should not be expected to spend the time to read the submitted issue. Often too much time is spent going back and forth in issue comments asking for information that is outlined in the issue template.


#### Preamble

Where relevant, ensure you are using the current stable versions on your development stack. For example:

 * Visual Studio
 * [.NET SDK or .NET Core SDK](https://www.microsoft.com/net/download)
 * Any related NuGet packages

Any code or stack traces must be properly formatted with [GitHub markdown](https://guides.github.com/features/mastering-markdown/).


#### Describe the bug

A clear and concise description of what the bug is. Include any relevant version information.

A clear and concise description of what you expected to happen.

Add any other context about the problem here.


#### Minimal Repro

Ensure you have replicated the bug in a minimal solution with the fewest moving parts. Often this will help point to the true cause of the problem. Upload this repro as part of the issue, preferably a public GitHub repository or a downloadable zip. The repro will allow the maintainers of this project to smoke test the any fix.

#### Submit a PR that fixes the bug

Submit a [Pull Request (PR)](https://help.github.com/articles/about-pull-requests/) that fixes the bug. Include in this PR a test that verifies the fix. If you were not able to fix the bug, a PR that illustrates your partial progress will suffice.


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false

================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: How to raise feature requests
---


Note: New issues raised, where it is clear the submitter has not read the issue template, are likely to be closed with "please read the issue template". Please don't take offense at this. It is simply a time management decision. If someone raises an issue, and can't be bothered to spend the time to read the issue template, then the project maintainers should not be expected to spend the time to read the submitted issue. Often too much time is spent going back and forth in issue comments asking for information that is outlined in the issue template.

If you are certain the feature will be accepted, it is better to raise a [Pull Request (PR)](https://help.github.com/articles/about-pull-requests/).

If you are uncertain if the feature will be accepted, outline the proposal below to confirm it is viable, prior to raising a PR that implements the feature.

Note that even if the feature is a good idea and viable, it may not be accepted since the ongoing effort in maintaining the feature may outweigh the benefit it delivers.


#### Is the feature request related to a problem

A clear and concise description of what the problem is.


#### Describe the solution

A clear and concise proposal of how you intend to implement the feature.


#### Describe alternatives considered

A clear and concise description of any alternative solutions or features you've considered.


#### Additional context

Add any other context about the feature request here.


================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
- package-ecosystem: nuget
  directory: "/src"
  schedule:
    interval: daily
  open-pull-requests-limit: 10


================================================
FILE: .github/stale.yml
================================================
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 7
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Set to true to ignore issues in a milestone (defaults to false)
exemptMilestones: true
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
  This issue has been automatically marked as stale because it has not had
  recent activity. It will be closed if no further activity occurs. Thank you
  for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false
# Optionally, specify configuration settings that are specific to just 'issues' or 'pulls':
pulls:
  daysUntilStale: 30
exemptLabels:
  - Question
  - Bug
  - Feature
  - Improvement

================================================
FILE: .github/workflows/merge-dependabot.yml
================================================
name: merge-dependabot
on:
  pull_request:
jobs:
  automerge:
    runs-on: ubuntu-latest
    if: github.actor == 'dependabot[bot]'
    steps:
      - name: Dependabot Auto Merge
        uses: ahmadnassri/action-dependabot-auto-merge@v2.6.6
        with:
          target: minor
          github-token: ${{ secrets.dependabot }}
          command: squash and merge

================================================
FILE: .github/workflows/milestone-release.yml
================================================
name: milestone-release

on:
  milestone:
    types: [created, edited, deleted, closed, opened]
  issues:
    types: [opened, edited, closed, reopened, deleted, milestoned, demilestoned]
  pull_request:
    types: [opened, edited, closed, reopened, milestoned, demilestoned]
  push:
    tags:
      - '*'
  workflow_dispatch:
    inputs:
      milestone:
        description: 'Milestone title to rebuild (leave empty to rebuild all)'
        required: false
        type: string

permissions:
  contents: write

jobs:
  sync-release:
    runs-on: ubuntu-latest
    steps:
      - name: Sync Release with Milestone
        uses: actions/github-script@v7
        with:
          script: |
            const { owner, repo } = context.repo;

            async function syncMilestone(milestone) {
              const milestoneTitle = milestone.title;
              const milestoneNumber = milestone.number;

              // Find existing release by tag_name (includes drafts)
              let release = null;
              for await (const response of github.paginate.iterator(
                github.rest.repos.listReleases,
                { owner, repo, per_page: 100 }
              )) {
                release = response.data.find(r => r.tag_name === milestoneTitle);
                if (release) break;
              }

              // Fetch all issues and PRs in milestone
              const items = [];
              for await (const response of github.paginate.iterator(
                github.rest.issues.listForRepo,
                { owner, repo, milestone: milestoneNumber, state: 'all', per_page: 100 }
              )) {
                items.push(...response.data);
              }

              // Sort by number and generate body
              items.sort((a, b) => a.number - b.number);
              const body = items.map(item => {
                const checkbox = item.state === 'closed' ? '[x]' : '[ ]';
                return `- ${checkbox} [#${item.number}](${item.html_url}) ${item.title}`;
              }).join('\n');

              // Determine if release should be draft or published
              const isDraft = milestone.state === 'open';

              if (release) {
                await github.rest.repos.updateRelease({
                  owner, repo,
                  release_id: release.id,
                  name: milestoneTitle,
                  body: body || 'No issues in this milestone yet.',
                  draft: isDraft
                });
                console.log(`Updated release: ${milestoneTitle}`);
              } else {
                // Check if tag exists before creating release
                let tagExists = false;
                try {
                  await github.rest.git.getRef({
                    owner, repo,
                    ref: `tags/${milestoneTitle}`
                  });
                  tagExists = true;
                } catch (error) {
                  if (error.status !== 404) throw error;
                }

                if (tagExists) {
                  await github.rest.repos.createRelease({
                    owner, repo,
                    tag_name: milestoneTitle,
                    name: milestoneTitle,
                    body: body || 'No issues in this milestone yet.',
                    draft: isDraft
                  });
                  console.log(`Created release: ${milestoneTitle}`);
                } else {
                  console.log(`Skipping release creation: tag '${milestoneTitle}' does not exist`);
                }
              }
            }

            // Handle tag push - find matching milestone and sync
            if (context.eventName === 'push' && context.ref.startsWith('refs/tags/')) {
              const tagName = context.ref.replace('refs/tags/', '');
              const milestones = [];
              for await (const response of github.paginate.iterator(
                github.rest.issues.listMilestones,
                { owner, repo, state: 'all', per_page: 100 }
              )) {
                milestones.push(...response.data);
              }
              const milestone = milestones.find(ms => ms.title === tagName);
              if (milestone) {
                await syncMilestone(milestone);
              } else {
                console.log(`No milestone found matching tag '${tagName}'`);
              }
              return;
            }

            // Handle manual trigger - rebuild all or specific milestone
            if (context.eventName === 'workflow_dispatch') {
              const inputMilestone = context.payload.inputs?.milestone;
              const milestones = [];
              for await (const response of github.paginate.iterator(
                github.rest.issues.listMilestones,
                { owner, repo, state: 'all', per_page: 100 }
              )) {
                milestones.push(...response.data);
              }

              for (const ms of milestones) {
                if (!inputMilestone || ms.title === inputMilestone) {
                  await syncMilestone(ms);
                }
              }
              return;
            }

            // Get milestone from event
            let milestone = context.payload.milestone;
            if (!milestone && context.payload.issue?.milestone) {
              milestone = context.payload.issue.milestone;
            }
            if (!milestone && context.payload.pull_request?.milestone) {
              milestone = context.payload.pull_request.milestone;
            }
            if (!milestone) {
              console.log('No milestone associated with this event');
              return;
            }

            const eventAction = context.payload.action;

            // Handle milestone deleted
            if (context.eventName === 'milestone' && eventAction === 'deleted') {
              const milestoneTitle = milestone.title;
              let release = null;
              for await (const response of github.paginate.iterator(
                github.rest.repos.listReleases,
                { owner, repo, per_page: 100 }
              )) {
                release = response.data.find(r => r.tag_name === milestoneTitle);
                if (release) break;
              }
              if (release) {
                await github.rest.repos.deleteRelease({
                  owner, repo, release_id: release.id
                });
                console.log(`Deleted release for milestone: ${milestoneTitle}`);
              }
              return;
            }

            await syncMilestone(milestone);


================================================
FILE: .github/workflows/on-push-do-doco.yml
================================================
name: on-push-do-doco
on:
  push:
jobs:
  release:
    runs-on: windows-latest
    steps:
    - uses: actions/checkout@v4
    - name: Run MarkdownSnippets
      run: |
        dotnet tool install --global MarkdownSnippets.Tool
        mdsnippets ${GITHUB_WORKSPACE}
      shell: bash
    - name: Push changes
      run: |
        git config --local user.email "action@github.com"
        git config --local user.name "GitHub Action"
        git commit -m "Doco changes" -a || echo "nothing to commit"
        remote="https://${GITHUB_ACTOR}:${{secrets.GITHUB_TOKEN}}@github.com/${GITHUB_REPOSITORY}.git"
        branch="${GITHUB_REF:11}"
        git push "${remote}" ${branch} || echo "nothing to push"
      shell: bash

================================================
FILE: .gitignore
================================================
*.suo
*.user
bin/
obj/
.vs/
*.DotSettings.user
.idea/
*.received.*
nugets/

================================================
FILE: RedGateLicense.txt
================================================
New BSD License (BSD)
Copyright (c) 2008, Red Gate Software Ltd
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
* Neither the name of Red Gate Software Ltd nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

================================================
FILE: code_of_conduct.md
================================================
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or
 advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
 address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
 professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at simon.cropp@gmail.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq


================================================
FILE: license.txt
================================================
BSD 3-Clause License

Copyright (c) 2018, Simon Cropp
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
  list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
  this list of conditions and the following disclaimer in the documentation
  and/or other materials provided with the distribution.

* Neither the name of the copyright holder nor the names of its
  contributors may be used to endorse or promote products derived from
  this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


================================================
FILE: readme.md
================================================
# <img src="/src/icon.png" height="30px"> WaffleGenerator

[![Build status](https://img.shields.io/appveyor/build/SimonCropp/WaffleGenerator)](https://ci.appveyor.com/project/SimonCropp/WaffleGenerator)
[![NuGet Status](https://img.shields.io/nuget/v/WaffleGenerator.svg?label=WaffleGenerator&cacheSeconds=86400)](https://www.nuget.org/packages/WaffleGenerator/)
[![NuGet Status](https://img.shields.io/nuget/v/WaffleGenerator.Bogus.svg?label=WaffleGenerator.Bogus&cacheSeconds=86400)](https://www.nuget.org/packages/WaffleGenerator.Bogus/)

Produces text which, on first glance, looks like real, ponderous, prose; replete with clichés.

**See [Milestones](../../milestones?state=closed) for release notes.**

Example content:

```
The Aesthetic Of Economico-Social Disposition

"In this regard, the underlying surrealism of the take home message should not 
divert attention from The Aesthetic Of Economico-Social Disposition"
(Humphrey Yokomoto in The Journal of the Total Entative Item (20044U))

On any rational basis, a particular factor, such as the functional baseline, the 
analogy of object, the strategic requirements or the principal overriding programming 
provides an interesting insight into the complementary functional derivation. 
This trend may dissipate due to the mensurable proficiency.
```

This output can be used in similar way to [Lorem ipsum](https://en.wikipedia.org/wiki/Lorem_ipsum) content, in that it is useful for producing text for build software and producing design mockups.

Based on the awesome work by [Andrew Clarke](https://www.red-gate.com/simple-talk/author/andrew-clarke/) outlined in [The Waffle Generator](https://www.red-gate.com/simple-talk/dotnet/net-tools/the-waffle-generator/).

Code based on [SDGGenerators - Red Gate SQL Data Generator Community Generators](https://archive.codeplex.com/?p=sdggenerators).


## Blazor App

The [Blazing Waffles](http://wafflegen.azurewebsites.net/) app allows the generation of waffle text online.

 * Source: https://github.com/gbiellem/BlazingWaffles


## Main Package - WaffleGenerator

https://nuget.org/packages/WaffleGenerator/


### Usage

The `WaffleEngine` can be used to produce Html, text or Markdown:


#### Html

<!-- snippet: htmlUsage -->
<a id='snippet-htmlUsage'></a>
```cs
var text = WaffleEngine.Html(
    paragraphs: 2,
    includeHeading: true,
    includeHeadAndBody: true);
Debug.WriteLine(text);
```
<sup><a href='/src/Tests/WaffleEngineTests.cs#L33-L41' title='Snippet source file'>snippet source</a> | <a href='#snippet-htmlUsage' title='Start of snippet'>anchor</a></sup>
<!-- endSnippet -->


#### Text

<!-- snippet: textUsage -->
<a id='snippet-textUsage'></a>
```cs
var text = WaffleEngine.Text(
    paragraphs: 1,
    includeHeading: true);
Debug.WriteLine(text);
```
<sup><a href='/src/Tests/WaffleEngineTests.cs#L7-L14' title='Snippet source file'>snippet source</a> | <a href='#snippet-textUsage' title='Start of snippet'>anchor</a></sup>
<!-- endSnippet -->


#### Markdown

<!-- snippet: markdownUsage -->
<a id='snippet-markdownUsage'></a>
```cs
var markdown = WaffleEngine.Markdown(
    paragraphs: 1,
    includeHeading: true);
Debug.WriteLine(markdown);
```
<sup><a href='/src/Tests/WaffleEngineTests.cs#L20-L27' title='Snippet source file'>snippet source</a> | <a href='#snippet-markdownUsage' title='Start of snippet'>anchor</a></sup>
<!-- endSnippet -->


## WaffleGenerator.Bogus

Extends [Bogus](https://github.com/bchavez/Bogus) to use WaffleGenerator.

https://nuget.org/packages/WaffleGenerator.Bogus/


### Usage

The entry extension method is `WaffleHtml()` or `WaffleText()` or `WaffleMarkdown()`:

<!-- snippet: BogusUsage -->
<a id='snippet-BogusUsage'></a>
```cs
var faker = new Faker<Target>()
    .RuleFor(
        property: u => u.Title,
        setter: (f, u) => f.WaffleTitle())
    .RuleFor(
        property: u => u.Property1,
        setter: (f, u) => f.WaffleHtml())
    .RuleFor(
        property: u => u.Property2,
        setter: (f, u) => f.WaffleHtml(
            paragraphs: 4,
            includeHeading: true))
    .RuleFor(
        property: u => u.Property3,
        setter: (f, u) => f.WaffleText())
    .RuleFor(
        property: u => u.Property4,
        setter: (f, u) => f.WaffleText(
            paragraphs: 4,
            includeHeading: false));

var target = faker.Generate();
Debug.WriteLine(target.Title);
Debug.WriteLine(target.Property1);
Debug.WriteLine(target.Property2);
Debug.WriteLine(target.Property3);
Debug.WriteLine(target.Property4);
```
<sup><a href='/src/Tests/FakerUsage.cs#L12-L42' title='Snippet source file'>snippet source</a> | <a href='#snippet-BogusUsage' title='Start of snippet'>anchor</a></sup>
<!-- endSnippet -->


## Icon

[Waffle](https://thenounproject.com/term/waffle/836862/) designed by Made by Made from [The Noun Project](https://thenounproject.com/)


================================================
FILE: src/Directory.Build.props
================================================
<?xml version="1.0" encoding="utf-8"?>
<Project>
  <PropertyGroup>
    <NoWarn>CS1591;NU1608;NU1109</NoWarn>
    <Version>4.3.0</Version>
    <AssemblyVersion>1.0.0</AssemblyVersion>
    <LangVersion>preview</LangVersion>
    <PackageTags>WaffleGenerator, Bogus</PackageTags>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
    <ResolveAssemblyReferencesSilent>true</ResolveAssemblyReferencesSilent>
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
    <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
    <SuppressNETCoreSdkPreviewMessage>true</SuppressNETCoreSdkPreviewMessage>
  </PropertyGroup>
</Project>

================================================
FILE: src/Directory.Packages.props
================================================
<Project>
  <PropertyGroup>
    <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
    <CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
  </PropertyGroup>
  <ItemGroup>
    <PackageVersion Include="Bogus" Version="35.6.5" />
    <PackageVersion Include="MarkdownSnippets.MsBuild" Version="28.2.0" />
    <PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.5.1" />
    <PackageVersion Include="NUnit" Version="4.6.0" />
    <PackageVersion Include="NUnit3TestAdapter" Version="6.2.0" />
    <PackageVersion Include="Polyfill" Version="10.5.1" />
    <PackageVersion Include="ProjectDefaults" Version="1.0.174" />
    <PackageVersion Include="Verify.DiffPlex" Version="3.1.2" />
    <PackageVersion Include="Verify.NUnit" Version="31.16.3" />
    <PackageVersion Include="Microsoft.Sbom.Targets" Version="4.1.5" />
    <PackageVersion Include="Argon" Version="0.33.5" />
    <PackageVersion Include="DiffEngine" Version="19.2.0" />
    <PackageVersion Include="EmptyFiles" Version="8.18.1" />
    <PackageVersion Include="SimpleInfoName" Version="3.2.0" />
    <PackageVersion Include="Verify" Version="31.16.3" />
  </ItemGroup>
</Project>


================================================
FILE: src/Shared.sln.DotSettings
================================================
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=InconsistentNaming/@EntryIndexedValue">DO_NOT_SHOW</s:String>
	<s:Boolean x:Key="/Default/CodeStyle/Naming/CSharpNaming/ApplyAutoDetectedRules/@EntryValue">False</s:Boolean>
	<s:Boolean x:Key="/Default/Environment/Hierarchy/Build/SolutionBuilderNext/LogToFile/@EntryValue">False</s:Boolean>
	<s:String x:Key="/Default/Environment/Hierarchy/Build/SolutionBuilderNext/OutputVerbosityLevel/@EntryValue">Quiet</s:String>
	<s:Boolean x:Key="/Default/CodeEditing/ContextActionTable/DisabledContextActions/=JetBrains_002EReSharper_002EIntentions_002ECSharp_002EContextActions_002EUseConfigureAwaitFalseAction/@EntryIndexedValue">True</s:Boolean>
	<s:Boolean x:Key="/Default/CodeInspection/ExcludedFiles/FileMasksToSkip/=_002AMigrations_002A/@EntryIndexedValue">True</s:Boolean>
	<s:Boolean x:Key="/Default/CodeInspection/ExcludedFiles/FileMasksToSkip/=_002A_002EDesigner_002Ecs/@EntryIndexedValue">True</s:Boolean>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=AllUnderscoreLocalParameterName/@EntryIndexedValue">DO_NOT_SHOW</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ArrangeAccessorOwnerBody/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ArrangeConstructorOrDestructorBody/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ArrangeLocalFunctionBody/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ArrangeMethodOrOperatorBody/@EntryIndexedValue">WARNING</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ArrangeNamespaceBody/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=CanSimplifyDictionaryTryGetValueWithGetValueOrDefault/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConditionIsAlwaysTrueOrFalse/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConvertToCompoundAssignment/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConvertToNullCoalescingCompoundAssignment/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConvertToPrimaryConstructor/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ExpressionIsAlwaysNull/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=LocalFunctionCanBeMadeStatic/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=MemberCanBeMadeStatic_002EGlobal/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=MemberCanBeMadeStatic_002ELocal/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=MergeAndPattern/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=MergeCastWithTypeCheck/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=MergeConditionalExpression/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=MergeIntoLogicalPattern/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=MergeIntoNegatedPattern/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=MergeIntoPattern/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=MergeNestedPropertyPatterns/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=MergeSequentialChecks/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=NotAccessedField_002ELocal/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=NotAccessedPositionalProperty_002ELocal/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantPatternParentheses/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=TailRecursiveCall/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=PatternIsAlwaysTrueOrFalse/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantAssignment/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantBoolCompare/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantStringInterpolation/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RawStringCanBeSimplified/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantTypeDeclarationBody/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantUsingDirective_002EGlobal/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ReplaceAsyncWithTaskReturn/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=SeparateLocalFunctionsWithJumpStatement/@EntryIndexedValue">DO_NOT_SHOW</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=SimplifyConditionalTernaryExpression/@EntryIndexedValue">DO_NOT_SHOW</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=StringLiteralAsInterpolationArgument/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=TryStatementsCanBeMerged/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedParameter_002EGlobal/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedParameter_002ELocal/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=TabsAndSpacesMismatch/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=TabsAreDisallowed/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UseCollectionExpression/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UseIndexFromEndExpression/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UseRawString/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UseSwitchCasePatternVariable/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UseSymbolAlias/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UseUtf8StringLiteral/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Browsers/Browsers/@EntryValue">C90+,E79+,S14+</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConditionalAccessQualifierIsNonNullableAccordingToAPIContract/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConstantConditionalAccessQualifier/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EmptyConstructor/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EmptyDestructor/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EmptyNamespace/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EntityNameCapturedOnly_002EGlobal/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=EntityNameCapturedOnly_002ELocal/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=FormatStringProblem/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=InlineOutVariableDeclaration/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=IsExpressionAlwaysTrue/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=MethodHasAsyncOverloadWithCancellation/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=MethodSupportsCancellation/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=NotAccessedVariable/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=NotAccessedVariable_002ECompiler/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=NullCoalescingConditionIsAlwaysNotNullAccordingToAPIContract/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=PartialMethodWithSinglePart/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=PartialTypeWithSinglePart/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=PatternAlwaysMatches/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=PatternNeverMatches/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=PossibleMultipleEnumeration/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=PrivateFieldCanBeConvertedToLocalVariable/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantAbstractModifier/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantAttributeParentheses/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantAttributeSuffix/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantBaseConstructorCall/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantBaseQualifier/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantCaseLabel/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantCast/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantCatchClause/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantDefaultMemberInitializer/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantEmptyObjectOrCollectionInitializer/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantEnumerableCastCall/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantExplicitArrayCreation/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantExtendsListEntry/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantIfElseBlock/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantIsBeforeRelationalPattern/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantNotNullConstraint/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantNullableFlowAttribute/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantNullableTypeMark/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantOverload_002EGlobal/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantOverload_002ELocal/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantOverriddenMember/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantRecordClassKeyword/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantStringFormatCall/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantStringToCharArrayCall/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantToStringCall/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantToStringCallForValueType/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantTypeArgumentsOfMethod/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantTypeCheckInPattern/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantUnsafeContext/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantUsingDirective/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantVerbatimPrefix/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantVerbatimStringPrefix/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=SealedMemberInSealedClass/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ThreadStaticFieldHasInitializer/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnnecessaryWhitespace/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedLocalFunction_002ECompiler/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedLocalFunction/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedLocalFunctionReturnValue/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedTupleComponentInReturnValue/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedTypeParameter/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedVariable/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UnusedVariable_002ECompiler/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UseCancellationTokenForIAsyncEnumerable/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UseConfigureAwaitFalse/@EntryIndexedValue">DO_NOT_SHOW</s:String>
	<s:String x:Key="/Default/CodeInspection/GeneratedCode/GeneratedFileMasks/=_002A_002Ereceived_002E_002A/@EntryIndexedValue">*.received.*</s:String>
	<s:String x:Key="/Default/CodeInspection/GeneratedCode/GeneratedFileMasks/=_002A_002Everified_002E_002A/@EntryIndexedValue">*.verified.*</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=RedundantSuppressNullableWarningExpression/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=UseObjectOrCollectionInitializer/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=VariableHidesOuterVariable/@EntryIndexedValue">DO_NOT_SHOW</s:String>
	<s:String x:Key="/Default/CodeInspection/JsInspections/LanguageLevel/@EntryValue">ECMAScript 2016</s:String>
	<s:String x:Key="/Default/CodeStyle/CodeCleanup/Profiles/=c_0023_0020Cleanup/@EntryIndexedValue">&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;Profile name="c# Cleanup"&gt;&lt;AspOptimizeRegisterDirectives&gt;True&lt;/AspOptimizeRegisterDirectives&gt;&lt;CSCodeStyleAttributes ArrangeVarStyle="True" ArrangeTypeAccessModifier="True" ArrangeTypeMemberAccessModifier="True" SortModifiers="True" RemoveRedundantParentheses="True" AddMissingParentheses="True" ArrangeBraces="True" ArrangeAttributes="True" ArrangeCodeBodyStyle="True" ArrangeTrailingCommas="True" ArrangeObjectCreation="True" ArrangeDefaultValue="True" ArrangeNamespaces="True" /&gt;&lt;CssAlphabetizeProperties&gt;True&lt;/CssAlphabetizeProperties&gt;&lt;JSStringLiteralQuotesDescriptor&gt;True&lt;/JSStringLiteralQuotesDescriptor&gt;&lt;CorrectVariableKindsDescriptor&gt;True&lt;/CorrectVariableKindsDescriptor&gt;&lt;VariablesToInnerScopesDescriptor&gt;True&lt;/VariablesToInnerScopesDescriptor&gt;&lt;StringToTemplatesDescriptor&gt;True&lt;/StringToTemplatesDescriptor&gt;&lt;JsInsertSemicolon&gt;True&lt;/JsInsertSemicolon&gt;&lt;RemoveRedundantQualifiersTs&gt;True&lt;/RemoveRedundantQualifiersTs&gt;&lt;OptimizeImportsTs&gt;True&lt;/OptimizeImportsTs&gt;&lt;OptimizeReferenceCommentsTs&gt;True&lt;/OptimizeReferenceCommentsTs&gt;&lt;PublicModifierStyleTs&gt;True&lt;/PublicModifierStyleTs&gt;&lt;ExplicitAnyTs&gt;True&lt;/ExplicitAnyTs&gt;&lt;TypeAnnotationStyleTs&gt;True&lt;/TypeAnnotationStyleTs&gt;&lt;RelativePathStyleTs&gt;True&lt;/RelativePathStyleTs&gt;&lt;AsInsteadOfCastTs&gt;True&lt;/AsInsteadOfCastTs&gt;&lt;RemoveCodeRedundancies&gt;True&lt;/RemoveCodeRedundancies&gt;&lt;CSUseAutoProperty&gt;True&lt;/CSUseAutoProperty&gt;&lt;CSMakeFieldReadonly&gt;True&lt;/CSMakeFieldReadonly&gt;&lt;CSMakeAutoPropertyGetOnly&gt;True&lt;/CSMakeAutoPropertyGetOnly&gt;&lt;CSArrangeQualifiers&gt;True&lt;/CSArrangeQualifiers&gt;&lt;CSFixBuiltinTypeReferences&gt;True&lt;/CSFixBuiltinTypeReferences&gt;&lt;CssReformatCode&gt;True&lt;/CssReformatCode&gt;&lt;JsReformatCode&gt;True&lt;/JsReformatCode&gt;&lt;JsFormatDocComments&gt;True&lt;/JsFormatDocComments&gt;&lt;CSOptimizeUsings&gt;&lt;OptimizeUsings&gt;True&lt;/OptimizeUsings&gt;&lt;/CSOptimizeUsings&gt;&lt;CSShortenReferences&gt;True&lt;/CSShortenReferences&gt;&lt;CSReformatCode&gt;True&lt;/CSReformatCode&gt;&lt;CSharpFormatDocComments&gt;True&lt;/CSharpFormatDocComments&gt;&lt;FormatAttributeQuoteDescriptor&gt;True&lt;/FormatAttributeQuoteDescriptor&gt;&lt;HtmlReformatCode&gt;True&lt;/HtmlReformatCode&gt;&lt;XAMLCollapseEmptyTags&gt;False&lt;/XAMLCollapseEmptyTags&gt;&lt;IDEA_SETTINGS&gt;&amp;lt;profile version="1.0"&amp;gt;&#xD;
  &amp;lt;option name="myName" value="c# Cleanup" /&amp;gt;&#xD;
&amp;lt;/profile&amp;gt;&lt;/IDEA_SETTINGS&gt;&lt;RIDER_SETTINGS&gt;&amp;lt;profile&amp;gt;&#xD;
  &amp;lt;Language id="EditorConfig"&amp;gt;&#xD;
    &amp;lt;Reformat&amp;gt;false&amp;lt;/Reformat&amp;gt;&#xD;
  &amp;lt;/Language&amp;gt;&#xD;
  &amp;lt;Language id="HTML"&amp;gt;&#xD;
    &amp;lt;OptimizeImports&amp;gt;false&amp;lt;/OptimizeImports&amp;gt;&#xD;
    &amp;lt;Reformat&amp;gt;false&amp;lt;/Reformat&amp;gt;&#xD;
    &amp;lt;Rearrange&amp;gt;false&amp;lt;/Rearrange&amp;gt;&#xD;
  &amp;lt;/Language&amp;gt;&#xD;
  &amp;lt;Language id="JSON"&amp;gt;&#xD;
    &amp;lt;Reformat&amp;gt;false&amp;lt;/Reformat&amp;gt;&#xD;
  &amp;lt;/Language&amp;gt;&#xD;
  &amp;lt;Language id="RELAX-NG"&amp;gt;&#xD;
    &amp;lt;Reformat&amp;gt;false&amp;lt;/Reformat&amp;gt;&#xD;
  &amp;lt;/Language&amp;gt;&#xD;
  &amp;lt;Language id="XML"&amp;gt;&#xD;
    &amp;lt;OptimizeImports&amp;gt;false&amp;lt;/OptimizeImports&amp;gt;&#xD;
    &amp;lt;Reformat&amp;gt;false&amp;lt;/Reformat&amp;gt;&#xD;
    &amp;lt;Rearrange&amp;gt;false&amp;lt;/Rearrange&amp;gt;&#xD;
  &amp;lt;/Language&amp;gt;&#xD;
&amp;lt;/profile&amp;gt;&lt;/RIDER_SETTINGS&gt;&lt;/Profile&gt;</s:String>
	<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/CONSTRUCTOR_OR_DESTRUCTOR_BODY/@EntryValue">ExpressionBody</s:String>
	<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/LOCAL_FUNCTION_BODY/@EntryValue">ExpressionBody</s:String>
	<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/METHOD_OR_OPERATOR_BODY/@EntryValue">ExpressionBody</s:String>
	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpCodeStyle/USE_HEURISTICS_FOR_BODY_STYLE/@EntryValue">False</s:Boolean>
	<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_ACCESSORHOLDER_ATTRIBUTE_ON_SAME_LINE_EX/@EntryValue">NEVER</s:String>
	<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_FIELD_ATTRIBUTE_ON_SAME_LINE_EX/@EntryValue">NEVER</s:String>
	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/PLACE_SIMPLE_ANONYMOUSMETHOD_ON_SINGLE_LINE/@EntryValue">False</s:Boolean>
	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_BEFORE_BINARY_OPSIGN/@EntryValue">False</s:Boolean>
	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_BEFORE_BINARY_PATTERN_OP/@EntryValue">False</s:Boolean>
	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_BEFORE_FIRST_METHOD_CALL/@EntryValue">True</s:Boolean>
	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_LINES/@EntryValue">False</s:Boolean>
	<s:String x:Key="/Default/CodeStyle/CodeFormatting/CSharpFormat/WRAP_MULTIPLE_TYPE_PARAMEER_CONSTRAINTS_STYLE/@EntryValue">CHOP_ALWAYS</s:String>
	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/JavaScriptCodeFormatting/WRAP_LINES/@EntryValue">False</s:Boolean>
	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/ProtobufCodeFormatting/WRAP_LINES/@EntryValue">False</s:Boolean>
	<s:String x:Key="/Default/CodeStyle/CodeFormatting/XmlDocFormatter/IndentSubtags/@EntryValue">RemoveIndent</s:String>
	<s:String x:Key="/Default/CodeStyle/CodeFormatting/XmlDocFormatter/IndentTagContent/@EntryValue">RemoveIndent</s:String>
	<s:Boolean x:Key="/Default/CodeStyle/CodeFormatting/XmlDocFormatter/WRAP_LINES/@EntryValue">False</s:Boolean>
	<s:Boolean x:Key="/Default/Environment/ExcludedFiles/FilesAndFoldersToSkip/=6E616A53_002D9BF6_002D4F71_002D9E8E_002D2D99C3CB85F4_002Fd_003Awwwroot_002Fd_003A_005Fcontent_002Fd_003Atinymce/@EntryIndexedValue">True</s:Boolean>
	<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpKeepExistingMigration/@EntryIndexedValue">True</s:Boolean>
	<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpPlaceEmbeddedOnSameLineMigration/@EntryIndexedValue">True</s:Boolean>
	<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ECSharpUseContinuousIndentInsideBracesMigration/@EntryIndexedValue">True</s:Boolean>
	<s:Boolean x:Key="/Default/Environment/SettingsMigration/IsMigratorApplied/=JetBrains_002EReSharper_002EPsi_002ECSharp_002ECodeStyle_002ESettingsUpgrade_002EMigrateBlankLinesAroundFieldToBlankLinesAroundProperty/@EntryIndexedValue">True</s:Boolean>
	<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=SimplifyLinqExpressionUseMinByAndMaxBy/@EntryIndexedValue">ERROR</s:String>
	<s:String x:Key="/Default/Housekeeping/UnitTestingMru/UnitTestRunner/SpawnedProcessesResponse/@EntryValue">DoNothing</s:String>
	</wpf:ResourceDictionary>

================================================
FILE: src/Tests/FakerUsage.cs
================================================
using Bogus;

// ReSharper disable RedundantArgumentDefaultValue
// ReSharper disable UnusedParameter.Local

[TestFixture]
public class FakerUsage
{
    [Test]
    public void Sample()
    {
        #region BogusUsage

        var faker = new Faker<Target>()
            .RuleFor(
                property: u => u.Title,
                setter: (f, u) => f.WaffleTitle())
            .RuleFor(
                property: u => u.Property1,
                setter: (f, u) => f.WaffleHtml())
            .RuleFor(
                property: u => u.Property2,
                setter: (f, u) => f.WaffleHtml(
                    paragraphs: 4,
                    includeHeading: true))
            .RuleFor(
                property: u => u.Property3,
                setter: (f, u) => f.WaffleText())
            .RuleFor(
                property: u => u.Property4,
                setter: (f, u) => f.WaffleText(
                    paragraphs: 4,
                    includeHeading: false));

        var target = faker.Generate();
        Debug.WriteLine(target.Title);
        Debug.WriteLine(target.Property1);
        Debug.WriteLine(target.Property2);
        Debug.WriteLine(target.Property3);
        Debug.WriteLine(target.Property4);

        #endregion
    }

    [Test]
    public void Run()
    {
        var faker = new Faker<Target>()
            .RuleFor(u => u.Title, (f, u) => f.WaffleTitle())
            .RuleFor(u => u.Property1, (f, u) => f.WaffleHtml())
            .RuleFor(u => u.Property2, (f, u) => f.WaffleText());

        var target = faker.Generate();
        Trace.WriteLine(target.Title);
        Trace.WriteLine(target.Property1);
        Trace.WriteLine(target.Property2);
        NotNull(target.Title);
        IsNotEmpty(target.Title);
        NotNull(target.Property1);
        IsNotEmpty(target.Property1);
        NotNull(target.Property2);
        IsNotEmpty(target.Property2);
    }

    public class Target
    {
        public string? Property1 { get; set; }
        public string? Property2 { get; set; }
        public string? Property3 { get; set; }
        public string? Property4 { get; set; }
        public string? Title { get; set; }
    }
}

================================================
FILE: src/Tests/GlobalUsings.cs
================================================
// Global using directives

global using VerifyTests.DiffPlex;
global using WaffleGenerator;

================================================
FILE: src/Tests/ModuleInitializer.cs
================================================
static class ModuleInitializer
{
    [ModuleInitializer]
    public static void Initialize()
    {
        VerifyDiffPlex.Initialize(OutputType.Compact);
        VerifierSettings.InitializePlugins();
    }
}

================================================
FILE: src/Tests/Tests.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net10.0</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="MarkdownSnippets.MsBuild" PrivateAssets="all" />
    <PackageReference Include="NUnit" />
    <PackageReference Include="NUnit3TestAdapter" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" />
    <PackageReference Include="Verify.DiffPlex" />
    <PackageReference Include="Verify.Nunit" />
    <PackageReference Include="Argon" />
    <PackageReference Include="DiffEngine" />
    <PackageReference Include="EmptyFiles" />
    <PackageReference Include="SimpleInfoName" />
    <PackageReference Include="Verify" />
    <ProjectReference Include="..\WaffleGenerator.Bogus\WaffleGenerator.Bogus.csproj" />
    <ProjectReference Include="..\WaffleGenerator\WaffleGenerator.csproj" />
    <PackageReference Include="ProjectDefaults" PrivateAssets="all" />
    <Using Include="NUnit.Framework.Legacy.ClassicAssert" Static="True" />
    <Using Include="NUnit.Framework.Assert" Static="True" />
  </ItemGroup>
</Project>


================================================
FILE: src/Tests/WaffleEngineTests.HtmlWaffleMultiple.verified.txt
================================================
<h1>The Aesthetic Of Economico-Social Disposition</h1>
<blockquote>'In this regard, the underlying surrealism of the take home message should not divert attention from The Aesthetic Of Economico-Social Disposition'<br>
<cite>Humphrey Yokomoto in The Journal of the Total Entative Item (20124U)</cite></blockquote>
<h2>causation of milieu.</h2>
<p>
On any rational basis, a particular factor, such as the functional baseline, the analogy of object, the strategic requirements or the principal overriding programming provides an interesting insight into the complementary functional derivation. This trend may dissipate due to the mensurable proficiency.
</p>
<p>
<h2>The Potential Economic Competence.</h2>
On the other hand, the integrated dominant specification and the resources needed to support it are mandatory. It can be forcibly emphasized that efforts are already underway in the development of the inductive extrinsic rationalization. Albeit, the target population for an implementation strategy for fully interactive phylogenetic value focuses our attention on what is beginning to be termed the "set of constraints".
</p>
<p>
To coin a phrase, the operations scenario in its relation to the separate roles and significances of the ad-hoc politico-strategical time-phase identifies the probability of project success and the strategic overriding competence. We need to be able to rationalize The major theme of the optical reproducible reconstruction. The advent of the set of constraints rigorously posits the work being done at the 'coal-face'.
</p>
<p>
<h2>The Dynamic Effective Partnership.</h2>
Focussing on the agreed facts, we can say that the dangers inherent in the essential conjectural determinism focuses our attention on the greater objective inductive attitude of the quasi-effectual empirical correspondence.
</p>
<p>
<h2>The Corporate Procedure.</h2>
firstly, subdivisions of what amounts to the consultative consistent baseline significantly alters the importance of the work being done at the 'coal-face'.
</p>
<p>
The religious analogy is taken to be a alternative immediate contingency. Presumably, the core business is reciprocated by the applicability and value of the access to corporate systems.
</p>
<p>
To recapitulate, the feasibility of the directive subjective morality relates stringently to any impact on overall performance. Conversely, the feasibility of the inductive resonant monologism could go the extra mile for any commonality between the integrated auxiliary antithesis and the crucial test option.
</p>
<p>
The the criterion of non-viable expressive resources provides us with a win-win situation. Especially if one considers that a concept of what we have come to call the strategic goals underlines the essential paradigm of the proactive sanctioned item. This may explain why the dominant factor clearly supplements the strategic framework. This should be considered in the light of the necessity for budgetary control.
</p>
<p>
Similarly, the question of a preponderance of the compatible transitional disposition generally maximizes the truly global universal algorithm in its relationship with the multilingual cynicism.
</p>
<p>
Note that:-

  1. The constraints of the knock-on effect stresses the importance of other systems and the necessity for what is beginning to be termed the "critical privileged impulse"..
  2. A psychic operation of what has been termed the definitive resources is reciprocated by the overall game-plan..
  3. A primary interrelationship between system and/or subsystem technologies exceeds the functionality of the feedback process. One must therefore dedicate resources to the quality driven unprejudiced matrix immediately..
  4. The adequate functionality of the strategic plan must be considered proactively, rather than reactively, in the light of the resource planning.
  5. The principle of the ongoing specific programming relates presumably to any adequate resource level. Conversely, any fundamental dichotomies of the calculus of consequence probably delineates the necessity for budgetary control. This trend may dissipate due to the comprehensive hierarchical theme.
  6. A persistent instability in the principle of the spatio-temporal reciprocity rivals, in terms of resource implications, any discrete or objective configuration mode.

 Any fundamental dichotomies of the benchmark inherently sustains the maintenance of current standards and the politico-strategical integration. This may rigorously flounder on the non-viable hypothetical dimension.
</p>
<p>
An initial appraisal makes it evident that the principle of the the bottom line generally reflects the privileged directive resources and the vibrant pure familiarisation. This should be considered in the light of the critical subsystem mobility.
</p>


================================================
FILE: src/Tests/WaffleEngineTests.HtmlWaffleMultipleWithHeadAndBody.verified.txt
================================================
<html>
<head>
<title>The Aesthetic Of Economico-Social Disposition</title>
</head>
<body>
<h1>The Aesthetic Of Economico-Social Disposition</h1>
<blockquote>'In this regard, the underlying surrealism of the take home message should not divert attention from The Aesthetic Of Economico-Social Disposition'<br>
<cite>Humphrey Yokomoto in The Journal of the Total Entative Item (20124U)</cite></blockquote>
<h2>causation of milieu.</h2>
<p>
On any rational basis, a particular factor, such as the functional baseline, the analogy of object, the strategic requirements or the principal overriding programming provides an interesting insight into the complementary functional derivation. This trend may dissipate due to the mensurable proficiency.
</p>
<p>
<h2>The Potential Economic Competence.</h2>
On the other hand, the integrated dominant specification and the resources needed to support it are mandatory. It can be forcibly emphasized that efforts are already underway in the development of the inductive extrinsic rationalization. Albeit, the target population for an implementation strategy for fully interactive phylogenetic value focuses our attention on what is beginning to be termed the "set of constraints".
</p>
<p>
To coin a phrase, the operations scenario in its relation to the separate roles and significances of the ad-hoc politico-strategical time-phase identifies the probability of project success and the strategic overriding competence. We need to be able to rationalize The major theme of the optical reproducible reconstruction. The advent of the set of constraints rigorously posits the work being done at the 'coal-face'.
</p>
<p>
<h2>The Dynamic Effective Partnership.</h2>
Focussing on the agreed facts, we can say that the dangers inherent in the essential conjectural determinism focuses our attention on the greater objective inductive attitude of the quasi-effectual empirical correspondence.
</p>
<p>
<h2>The Corporate Procedure.</h2>
firstly, subdivisions of what amounts to the consultative consistent baseline significantly alters the importance of the work being done at the 'coal-face'.
</p>
<p>
The religious analogy is taken to be a alternative immediate contingency. Presumably, the core business is reciprocated by the applicability and value of the access to corporate systems.
</p>
<p>
To recapitulate, the feasibility of the directive subjective morality relates stringently to any impact on overall performance. Conversely, the feasibility of the inductive resonant monologism could go the extra mile for any commonality between the integrated auxiliary antithesis and the crucial test option.
</p>
<p>
The the criterion of non-viable expressive resources provides us with a win-win situation. Especially if one considers that a concept of what we have come to call the strategic goals underlines the essential paradigm of the proactive sanctioned item. This may explain why the dominant factor clearly supplements the strategic framework. This should be considered in the light of the necessity for budgetary control.
</p>
<p>
Similarly, the question of a preponderance of the compatible transitional disposition generally maximizes the truly global universal algorithm in its relationship with the multilingual cynicism.
</p>
<p>
Note that:-

  1. The constraints of the knock-on effect stresses the importance of other systems and the necessity for what is beginning to be termed the "critical privileged impulse"..
  2. A psychic operation of what has been termed the definitive resources is reciprocated by the overall game-plan..
  3. A primary interrelationship between system and/or subsystem technologies exceeds the functionality of the feedback process. One must therefore dedicate resources to the quality driven unprejudiced matrix immediately..
  4. The adequate functionality of the strategic plan must be considered proactively, rather than reactively, in the light of the resource planning.
  5. The principle of the ongoing specific programming relates presumably to any adequate resource level. Conversely, any fundamental dichotomies of the calculus of consequence probably delineates the necessity for budgetary control. This trend may dissipate due to the comprehensive hierarchical theme.
  6. A persistent instability in the principle of the spatio-temporal reciprocity rivals, in terms of resource implications, any discrete or objective configuration mode.

 Any fundamental dichotomies of the benchmark inherently sustains the maintenance of current standards and the politico-strategical integration. This may rigorously flounder on the non-viable hypothetical dimension.
</p>
<p>
An initial appraisal makes it evident that the principle of the the bottom line generally reflects the privileged directive resources and the vibrant pure familiarisation. This should be considered in the light of the critical subsystem mobility.
</p>
</body>
</html>

================================================
FILE: src/Tests/WaffleEngineTests.HtmlWaffleNoHeading.verified.txt
================================================
<h1>The Aesthetic Of Economico-Social Disposition</h1>
<blockquote>'In this regard, the underlying surrealism of the take home message should not divert attention from The Aesthetic Of Economico-Social Disposition'<br>
<cite>Humphrey Yokomoto in The Journal of the Total Entative Item (20124U)</cite></blockquote>
<h2>causation of milieu.</h2>
<p>
On any rational basis, a particular factor, such as the functional baseline, the analogy of object, the strategic requirements or the principal overriding programming provides an interesting insight into the complementary functional derivation. This trend may dissipate due to the mensurable proficiency.
</p>


================================================
FILE: src/Tests/WaffleEngineTests.HtmlWaffleNoHeadingWithHeadAndBody.verified.txt
================================================
<html>
<head>
<title>The Aesthetic Of Economico-Social Disposition</title>
</head>
<body>
<h1>The Aesthetic Of Economico-Social Disposition</h1>
<blockquote>'In this regard, the underlying surrealism of the take home message should not divert attention from The Aesthetic Of Economico-Social Disposition'<br>
<cite>Humphrey Yokomoto in The Journal of the Total Entative Item (20124U)</cite></blockquote>
<h2>causation of milieu.</h2>
<p>
On any rational basis, a particular factor, such as the functional baseline, the analogy of object, the strategic requirements or the principal overriding programming provides an interesting insight into the complementary functional derivation. This trend may dissipate due to the mensurable proficiency.
</p>
</body>
</html>

================================================
FILE: src/Tests/WaffleEngineTests.HtmlWaffleSingle.verified.txt
================================================
<h1>The Aesthetic Of Economico-Social Disposition</h1>
<blockquote>'In this regard, the underlying surrealism of the take home message should not divert attention from The Aesthetic Of Economico-Social Disposition'<br>
<cite>Humphrey Yokomoto in The Journal of the Total Entative Item (20124U)</cite></blockquote>
<h2>causation of milieu.</h2>
<p>
On any rational basis, a particular factor, such as the functional baseline, the analogy of object, the strategic requirements or the principal overriding programming provides an interesting insight into the complementary functional derivation. This trend may dissipate due to the mensurable proficiency.
</p>


================================================
FILE: src/Tests/WaffleEngineTests.HtmlWaffleSingleWithHeadAndBody.verified.txt
================================================
<html>
<head>
<title>The Aesthetic Of Economico-Social Disposition</title>
</head>
<body>
<h1>The Aesthetic Of Economico-Social Disposition</h1>
<blockquote>'In this regard, the underlying surrealism of the take home message should not divert attention from The Aesthetic Of Economico-Social Disposition'<br>
<cite>Humphrey Yokomoto in The Journal of the Total Entative Item (20124U)</cite></blockquote>
<h2>causation of milieu.</h2>
<p>
On any rational basis, a particular factor, such as the functional baseline, the analogy of object, the strategic requirements or the principal overriding programming provides an interesting insight into the complementary functional derivation. This trend may dissipate due to the mensurable proficiency.
</p>
</body>
</html>

================================================
FILE: src/Tests/WaffleEngineTests.MarkdownWaffleMultiple.verified.md
================================================
# The Aesthetic Of Economico-Social Disposition

 > In this regard, the underlying surrealism of the take home message should not divert attention from The Aesthetic Of Economico-Social Disposition

 * Humphrey Yokomoto in The Journal of the Total Entative Item (20124U)

## causation of milieu.

On any rational basis, a particular factor, such as the functional baseline, the analogy of object, the strategic requirements or the principal overriding programming provides an interesting insight into the complementary functional derivation. This trend may dissipate due to the mensurable proficiency.

## The Potential Economic Competence.

On the other hand, the integrated dominant specification and the resources needed to support it are mandatory. It can be forcibly emphasized that efforts are already underway in the development of the inductive extrinsic rationalization. Albeit, the target population for an implementation strategy for fully interactive phylogenetic value focuses our attention on what is beginning to be termed the "set of constraints".

To coin a phrase, the operations scenario in its relation to the separate roles and significances of the ad-hoc politico-strategical time-phase identifies the probability of project success and the strategic overriding competence. We need to be able to rationalize The major theme of the optical reproducible reconstruction. The advent of the set of constraints rigorously posits the work being done at the 'coal-face'.

## The Dynamic Effective Partnership.

Focussing on the agreed facts, we can say that the dangers inherent in the essential conjectural determinism focuses our attention on the greater objective inductive attitude of the quasi-effectual empirical correspondence.

## The Corporate Procedure.

firstly, subdivisions of what amounts to the consultative consistent baseline significantly alters the importance of the work being done at the 'coal-face'.

The religious analogy is taken to be a alternative immediate contingency. Presumably, the core business is reciprocated by the applicability and value of the access to corporate systems.

To recapitulate, the feasibility of the directive subjective morality relates stringently to any impact on overall performance. Conversely, the feasibility of the inductive resonant monologism could go the extra mile for any commonality between the integrated auxiliary antithesis and the crucial test option.

The the criterion of non-viable expressive resources provides us with a win-win situation. Especially if one considers that a concept of what we have come to call the strategic goals underlines the essential paradigm of the proactive sanctioned item. This may explain why the dominant factor clearly supplements the strategic framework. This should be considered in the light of the necessity for budgetary control.

Similarly, the question of a preponderance of the compatible transitional disposition generally maximizes the truly global universal algorithm in its relationship with the multilingual cynicism.

Note that:-

  1. The constraints of the knock-on effect stresses the importance of other systems and the necessity for what is beginning to be termed the "critical privileged impulse"..
  2. A psychic operation of what has been termed the definitive resources is reciprocated by the overall game-plan..
  3. A primary interrelationship between system and/or subsystem technologies exceeds the functionality of the feedback process. One must therefore dedicate resources to the quality driven unprejudiced matrix immediately..
  4. The adequate functionality of the strategic plan must be considered proactively, rather than reactively, in the light of the resource planning.
  5. The principle of the ongoing specific programming relates presumably to any adequate resource level. Conversely, any fundamental dichotomies of the calculus of consequence probably delineates the necessity for budgetary control. This trend may dissipate due to the comprehensive hierarchical theme.
  6. A persistent instability in the principle of the spatio-temporal reciprocity rivals, in terms of resource implications, any discrete or objective configuration mode.

 Any fundamental dichotomies of the benchmark inherently sustains the maintenance of current standards and the politico-strategical integration. This may rigorously flounder on the non-viable hypothetical dimension.

An initial appraisal makes it evident that the principle of the the bottom line generally reflects the privileged directive resources and the vibrant pure familiarisation. This should be considered in the light of the critical subsystem mobility.



================================================
FILE: src/Tests/WaffleEngineTests.MarkdownWaffleNoHeading.verified.md
================================================
Only in the case of the performance objectives can one state that an overall understanding of any ad-hoc implicit delivery shows an interesting ambivalence with the parallel entative delivery or the three-tier resonant teleology.



================================================
FILE: src/Tests/WaffleEngineTests.MarkdownWaffleSingle.verified.md
================================================
# The Aesthetic Of Economico-Social Disposition

 > In this regard, the underlying surrealism of the take home message should not divert attention from The Aesthetic Of Economico-Social Disposition

 * Humphrey Yokomoto in The Journal of the Total Entative Item (20124U)

## causation of milieu.

On any rational basis, a particular factor, such as the functional baseline, the analogy of object, the strategic requirements or the principal overriding programming provides an interesting insight into the complementary functional derivation. This trend may dissipate due to the mensurable proficiency.



================================================
FILE: src/Tests/WaffleEngineTests.TextWaffleMultiple.verified.txt
================================================
The Aesthetic Of Economico-Social Disposition

'In this regard, the underlying surrealism of the take home message should not divert attention from The Aesthetic Of Economico-Social Disposition'

 - Humphrey Yokomoto in The Journal of the Total Entative Item (20124U)

causation of milieu.

On any rational basis, a particular factor, such as the functional baseline, the analogy of object, the strategic requirements or the principal overriding programming provides an interesting insight into the complementary functional derivation. This trend may dissipate due to the mensurable proficiency.

The Potential Economic Competence.

On the other hand, the integrated dominant specification and the resources needed to support it are mandatory. It can be forcibly emphasized that efforts are already underway in the development of the inductive extrinsic rationalization. Albeit, the target population for an implementation strategy for fully interactive phylogenetic value focuses our attention on what is beginning to be termed the "set of constraints".

To coin a phrase, the operations scenario in its relation to the separate roles and significances of the ad-hoc politico-strategical time-phase identifies the probability of project success and the strategic overriding competence. We need to be able to rationalize The major theme of the optical reproducible reconstruction. The advent of the set of constraints rigorously posits the work being done at the 'coal-face'.

The Dynamic Effective Partnership.

Focussing on the agreed facts, we can say that the dangers inherent in the essential conjectural determinism focuses our attention on the greater objective inductive attitude of the quasi-effectual empirical correspondence.

The Corporate Procedure.

firstly, subdivisions of what amounts to the consultative consistent baseline significantly alters the importance of the work being done at the 'coal-face'.

The religious analogy is taken to be a alternative immediate contingency. Presumably, the core business is reciprocated by the applicability and value of the access to corporate systems.

To recapitulate, the feasibility of the directive subjective morality relates stringently to any impact on overall performance. Conversely, the feasibility of the inductive resonant monologism could go the extra mile for any commonality between the integrated auxiliary antithesis and the crucial test option.

The the criterion of non-viable expressive resources provides us with a win-win situation. Especially if one considers that a concept of what we have come to call the strategic goals underlines the essential paradigm of the proactive sanctioned item. This may explain why the dominant factor clearly supplements the strategic framework. This should be considered in the light of the necessity for budgetary control.

Similarly, the question of a preponderance of the compatible transitional disposition generally maximizes the truly global universal algorithm in its relationship with the multilingual cynicism.

Note that:-

  1. The constraints of the knock-on effect stresses the importance of other systems and the necessity for what is beginning to be termed the "critical privileged impulse"..
  2. A psychic operation of what has been termed the definitive resources is reciprocated by the overall game-plan..
  3. A primary interrelationship between system and/or subsystem technologies exceeds the functionality of the feedback process. One must therefore dedicate resources to the quality driven unprejudiced matrix immediately..
  4. The adequate functionality of the strategic plan must be considered proactively, rather than reactively, in the light of the resource planning.
  5. The principle of the ongoing specific programming relates presumably to any adequate resource level. Conversely, any fundamental dichotomies of the calculus of consequence probably delineates the necessity for budgetary control. This trend may dissipate due to the comprehensive hierarchical theme.
  6. A persistent instability in the principle of the spatio-temporal reciprocity rivals, in terms of resource implications, any discrete or objective configuration mode.

 Any fundamental dichotomies of the benchmark inherently sustains the maintenance of current standards and the politico-strategical integration. This may rigorously flounder on the non-viable hypothetical dimension.

An initial appraisal makes it evident that the principle of the the bottom line generally reflects the privileged directive resources and the vibrant pure familiarisation. This should be considered in the light of the critical subsystem mobility.


================================================
FILE: src/Tests/WaffleEngineTests.TextWaffleNoHeading.verified.txt
================================================
Only in the case of the performance objectives can one state that an overall understanding of any ad-hoc implicit delivery shows an interesting ambivalence with the parallel entative delivery or the three-tier resonant teleology.


================================================
FILE: src/Tests/WaffleEngineTests.TextWaffleSingle.verified.txt
================================================
The Aesthetic Of Economico-Social Disposition

'In this regard, the underlying surrealism of the take home message should not divert attention from The Aesthetic Of Economico-Social Disposition'

 - Humphrey Yokomoto in The Journal of the Total Entative Item (20124U)

causation of milieu.

On any rational basis, a particular factor, such as the functional baseline, the analogy of object, the strategic requirements or the principal overriding programming provides an interesting insight into the complementary functional derivation. This trend may dissipate due to the mensurable proficiency.


================================================
FILE: src/Tests/WaffleEngineTests.Title.verified.txt
================================================
The Aesthetic Of Economico-Social Disposition

================================================
FILE: src/Tests/WaffleEngineTests.cs
================================================
[TestFixture]
public class WaffleEngineTests
{
    [Test]
    public void TextWaffleSample()
    {
        #region textUsage

        var text = WaffleEngine.Text(
            paragraphs: 1,
            includeHeading: true);
        Debug.WriteLine(text);

        #endregion
    }

    [Test]
    public void MarkdownWaffleSample()
    {
        #region markdownUsage

        var markdown = WaffleEngine.Markdown(
            paragraphs: 1,
            includeHeading: true);
        Debug.WriteLine(markdown);

        #endregion
    }

    [Test]
    public void HtmlWaffleSample()
    {
        #region htmlUsage

        var text = WaffleEngine.Html(
            paragraphs: 2,
            includeHeading: true,
            includeHeadAndBody: true);
        Debug.WriteLine(text);

        #endregion
    }

    [Test]
    public Task TextWaffleSingle()
    {
        var random = new Random(0);
        var text = WaffleEngine.Text(random, 1, true);
        return Verify(text);
    }

    [Test]
    public void EndsWith()
    {
        True(new StringBuilder("a").EndsWith('a'));
        True(new StringBuilder("ba").EndsWith('a'));
        True(new StringBuilder("ba").EndsWith('b', 'a'));
        True(new StringBuilder("a ").EndsWith('a'));
        True(new StringBuilder("ba ").EndsWith('a'));
        True(new StringBuilder("ba ").EndsWith('b', 'a'));
        True(new StringBuilder("a	").EndsWith('a'));
        True(new StringBuilder("ba	").EndsWith('a'));
        True(new StringBuilder("ba	").EndsWith('b', 'a'));

        False(new StringBuilder("a").EndsWith('c'));
        False(new StringBuilder("ba").EndsWith('c'));
        False(new StringBuilder("ba").EndsWith('c', 'd'));
        False(new StringBuilder("a ").EndsWith('c'));
        False(new StringBuilder("ba ").EndsWith('c'));
        False(new StringBuilder("ba ").EndsWith('c', 'd'));
        False(new StringBuilder("a	").EndsWith('c'));
        False(new StringBuilder("ba	").EndsWith('c'));
        False(new StringBuilder("ba	").EndsWith('c', 'd'));
        False(new StringBuilder(" ").EndsWith('c'));
        False(new StringBuilder("	").EndsWith('c'));
        False(new StringBuilder("").EndsWith('c'));
        False(new StringBuilder("").EndsWith('c'));
    }

    [Test]
    public void MultiTextShouldNotDuplicate()
    {
        var text1 = WaffleEngine.Text(1, true);
        var text2 = WaffleEngine.Text(1, true);
        AreNotEqual(text1, text2);
    }

    [Test]
    public void MultiHtmlShouldNotDuplicate()
    {
        var text1 = WaffleEngine.Html(1, true, true);
        var text2 = WaffleEngine.Html(1, true, true);
        AreNotEqual(text1, text2);
    }

    [Test]
    public void MultiMarkdownShouldNotDuplicate()
    {
        var text1 = WaffleEngine.Markdown(1, true);
        var text2 = WaffleEngine.Markdown(1, true);
        AreNotEqual(text1, text2);
    }

    [Test]
    public Task MarkdownWaffleSingle()
    {
        var random = new Random(0);
        var text = WaffleEngine.Markdown(random, 1, true);
        return Verify(text, "md");
    }

    [Test]
    public Task Title()
    {
        var random = new Random(0);
        var title = WaffleEngine.Title(random);
        return Verify(title);
    }

    [Test]
    public Task HtmlWaffleSingle()
    {
        var random = new Random(0);
        var html = WaffleEngine.Html(random, 1, true, false);
        return Verify(html);
    }

    [Test]
    public Task HtmlWaffleSingleWithHeadAndBody()
    {
        var random = new Random(0);
        var html = WaffleEngine.Html(random, 1, true, true);
        return Verify(html);
    }

    [Test]
    public Task TextWaffleMultiple()
    {
        var random = new Random(0);
        var text = WaffleEngine.Text(random, 11, true);
        return Verify(text);
    }

    [Test]
    public Task MarkdownWaffleMultiple()
    {
        var random = new Random(0);
        var text = WaffleEngine.Markdown(random, 11, true);
        return Verify(text, "md");
    }

    [Test]
    public Task HtmlWaffleMultiple()
    {
        var random = new Random(0);
        var html = WaffleEngine.Html(random, 11, true, false);
        return Verify(html);
    }

    [Test]
    public Task HtmlWaffleMultipleWithHeadAndBody()
    {
        var random = new Random(0);
        var html = WaffleEngine.Html(random, 11, true, true);
        return Verify(html);
    }

    [Test]
    public Task TextWaffleNoHeading()
    {
        var random = new Random(0);
        var text = WaffleEngine.Text(random, 1, false);
        return Verify(text);
    }

    [Test]
    public Task MarkdownWaffleNoHeading()
    {
        var random = new Random(0);
        var text = WaffleEngine.Markdown(random, 1, false);
        return Verify(text, "md");
    }

    [Test]
    public Task HtmlWaffleNoHeading()
    {
        var random = new Random(0);
        var html = WaffleEngine.Html(random, 1, true, false);
        return Verify(html);
    }

    [Test]
    public Task HtmlWaffleNoHeadingWithHeadAndBody()
    {
        var random = new Random(0);
        var html = WaffleEngine.Html(random, 1, true, true);
        return Verify(html);
    }
}

================================================
FILE: src/WaffleGenerator/AssemblyInfo.cs
================================================
[assembly: InternalsVisibleTo("Tests, PublicKey=00240000048000009400000006020000002400005253413100040000010001006944a8a4c5de92d68196a123157958d8f212381e1e21a772626e9c86cf8032f457f5b3d669045c4183f4d8dc89be3ae953ccba62b7522b2633156d0c886597509d50de36ce53cac9eebae9146e061bd6933499c740f56770c9ca3052f51de162791f86ea316ae4e3345c58b53e5743a3301359820655979aafefb40384c585c5")]

================================================
FILE: src/WaffleGenerator/Constants.cs
================================================
// ReSharper disable StringLiteralTypo

class Constants
{
    public static string[] preamblePhrases =
    [
        """
        In broad terms, we can define the main issues with |t. There are :-
          * The |o of |o: |B |C |D.
          * The |o of |o: |B |C |D.
          * The |o of |o: |B |C |D.
          * The |o of |o: |B |C |D.


        """,
        """
        The following points should be appreciated about |t;
          1. |B |C |D.
          2. |B |C |D.
          3. |B |C |D.
          4. |B |C |D.
          5. |B |C |D.
          6. |B |C |D.


        """,
        """
        Note that:-

          1. |B |C |D..
          2. |B |C |D..
          3. |B |C |D.
          4. |B |C |D.
          5. |B |C |D.
          6. |B |C |D.


        """,
        """
        Essentially;

          * |B |C |D.
          * |B |C |D.
          * |B |C |D.
          * |B |C |D.
          * |B |C |D.
          * |B |C |D.


        """,
        """
        To make the main points more explicit, it is fair to say that;
          * |B |C |D.
          * |B |C |D.
          * |B |C |D.
          * |B |C |D.


        """,
        "We have heard it said, tongue-in-cheek, that",
        "To be quite frank,",
        "Focussing on the agreed facts, we can say that",
        "To be perfectly truthful,",
        "In broad terms,",
        "To be perfectly honest,",
        "It was |f |s who first pointed out that",
        "Since |f |s's first formulation of the |c, it has become fairly obvious that",
        "Since the seminal work of |f |s it has generally been accepted that",
        "Without a doubt, |f |s i was right in saying that",
        "As regards |h |c, We should put this one to bed. On the other hand,",
        "As regards |h |c, This may have a knock-on effect. On the other hand,",
        "We must take on board that fact that",
        "Without a doubt, |B |C |D. So, where to from here? Presumably,",
        "It has hitherto been accepted that",
        "At the end of the day,",
        "Under the provision of the overall |1 plan,",
        "Firming up the gaps, one can say that",
        "Within the bounds of |h |c,",
        "The |h |c provides us with a win-win situation. Especially if one considers that",
        "There are swings and roundabouts in considering that",
        "To be precise,",
        "Whilst taking the subject of  |h |c offline, one must add that",
        "For example,",
        "An orthodox view is that",
        "To reiterate,",
        "To recapitulate,",
        "Strictly speaking,",
        "In a very real sense,",
        "Regarding the nature of |h |c,",
        "In a strictly mechanistic sense,",
        "One is struck quite forcibly by the fact that",
        "In any event,",
        "In particular,",
        "In assessing the |c, one should think outside the box. on the other hand,",
        "On the other hand,",
        "It is recognized that",
        "Focusing specifically on the relationship between |h |c and any |c,",
        "Although it is fair to say that |B |C |D, one should take this out of the loop",
        "|bly,",
        "|bly,",
        "|bly,",
        "Be that as it may,",
        "Taking everything into consideration,",
        "As in so many cases, we can state that",
        "The |c cannot explain all the problems in maximizing the efficacy of |h |c. Generally",
        "We can confidently base our case on an assumption that",
        "An initial appraisal makes it evident that",
        "An investigation of the |1 factors suggests that",
        "It is common knowledge that",
        "Despite an element of volatility,",
        "The less obviously co-existential factors imply that",
        "To coin a phrase,",
        "One might venture to suggest that",
        "In all foreseeable circumstances,",
        "However,",
        "Similarly,",
        "As a resultant implication,",
        "There is a strong body of opinion that affirms that",
        "Up to a point,",
        "Quite frankly,",
        "In this regard,",
        "Based on integral subsystems,",
        "For example,",
        "Therefore,",
        "Within current constraints on manpower resources,",
        "Up to a certain point,",
        "In an ideal environment,",
        "It might seem reasonable to think of |h |c as involving |h |c. Nevertheless,",
        "It can be forcibly emphasized that",
        "Thus,",
        "Within the restrictions of |h |c,",
        "In respect to specific goals,",
        "It is important to realize that",
        "To put it concisely,",
        "To be perfectly frank,",
        "On any rational basis,",
        "In any event,",
        "On the basis of |h |2 |3,",
        "With all the relevant considerations taken into account, it can be stated that",
        "Few would disagree, however, that",
        "It goes without saying that",
        "Only in the case of the |c can one state that",
        "if one considers the |c in the light of |h |c,",
        "The |c is taken to be a |c. Presumably,",
        "So far,",
        "It is quite instructive to compare |h |c and |h |c. In the latter case,",
        "Obviously,",
        "By and large,",
        "Possibly,",
        "One can, with a certain degree of confidence, conclude that",
        "Without doubt,",
        "With due caution, one can postulate that",
        "The |c is clearly related to |h |c. Nevertheless,",
        "There is probably no causal link between the |c and |h |c. However",
        "In the light of |h |c, it is clear that",
        "No one can deny the relevance of |h |c. Equally it is certain that",
        "Albeit,",
        "It is precisely the influence of |h |c for |t that makes the |c inevitable, Equally,",
        "One must clearly state that",
        "In connection with |h |c,",
        "Normally",
        "one can, quite consistently, say that",
        "Clearly, it is becoming possible to resolve the difficulties in assuming that",
        "Within normal variability,",
        "There can be little doubt that",
        "Few would deny that",
        "It is not often |e stated that",
        "In real terms,",
        "In this day and age,",
        "It is |e stated that",
        "The position in regard to the |c is that",
        "On one hand |B |C |D, but on the other hand",
        "One hears it stated that |B |C |D, but it is more likely that",
        "Whilst it may be true that |B |C |D, one must not lose sight of the fact that"
    ];

    public static string[] subjectPhrases =
    [
        "|h strategic goals",
        "|h gap analysis",
        "|h hardball",
        "|h purchaser - provider",
        "|h skill set",
        "|h knock-on effect",
        "|h strategic plan",
        "|h the bottom line",
        "|h mindset",
        "|h benchmark",
        "|h core business",
        "|h  big picture",
        "|h take home message",
        "|h lessons learnt",
        "|h movers and shakers",
        "|h knowledge base",
        "the ball-park figures for the |c",
        "The core drivers",
        "a particular factor, such as the |c, the |c, the |c or the |c",
        "there is an apparent contradiction between the |c and |h |c. However, |h |c",
        "the question of |h |c",
        "the desirability of attaining |h |c, as far as the |c is concerned,",
        "a persistent instability in |h |c",
        "examination of |2 instances",
        "the classic definition of |h |c",
        "firm assumptions about |c",
        "the |c and the resources needed to support it are mandatory. |A |B",
        "significant progress has been made in the |c. |A |B",
        "efforts are already underway in the development of the |c. |A |B",
        "a |2 operation of |h |c",
        "subdivisions of |h |c",
        "an anticipation of the effects of any |c",
        "an overall understanding of |h |c",
        "the assertion of the importance of the |c",
        "an understanding of the necessary relationship between the |c and any |c",
        "the possibility, that the |c plays a decisive part in influencing |h |c,",
        "any solution to the problem of |h |c",
        "the lack of understanding of |h |c",
        "the |c in its relation to |h |c",
        "parameters within |h |c",
        "the target population for |h |c",
        "initiation of |h |c",
        "both |c and |c",
        "|h |c",
        "an extrapolation of the |c",
        "|h |c",
        "the assessment of any significant weaknesses in the |c",
        "any subsequent interpolation",
        "|h |c is |e significant. On the other hand |h |c",
        "|h |c relates |e to any |c. Conversely, |h |c",
        "|h |c may be |e important. The |c",
        "the incorporation of the |c",
        "the quest for the |c",
        "the dangers inherent in the |c",
        "the value of the |c",
        "the |c",
        "an unambiguous concept of the |c",
        "a metonymic reconstruction of the |c",
        "a primary interrelationship between system and/or subsystem technologies"
    ];

    public static string[] verbPhrases =
    [
        "|d the overall efficiency of",
        "|d the |4 and |C",
        "can fully utilize",
        "will move the goal posts for",
        "would stretch the envelope of",
        "enables us to tick the boxes of",
        "could go the extra mile for",
        "should empower employees to produce",
        "should touch base with",
        "probably |d",
        "is generally compatible with",
        "provides the bandwidth for",
        "gives a win-win situation for",
        "has clear ramifications for",
        "has been made imperative in view of",
        "provides the context for",
        "underpins the importance of",
        "focuses our attention on",
        "will require a substantial amount of effort. |A |B |C",
        "represents a different business risk.  |A |B |C",
        "is of considerable importance from the production aspect. |A |B |C",
        "should facilitate information exchange.  |A |B |C",
        "has the intrinsic benefit of resilience, unlike the",
        "cannot be shown to be relevant. This is in contrast to",
        "cannot always help us.  |A |B |C",
        "|C |D. A priority should be established based on a combination of |c and |c",
        "|C |D. The objective of the |c is to delineate",
        "shows an interesting ambivalence with",
        "underlines the essential paradigm of",
        "can be taken in juxtaposition with",
        "provides an interesting insight into",
        "must seem over simplistic in the light of",
        "seems to |e reinforce the importance of",
        "leads clearly to the rejection of the supremacy of",
        "allows us to see the clear significance of",
        "underlines the significance of",
        "reinforces the weaknesses in",
        "confuses the |c and",
        "|d the |c and",
        "|d",
        "|d",
        "|d",
        "|d",
        "|d",
        "|d",
        "provides a harmonic integration with",
        "is constantly directing the course of",
        "must intrinsically determine",
        "has fundamental repercussions for",
        "provides an idealized framework for",
        "|e alters the importance of",
        "|e changes the interrelationship between the|c and",
        "|e legitimises the significance of",
        "must utilize and be functionally interwoven with",
        "|d the probability of project success and",
        "|e |d the |c and",
        "|e |d the |c and",
        "|e |d the |c and",
        "|e |d the |c in its relationship with",
        "|d the dangers quite |e of",
        "has confirmed an expressed desire for",
        "is reciprocated by",
        "has no other function than to provide",
        "adds explicit performance limits to",
        "must be considered proactively, rather than reactively, in the light of",
        "necessitates that urgent consideration be applied to",
        "requires considerable systems analysis and trade-off studies to arrive at",
        "provides a heterogeneous environment to",
        "cannot compare in its potential exigencies with",
        "is further compounded, when taking into account",
        "presents extremely interesting challenges to",
        "|d the importance of other systems and the necessity for",
        "provides one of the dominant factors of",
        "forms the basis for",
        "enhances the efficiency of",
        "develops a vision to leverage",
        "produces diagnostic feedback to",
        "capitalises on the strengths of",
        "effects a significant implementation of",
        "seems to counterpoint",
        "adds overriding performance constraints to",
        "manages to subsume",
        "provides a balanced perspective to",
        "rivals, in terms of resource implications,",
        "contrives through the medium of the |c to emphasize",
        "can be developed in parallel with",
        "commits resources to",
        "confounds the essential conformity of",
        "provides the bridge between the |c and",
        "should be provided to expedite investigation into",
        "poses problems and challenges for both the |c and",
        "should not divert attention from",
        "provides an insight into",
        "has considerable manpower implications when considered in the light of",
        "may mean a wide diffusion of the |c into",
        "makes little difference to",
        "focuses our attention on",
        "exceeds the functionality of",
        "recognizes deficiencies in",
        "needs to be factored into the equation alongside the",
        "needs to be addressed along with the"
    ];

    public static string[] objectPhrases =
    [
        "the overall game-plan",
        "the slippery slope",
        "the strategic fit",
        "The total quality objectives",
        "the |c. This should be considered in the light of the |c",
        "the |c. One must therefore dedicate resources to the |c immediately.",
        "the |c on a strictly limited basis",
        "this |c. This should present few practical problems",
        "what should be termed the |c",
        "the applicability and value of the |c",
        "the |c or the |c",
        "the negative aspects of any |c",
        "an unambiguous concept of the |c",
        "the thematic reconstruction of |c",
        "the scientific |o of the |c",
        "the evolution of |2 |o over a given time limit",
        "any commonality between the |c and the |c",
        "the greater |c of the |c",
        "the universe of |o",
        "any discrete or |2 configuration mode",
        "the |4",
        "an elemental change in the |c",
        "the work being done at the 'coal-face'",
        "what is beginning to be termed the \"|c\"",
        "the |c. We need to be able to rationalize |D",
        "the |c. We can then |e play back our understanding of |D",
        "the |c. Everything should be done to expedite |D",
        "The |c. The advent of the |c |e |d |D",
        "the |c. The |c makes this |e inevitable",
        "the |c. The |3 is of a |2 nature",
        "the |c. This may be due to a lack of a |c.",
        "the |c. Therefore a maximum of flexibility is required",
        "any |c. This can be deduced from the |c",
        "the |c. This may |e flounder on the |c",
        "the |c. This may explain why the |c |e |d |D",
        "the |c. This trend may dissipate due to the |c"
    ];

    public static string[] adverbs =
    [
        "substantively",
        "intuitively",
        "uniquely",
        "semantically",
        "necessarily",
        "stringently",
        "precisely",
        "rigorously",
        "broadly",
        "generally",
        "implicitly",
        "inherently",
        "presumably",
        "preeminently",
        "analytically",
        "logically",
        "ontologically",
        "wholly",
        "basically",
        "demonstrably",
        "strictly",
        "functionally",
        "radically",
        "definitely",
        "positively",
        "intrinsically",
        "generally",
        "overwhelmingly",
        "essentially",
        "vitally",
        "operably",
        "fundamentally",
        "significantly",
        "retroactively",
        "retrospectively",
        "globally",
        "clearly",
        "disconcertingly"
    ];

    public static string[] verbs =
    [
        "stimulates",
        "spreads",
        "improves",
        "energises",
        "emphasizes",
        "subordinates",
        "posits",
        "perceives",
        "de-stabilizes",
        "Revisits",
        "connotes",
        "signifies",
        "indicates",
        "increases",
        "supports",
        "rationalises",
        "provokes",
        "de-actualises",
        "relocates",
        "yields",
        "implies",
        "designates",
        "reflects",
        "sustains",
        "supplements",
        "represents",
        "re-iterates",
        "juxtaposes",
        "provides",
        "maximizes",
        "identifies",
        "furnishes",
        "supplies",
        "affords",
        "yields",
        "formulates",
        "focuses on",
        "depicts",
        "embodies",
        "exemplifies",
        "expresses",
        "personifies",
        "symbolizes",
        "typifies",
        "replaces",
        "supplants",
        "denotes",
        "depicts",
        "expresses",
        "illustrates",
        "implies",
        "symbolizes",
        "delineates",
        "depicts",
        "illustrates",
        "portrays",
        "clarifies",
        "depicts",
        "interprets",
        "delineates",
        "reflects",
        "evinces",
        "expresses",
        "indicates",
        "manifests",
        "reveals",
        "shows",
        "delineates",
        "represents",
        "anticipates",
        "denotes",
        "identifies",
        "indicates",
        "symbolizes",
        "diminishes",
        "lessens",
        "represses",
        "suppresses",
        "weakens",
        "accentuates",
        "amplifies",
        "heightens",
        "highlights",
        "spotlights",
        "stresses",
        "underlines",
        "underscores",
        "asserts",
        "reiterates",
        "restates",
        "stresses",
        "enhances",
        "amends",
        "translates",
        "specifies"
    ];

    public static string[] firstAdjectivePhrases =
    [
        "comprehensive",
        "targeted",
        "realigned",
        "client focussed",
        "best practice",
        "value added",
        "quality driven",
        "basic",
        "principal",
        "central",
        "essential",
        "primary",
        "indicative",
        "continuous",
        "critical",
        "prevalent",
        "preeminent",
        "unequivocal",
        "sanctioned",
        "logical",
        "reproducible",
        "methodological",
        "relative",
        "integrated",
        "fundamental",
        "cohesive",
        "interactive",
        "comprehensive",
        "critical",
        "potential",
        "vibrant",
        "total",
        "additional",
        "secondary",
        "primary",
        "heuristic",
        "complex",
        "pivotal",
        "quasi-effectual",
        "dominant",
        "characteristic",
        "ideal",
        "doctrine of the",
        "key",
        "independent",
        "deterministic",
        "assumptions about the",
        "heuristic",
        "crucial",
        "meaningful",
        "implicit",
        "analogous",
        "explicit",
        "integrational",
        "non-viable",
        "directive",
        "consultative",
        "collaborative",
        "delegative",
        "tentative",
        "privileged",
        "common",
        "hypothetical",
        "metathetical",
        "marginalised",
        "systematised",
        "evolutional",
        "parallel",
        "functional",
        "responsive",
        "optical",
        "inductive",
        "objective",
        "synchronised",
        "compatible",
        "prominent",
        "three-phase",
        "two-phase",
        "balanced",
        "legitimate",
        "subordinated",
        "complementary",
        "proactive",
        "truly global",
        "interdisciplinary",
        "homogeneous",
        "hierarchical",
        "technical",
        "alternative",
        "strategic",
        "environmental",
        "closely monitored",
        "three-tier",
        "inductive",
        "fully integrated",
        "fully interactive",
        "ad-hoc",
        "ongoing",
        "proactive",
        "dynamic",
        "flexible",
        "verifiable",
        "falsifiable",
        "transitional",
        "mechanism-independent",
        "synergistic",
        "high-level"
    ];

    public static string[] secondAdjectivePhrases =
    [
        "fast-track",
        "transparent",
        "results-driven",
        "subsystem",
        "test",
        "configuration",
        "mission",
        "functional",
        "referential",
        "numinous",
        "paralyptic",
        "radical",
        "paratheoretical",
        "consistent",
        "macro",
        "interpersonal",
        "auxiliary",
        "empirical",
        "theoretical",
        "corroborated",
        "management",
        "organizational",
        "monitored",
        "consensus",
        "reciprocal",
        "unprejudiced",
        "digital",
        "logic",
        "transitional",
        "incremental",
        "equivalent",
        "universal",
        "sub-logical",
        "hypothetical",
        "conjectural",
        "conceptual",
        "empirical",
        "spatio-temporal",
        "third-generation",
        "epistemological",
        "diffusible",
        "specific",
        "non-referent",
        "overriding",
        "politico-strategical",
        "economico-social",
        "on-going",
        "extrinsic",
        "intrinsic",
        "multi-media",
        "integrated",
        "effective",
        "overall",
        "principal",
        "prime",
        "major",
        "empirical",
        "definitive",
        "explicit",
        "determinant",
        "precise",
        "cardinal",
        "principal",
        "affirming",
        "harmonizing",
        "central",
        "essential",
        "primary",
        "indicative",
        "mechanistic",
        "continuous",
        "critical",
        "prevalent",
        "preeminent",
        "unequivocal",
        "sanctioned",
        "logical",
        "reproducible",
        "methodological",
        "relative",
        "integrated",
        "fundamental",
        "cohesive",
        "interactive",
        "comprehensive",
        "critical",
        "potential",
        "total",
        "additional",
        "secondary",
        "primary",
        "heuristic",
        "complex",
        "pivotal",
        "quasi-effectual",
        "dominant",
        "characteristic",
        "ideal",
        "independent",
        "deterministic",
        "heuristic",
        "crucial",
        "meaningful",
        "implicit",
        "analogous",
        "explicit",
        "integrational",
        "directive",
        "collaborative",
        "entative",
        "privileged",
        "common",
        "hypothetical",
        "metathetical",
        "marginalised",
        "systematised",
        "evolutional",
        "parallel",
        "functional",
        "responsive",
        "optical",
        "inductive",
        "objective",
        "synchronised",
        "compatible",
        "prominent",
        "legitimate",
        "subordinated",
        "complementary",
        "homogeneous",
        "hierarchical",
        "alternative",
        "environmental",
        "inductive",
        "transitional",
        "Philosophical",
        "latent",
        "conscious",
        "practical",
        "temperamental",
        "impersonal",
        "personal",
        "subjective",
        "objective",
        "dynamic",
        "inclusive",
        "paradoxical",
        "pure",
        "central",
        "psychic",
        "associative",
        "intuitive",
        "free-floating",
        "empirical",
        "superficial",
        "predominant",
        "actual",
        "mutual",
        "arbitrary",
        "inevitable",
        "immediate",
        "affirming",
        "functional",
        "referential",
        "numinous",
        "paralyptic",
        "radical",
        "paratheoretical",
        "consistent",
        "interpersonal",
        "auxiliary",
        "empirical",
        "theoretical",
        "reciprocal",
        "unprejudiced",
        "transitional",
        "incremental",
        "equivalent",
        "universal",
        "sub-logical",
        "hypothetical",
        "conjectural",
        "conceptual",
        "empirical",
        "spatio-temporal",
        "epistemological",
        "diffusible",
        "specific",
        "non-referent",
        "overriding",
        "politico-strategical",
        "economico-social",
        "on-going",
        "extrinsic",
        "intrinsic",
        "effective",
        "principal",
        "prime",
        "major",
        "empirical",
        "definitive",
        "explicit",
        "determinant",
        "precise",
        "cardinal",
        "geometric",
        "naturalistic",
        "linear",
        "distinctive",
        "phylogenetic",
        "ethical",
        "theoretical",
        "economic",
        "aesthetic",
        "personal",
        "social",
        "discordant",
        "political",
        "religious",
        "artificial",
        "collective",
        "permanent",
        "metaphysical",
        "organic",
        "mensurable",
        "expressive",
        "governing",
        "subjective",
        "empathic",
        "imaginative",
        "ethical",
        "expressionistic",
        "resonant",
        "vibrant"
    ];

    public static string[] nounPhrases =
    [
        "|o",
        "|o",
        "|o",
        "|o",
        "|o",
        "|o",
        "|o",
        "|o",
        "|o",
        "|o",
        "|o",
        "|o",
        "|o",
        "|o",
        "|o",
        "|o",
        "|o",
        "|o",
        "|o",
        "|o",
        "|o",
        "|o",
        "|o",
        "|o",
        "|o",
        "|o",
        "|o",
        "|o",
        "|o",
        "|o",
        "development",
        "program",
        "baseline",
        "reconstruction",
        "discordance",
        "monologism",
        "substructure",
        "legitimisation",
        "principle",
        "constraints",
        "management option",
        "strategy",
        "transposition",
        "auto-interruption",
        "derivation",
        "option",
        "flexibility",
        "proposal",
        "formulation",
        "item",
        "issue",
        "capability",
        "mobility",
        "programming",
        "concept",
        "time-phase",
        "dimension",
        "faculty",
        "capacity",
        "proficiency",
        "reciprocity",
        "fragmentation",
        "consolidation",
        "projection",
        "interface",
        "hardware",
        "contingency",
        "dialog",
        "dichotomy",
        "concept",
        "parameter",
        "algorithm",
        "milieu",
        "terms of reference",
        "item",
        "vibrancy",
        "reaction",
        "casuistry",
        "theme",
        "teleology",
        "symbolism",
        "resource allocation",
        "certification project",
        "functionality",
        "specification",
        "matrix",
        "rationalization",
        "consolidation",
        "remediation",
        "facilitation",
        "simulation",
        "evaluation",
        "competence",
        "familiarisation",
        "transformation",
        "apriorism",
        "conventionalism",
        "verification",
        "functionality",
        "component",
        "factor",
        "antitheseis",
        "desiderata",
        "metaphor",
        "metalanguage",
        "globalisation",
        "initiative",
        "projection",
        "partnership",
        "priority",
        "service",
        "support",
        "best-practice",
        "change",
        "delivery",
        "funding",
        "resources"
    ];

    public static string[] cliches =
    [
        "|o of |o",
        "|o of |o",
        "|o of |o",
        "|o of |o",
        "|o of |o",
        "|o of |o",
        "|o of |o",
        "|o of |o",
        "development strategy",
        "decision support",
        "fourth-generation environment",
        "application systems",
        "feedback process",
        "function hierarchy analysis",
        "structured business analysis",
        "base information",
        "final consolidation",
        "design criteria",
        "iterative design process",
        "common interface",
        "ongoing support",
        "relational flexibility",
        "referential integrity",
        "strategic framework",
        "dynamic systems strategy",
        "functional decomposition",
        "operational situation",
        "individual action plan",
        "key behavioural skills",
        "set of constraints",
        "structure plan",
        "contingency planning",
        "resource planning",
        "participant feedback",
        "referential function",
        "passive result",
        "aims and constraints",
        "strategic opportunity",
        "development of systems resource",
        "major theme of the |c",
        "technical coherence",
        "cost-effective application",
        "high leverage area",
        "key leveraging technology",
        "known strategic opportunity",
        "internal resource capability",
        "interactive concern-control system",
        "key technology",
        "prime objective",
        "key area of opportunity",
        "present infrastructure",
        "enabling technology",
        "key objective",
        "areas of particular expertise",
        "overall business benefit",
        "competitive practice and technology",
        "flexible manufacturing system",
        "adequate resource level",
        "|e sophisticated hardware",
        "external agencies",
        "anticipated fourth-generation equipment",
        "maintenance of current standards",
        "adequate development of any necessary measures",
        "critical component in the",
        "active process of information gathering",
        "general milestones",
        "adequate timing control",
        "quantitative and discrete targets",
        "subsystem compatibility testing",
        "structural design, based on system engineering concepts",
        "key principles behind the |c",
        "constraints of manpower resourcing",
        "necessity for budgetary control",
        "discipline of resource planning",
        "diverse hardware environment",
        "product lead times",
        "access to corporate systems",
        "overall certification project",
        "commitment to industry standards",
        "general increase in office efficiency",
        "preliminary qualification limit",
        "calculus of consequence",
        "corollary",
        "reverse image",
        "logical data structure",
        "philosophy of commonality and standardization",
        "impact on overall performance",
        "multilingual cynicism",
        "functional synergy",
        "backbone of connectivity",
        "integrated set of requirements",
        "ongoing |3 philosophy",
        "strategic requirements",
        "integration of |c with strategic initiatives",
        "established analysis and design methodology",
        "corporate information exchange",
        "separate roles and significances of the |c",
        "formal strategic direction",
        "integrated set of facilities",
        "appreciation of vested responsibilities",
        "potential globalisation candidate",
        "tentative priority",
        "performance objectives",
        "global business practice",
        "functionality matrix",
        "priority sequence",
        "system elements",
        "life cycle phase",
        "operations scenario",
        "total system rationale",
        "conceptual baseline",
        "incremental delivery",
        "requirements hierarchy",
        "functional baseline",
        "system critical design",
        "capability constraint",
        "matrix of supporting elements",
        "lead group concept",
        "dominant factor",
        "modest correction",
        "element of volatility",
        "inevitability of amelioration",
        "attenuation of subsequent feedback",
        "chance of entropy within the system",
        "associated supporting element",
        "intrinsic homeostasis within the metasystem",
        "characterization of specific information",
        "organization structure",
        "constant flow of effective information",
        "key business objectives",
        "life cycle",
        "large portion of the co-ordination of communication",
        "corporate procedure",
        "proposed scenario"
    ];

    public static string[] prefixes =
    [
        "the",
        "the",
        "the",
        "the",
        "the",
        "the",
        "the",
        "the",
        "the",
        "any",
        "any",
        "what might be described as the",
        "what amounts to the",
        "a large proportion of the",
        "what has been termed the",
        "a unique facet of the",
        "a significant aspect of the",
        "the all-inclusiveness of the",
        "any inherent dangers of the",
        "the obvious necessity for the",
        "the basis of any",
        "the basis of the",
        "any formalization of the",
        "the quest for the",
        "any significant enhancements in the",
        "the underlying surrealism of the",
        "the feasibility of the",
        "the requirements of",
        "an implementation strategy for",
        "any fundamental dichotomies of the",
        "a concept of what we have come to call the",
        "the infrastructure of the",
        "a proven solution to the",
        "a percentage of the",
        "a proportion of the",
        "an issue of the",
        "any consideration of the",
        "a factor within the",
        "the adequate functionality of the",
        "the principle of the",
        "the constraints of the",
        "a realization the importance of the",
        "the criterion of",
        "a unique facet of",
        "the consolidation of the",
        "a preponderance of the"
    ];

    public static string[] artyNouns =
    [
        "discordance",
        "legitimisation",
        "principle",
        "transposition",
        "dimension",
        "reciprocity",
        "fragmentation",
        "projection",
        "dichotomy",
        "concept",
        "theme",
        "teleology",
        "symbolism",
        "transformation",
        "antithesis",
        "desiderata",
        "metaphor",
        "metalanguage",
        "reciprocity",
        "consciousness",
        "feeling",
        "fact",
        "individuality",
        "comparison",
        "awareness",
        "expression",
        "appreciation",
        "correspondence",
        "interpretation",
        "interpolation",
        "interpenetration",
        "statement",
        "emphasis",
        "feeling",
        "empathy",
        "sensibility",
        "insight",
        "attitude",
        "consciousness",
        "absorption",
        "self-forgetfulness",
        "parallelism",
        "classification",
        "evidence",
        "aspect",
        "distinction",
        "idealism",
        "naturalism",
        "disposition",
        "apprehension",
        "morality",
        "object",
        "idealism",
        "quality",
        "romanticism",
        "realism",
        "idealism",
        "quality",
        "transposition",
        "determinism",
        "attitude",
        "terminology",
        "individuality",
        "category",
        "integration",
        "concept",
        "phenomenon",
        "element",
        "analogy",
        "perception",
        "principle",
        "aesthetic",
        "spirituality",
        "aspiration",
        "quality",
        "disposition",
        "subjectivism",
        "objectivism",
        "contemplation",
        "vivacity",
        "feeling",
        "empathy",
        "value",
        "sensation",
        "causation",
        "affectability",
        "impulse",
        "attitude",
        "sensibility",
        "material",
        "aspect",
        "problem",
        "implication",
        "hierarchy",
        "process",
        "provenance",
        "discord",
        "milieu"
    ];

    public static string[] surnames =
    [
        "Bennet",
        "Blotchet-Halls",
        "Carson",
        "Clarke",
        "DeFrance",
        "del Castillo",
        "Dull",
        "Green",
        "Greene",
        "Gringlesby",
        "Hunter",
        "Karsen",
        "Locksley",
        "MacFeather",
        "McBadden",
        "O'Leary",
        "Panteley",
        "Poel",
        "Powys-Lybbe",
        "Smith",
        "Straight",
        "Stringer",
        "White",
        "Yokomoto"
    ];

    public static string[] forenames =
    [
        "Abraham",
        "Reginald",
        "Cheryl",
        "Michel",
        "Innes",
        "Ann",
        "Marjorie",
        "Matthew",
        "Mark",
        "Luke",
        "John",
        "Burt",
        "Lionel",
        "Humphrey",
        "Andrew",
        "Jenny",
        "Sheryl",
        "Livia",
        "Charlene",
        "Winston",
        "Heather",
        "Michael",
        "Sylvia",
        "Albert",
        "Anne",
        "Meander",
        "Dean",
        "Dirk",
        "Desmond",
        "Akiko"
    ];

    public static string[] buzzPhrases =
    [
        "|1 |2 |3",
        "|1 |2 |3",
        "|2 |3",
        "|1 |2 |3",
        "|1 |2 |3",
        "|4",
        "|4"
    ];

    public static string[] cardinalSequences =
    [
        "one",
        "two",
        "three",
        "four",
        "five",
        "six",
        "seven",
        "eight",
        "nine",
        "ten",
        "eleven",
        "twelve"
    ];

    public static string[] ordinalSequences =
    [
        "first",
        "second",
        "third",
        "fourth",
        "fifth"
    ];

    public static string[] maybeHeading =
    [
        "",
        "",
        "The |uc.",
        ""
    ];

    public static bool[] maybeParagraph =
    [
        false,
        false,
        true,
        false
    ];
}

================================================
FILE: src/WaffleGenerator/Extensions.cs
================================================
static class Extensions
{
    public static bool EndsWith(this StringBuilder builder, params char[] chars)
    {
        for (var i = builder.Length - 1; i != -1; i--)
        {
            var builderChar = builder[i];
            if (char.IsWhiteSpace(builderChar))
            {
                continue;
            }

            foreach (var c in chars)
            {
                if (c == builderChar)
                {
                    return true;
                }
            }

            return false;
        }

        return false;
    }
}

================================================
FILE: src/WaffleGenerator/Heading.cs
================================================
record Heading(string Quote, string Cite, string Buzz, string Title);

================================================
FILE: src/WaffleGenerator/InnerEngine.cs
================================================
using System.Globalization;

class InnerEngine(Func<int, int> random)
{
    int cardinalSequence;
    int ordinalSequence;
    string? title;
    string? quote;
    string? cite;
    string? buzz;
    List<Paragraph> paragraphs = [];

    void EvaluateRandomPhrase(string[] phrases, StringBuilder output)
    {
        var index = random(phrases.Length);
        EvaluatePhrase(phrases[index], output);
    }

    void EvaluatePhrase(string phrase, StringBuilder result)
    {
        for (var i = 0; i < phrase.Length; i++)
        {
            if (phrase[i] == '|' && i + 1 < phrase.Length)
            {
                i++;

                if (phrase[i] == 'u' && i + 1 < phrase.Length)
                {
                    var escape = new StringBuilder();
                    i++;
                    EvaluateChar(phrase[i], escape);
                    result.Append(TitleCaseWords(escape.ToString()));
                }
                else
                {
                    EvaluateChar(phrase[i], result);
                }
            }
            else
            {
                if (i == 0 && HasSentenceEnded(result))
                {
                    result.Append(char.ToUpper(phrase[i]));
                }
                else
                {
                    result.Append(phrase[i]);
                }
            }
        }
    }

    void EvaluateChar(char c, StringBuilder builder)
    {
        switch (c)
        {
            case 'a':
                EvaluateCardinalSequence(builder);
                break;
            case 'b':
                EvaluateOrdinalSequence(builder);
                break;
            case 'c':
                EvaluateRandomPhrase(Constants.buzzPhrases, builder);
                break;
            case 'd':
                EvaluateRandomPhrase(Constants.verbs, builder);
                break;
            case 'e':
                EvaluateRandomPhrase(Constants.adverbs, builder);
                break;
            case 'f':
                EvaluateRandomPhrase(Constants.forenames, builder);
                break;
            case 's':
                EvaluateRandomPhrase(Constants.surnames, builder);
                break;
            case 'o':
                EvaluateRandomPhrase(Constants.artyNouns, builder);
                break;
            case 'y':
                RandomDate(builder);
                break;
            case 'h':
                EvaluateRandomPhrase(Constants.prefixes, builder);
                break;
            case 'A':
                EvaluateRandomPhrase(Constants.preamblePhrases, builder);
                break;
            case 'B':
                EvaluateRandomPhrase(Constants.subjectPhrases, builder);
                break;
            case 'C':
                EvaluateRandomPhrase(Constants.verbPhrases, builder);
                break;
            case 'D':
                EvaluateRandomPhrase(Constants.objectPhrases, builder);
                break;
            case '1':
                EvaluateRandomPhrase(Constants.firstAdjectivePhrases, builder);
                break;
            case '2':
                EvaluateRandomPhrase(Constants.secondAdjectivePhrases, builder);
                break;
            case '3':
                EvaluateRandomPhrase(Constants.nounPhrases, builder);
                break;
            case '4':
                EvaluateRandomPhrase(Constants.cliches, builder);
                break;
            case 't':
                builder.Append(title);
                break;
        }
    }

    static bool HasSentenceEnded(StringBuilder result) =>
        result.EndsWith('.', '>');

    void EvaluateCardinalSequence(StringBuilder output)
    {
        if (cardinalSequence >= Constants.cardinalSequences.Length)
        {
            cardinalSequence = 0;
        }

        output.Append(Constants.cardinalSequences[cardinalSequence++]);
    }

    void EvaluateOrdinalSequence(StringBuilder output)
    {
        if (ordinalSequence >= Constants.ordinalSequences.Length)
        {
            ordinalSequence = 0;
        }

        output.Append(Constants.ordinalSequences[ordinalSequence++]);
    }

    void RandomDate(StringBuilder output) =>
        output.AppendFormat("{0:04u}", DateTime.Now.Year - random(31));

    static string TitleCaseWords(string input) =>
        CultureInfo.CurrentCulture.TextInfo.ToTitleCase(input);

    public WaffleContent GetContent(int paragraphsCount, bool includeHeading)
    {
        cardinalSequence = 0;
        ordinalSequence = 0;
        Heading? heading = null;
        if (includeHeading)
        {
            title = BuildTitle();
            var quoteBuilder = new StringBuilder();
            EvaluatePhrase("|A |B |C |t", quoteBuilder);
            quote = quoteBuilder.ToString();
            var citeBuilder = new StringBuilder();
            EvaluatePhrase("|f |s in The Journal of the |uc (|uy)", citeBuilder);
            cite = citeBuilder.ToString();
            var buzzBuilder = new StringBuilder();
            EvaluatePhrase("|c.", buzzBuilder);
            buzz = buzzBuilder.ToString();
            heading = new(quote, cite, buzz, title);
        }

        for (var i = 0; i < paragraphsCount; i++)
        {
            string? paragraphHeading = null;
            if (i != 0)
            {
                var headingBuilder = new StringBuilder();
                EvaluateRandomPhrase(Constants.maybeHeading, headingBuilder);
                paragraphHeading = headingBuilder.ToString();
                if (string.IsNullOrWhiteSpace(paragraphHeading))
                {
                    paragraphHeading = null;
                }
            }

            var bodyBuilder = new StringBuilder();
            EvaluatePhrase("|A |B |C |D.", bodyBuilder);
            var paragraph = new Paragraph(paragraphHeading, bodyBuilder.ToString());
            paragraphs.Add(paragraph);
        }

        return new(heading, paragraphs);
    }

    public string BuildTitle()
    {
        var builder = new StringBuilder();
        EvaluatePhrase("the |o of |2 |o", builder);

        return TitleCaseWords(builder.ToString());
    }
}

================================================
FILE: src/WaffleGenerator/Paragraph.cs
================================================
record Paragraph(string? Heading, string Body);


================================================
FILE: src/WaffleGenerator/WaffleContent.cs
================================================
record WaffleContent(Heading? Heading, List<Paragraph> Paragraphs);

================================================
FILE: src/WaffleGenerator/WaffleEngine.cs
================================================
namespace WaffleGenerator;

public static class WaffleEngine
{
    public static string Html(int seed, int paragraphs, bool includeHeading, bool includeHeadAndBody) =>
        Html(new Random(seed), paragraphs, includeHeading, includeHeadAndBody);

    public static string Html(int paragraphs, bool includeHeading, bool includeHeadAndBody) =>
        Html(new Random(), paragraphs, includeHeading, includeHeadAndBody);

    public static string Html(Random random, int paragraphs, bool includeHeading, bool includeHeadAndBody) =>
        Html(_ => random.Next(0, _), paragraphs, includeHeading, includeHeadAndBody);

    public static string Html(Func<int, int> random, int paragraphs, bool includeHeading, bool includeHeadAndBody)
    {
        var builder = new StringBuilder();
        var innerEngine = new InnerEngine(random);
        var waffleContent = innerEngine.GetContent(paragraphs, includeHeading);

        var heading = waffleContent.Heading;
        if (heading != null)
        {
            if (includeHeadAndBody)
            {
                builder.AppendLine(
                    $"""
                     <html>
                     <head>
                     <title>{heading.Title}</title>
                     </head>
                     <body>
                     """);
            }

            builder.AppendLine(
                $"""
                 <h1>{heading.Title}</h1>
                 <blockquote>'{heading.Quote}'<br>
                 <cite>{heading.Cite}</cite></blockquote>
                 <h2>{heading.Buzz}</h2>
                 """);
        }

        foreach (var paragraph in waffleContent.Paragraphs)
        {
            builder.AppendLine("<p>");
            if (paragraph.Heading != null)
            {
                builder.AppendLine($"<h2>{paragraph.Heading}</h2>");
            }

            builder.AppendLine(paragraph.Body);
            builder.AppendLine("</p>");
        }

        if (includeHeadAndBody)
        {
            builder.AppendLine("</body>");
            builder.Append("</html>");
        }

        return builder.ToString();
    }

    public static string Title() =>
        Title(new Random());

    public static string Title(int seed) =>
        Title(new Random(seed));

    public static string Title(Random random) =>
        Title(_ => random.Next(0, _));

    public static string Title(Func<int, int> random)
    {
        var innerEngine = new InnerEngine(random);
        return innerEngine.BuildTitle();
    }

    public static string Markdown(int seed, int paragraphs, bool includeHeading) =>
        Markdown(new Random(seed), paragraphs, includeHeading);

    public static string Markdown(int paragraphs, bool includeHeading) =>
        Markdown(new Random(), paragraphs, includeHeading);

    public static string Markdown(Random random, int paragraphs, bool includeHeading) =>
        Markdown(_ => random.Next(0, _), paragraphs, includeHeading);

    public static string Markdown(Func<int, int> random, int paragraphs, bool includeHeading)
    {
        var builder = new StringBuilder();
        var innerEngine = new InnerEngine(random);
        var waffleContent = innerEngine.GetContent(paragraphs, includeHeading);

        var heading = waffleContent.Heading;
        if (heading != null)
        {
            builder.AppendLine(
                $"""
                 # {heading.Title}

                  > {heading.Quote}

                  * {heading.Cite}

                 ## {heading.Buzz}

                 """);
        }

        foreach (var paragraph in waffleContent.Paragraphs)
        {
            if (paragraph.Heading != null)
            {
                builder.AppendLine($"## {paragraph.Heading}");
                builder.AppendLine();
            }

            builder.AppendLine(paragraph.Body);
            builder.AppendLine();
        }

        return builder.ToString();
    }

    public static string Text(int seed, int paragraphs, bool includeHeading) =>
        Text(new Random(seed), paragraphs, includeHeading);

    public static string Text(int paragraphs, bool includeHeading) =>
        Text(new Random(), paragraphs, includeHeading);

    public static string Text(Random random, int paragraphs, bool includeHeading) =>
        Text(_ => random.Next(0, _), paragraphs, includeHeading);

    public static string Text(Func<int, int> random, int paragraphs, bool includeHeading)
    {
        var builder = new StringBuilder();
        var innerEngine = new InnerEngine(random);
        var waffleContent = innerEngine.GetContent(paragraphs, includeHeading);
        var heading = waffleContent.Heading;
        if (heading != null)
        {
            builder.AppendLine(
                $"""
                 {heading.Title}

                 '{heading.Quote}'

                  - {heading.Cite}

                 {heading.Buzz}

                 """);
        }

        var lastIndex = waffleContent.Paragraphs.Count - 1;
        for (var index = 0; index < waffleContent.Paragraphs.Count; index++)
        {
            var paragraph = waffleContent.Paragraphs[index];
            if (paragraph.Heading != null)
            {
                builder.AppendLine(paragraph.Heading);
                builder.AppendLine();
            }

            builder.AppendLine(paragraph.Body);
            if (index != lastIndex)
            {
                builder.AppendLine();
            }
        }

        return builder.ToString();
    }
}

================================================
FILE: src/WaffleGenerator/WaffleGenerator.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFrameworks>net8.0;net9.0;net10.0;net48</TargetFrameworks>
    <Description>Produces of text which, on first glance, looks like real, ponderous, prose; replete with clichés.</Description>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Polyfill" PrivateAssets="all" />
    <PackageReference Include="ProjectDefaults" PrivateAssets="all" />
    <PackageReference Include="Microsoft.Sbom.Targets" PrivateAssets="all" Condition="'$(CI)' == 'true'" />
  </ItemGroup>
</Project>

================================================
FILE: src/WaffleGenerator.Bogus/Waffle.cs
================================================
using WaffleGenerator;

namespace Bogus;

public class Waffle : DataSet
{
    public string Html(int paragraphs = 1, bool includeHeading = true, bool includeHeadAndBody = true) =>
        WaffleEngine.Html(RandomNumber, paragraphs, includeHeading, includeHeadAndBody);

    public string Text(int paragraphs = 1, bool includeHeading = true) =>
        WaffleEngine.Text(RandomNumber, paragraphs, includeHeading);

    public string Markdown(int paragraphs = 1, bool includeHeading = true) =>
        WaffleEngine.Markdown(RandomNumber, paragraphs, includeHeading);

    public string Title() =>
        WaffleEngine.Title(RandomNumber);

    int RandomNumber(int i) =>
        Random.Number(i - 1);
}

================================================
FILE: src/WaffleGenerator.Bogus/WaffleGenerator.Bogus.csproj
================================================
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFrameworks>net9.0;net10.0;net48</TargetFrameworks>
    <Description>Produces Bogus (https://github.com/bchavez/Bogus) text which, on first glance, looks like real, ponderous, prose; replete with clichés.</Description>
    <DefineConstants>$(DefineConstants);Bogus</DefineConstants>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Bogus" />
    <ProjectReference Include="..\WaffleGenerator\WaffleGenerator.csproj" />
    <PackageReference Include="ProjectDefaults" PrivateAssets="all" />
  </ItemGroup>
</Project>

================================================
FILE: src/WaffleGenerator.Bogus/WaffleGeneratorExtensions.cs
================================================
using Bogus.Premium;

namespace Bogus;

public static class WaffleExtensions
{
    public static Waffle Waffle(this Faker faker) =>
        ContextHelper.GetOrSet(faker, () => new Waffle());

    public static string WaffleHtml(this Faker faker, int paragraphs = 1, bool includeHeading = true) =>
        faker
            .Waffle()
            .Html(paragraphs, includeHeading);

    public static string WaffleTitle(this Faker faker) =>
        faker
            .Waffle()
            .Title();

    public static string WaffleText(this Faker faker, int paragraphs = 1, bool includeHeading = true) =>
        faker
            .Waffle()
            .Text(paragraphs, includeHeading);

    public static string WaffleMarkdown(this Faker faker, int paragraphs = 1, bool includeHeading = true) =>
        faker
            .Waffle()
            .Markdown(paragraphs, includeHeading);
}

================================================
FILE: src/WaffleGenerator.slnx
================================================
<Solution>
  <Folder Name="/Solution Items/">
    <File Path="../.gitattributes" />
    <File Path="appveyor.yml" />
    <File Path="Directory.Build.props" />
    <File Path="Directory.Packages.props" />
  </Folder>
  <Project Path="Tests/Tests.csproj" />
  <Project Path="WaffleGenerator.Bogus/WaffleGenerator.Bogus.csproj" />
  <Project Path="WaffleGenerator/WaffleGenerator.csproj" />
</Solution>

================================================
FILE: src/WaffleGenerator.slnx.DotSettings
================================================
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
	<s:String x:Key="/Default/Environment/InjectedLayers/FileInjectedLayer/=BC2D76E54BBA65499DDED823A15FC688/RelativePath/@EntryValue">..\Shared.sln.DotSettings</s:String>
	<s:Boolean x:Key="/Default/Environment/InjectedLayers/FileInjectedLayer/=BC2D76E54BBA65499DDED823A15FC688/@KeyIndexDefined">True</s:Boolean>
	<s:Boolean x:Key="/Default/Environment/InjectedLayers/InjectedLayerCustomization/=FileBC2D76E54BBA65499DDED823A15FC688/@KeyIndexDefined">True</s:Boolean>
	<s:Double x:Key="/Default/Environment/InjectedLayers/InjectedLayerCustomization/=FileBC2D76E54BBA65499DDED823A15FC688/RelativePriority/@EntryValue">1</s:Double>
</wpf:ResourceDictionary>

================================================
FILE: src/appveyor.yml
================================================
image: Visual Studio 2022
environment:
  DOTNET_NOLOGO: true
  DOTNET_CLI_TELEMETRY_OPTOUT: true
  DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true
build_script:
- pwsh: |
    Invoke-WebRequest "https://dot.net/v1/dotnet-install.ps1" -OutFile "./dotnet-install.ps1"
    ./dotnet-install.ps1 -JSonFile src/global.json -Architecture x64 -InstallDir 'C:\Program Files\dotnet'
- dotnet build src --configuration Release
- dotnet test src --configuration Release --no-build --no-restore
test: off
on_failure:
  - ps: |
      $root = (Get-Location).Path
      Get-ChildItem *.received.* -Recurse | % {
        $rel = $_.FullName.Substring($root.Length + 1)
        Push-AppveyorArtifact $_.FullName -FileName $rel
      }
artifacts:
- path: nugets\*.nupkg

================================================
FILE: src/global.json
================================================
{
  "sdk": {
    "version": "10.0.300",
    "allowPrerelease": true,
    "rollForward": "latestFeature"
  }
}

================================================
FILE: src/mdsnippets.json
================================================
{
  "$schema": "https://raw.githubusercontent.com/SimonCropp/MarkdownSnippets/master/schema.json",
  "TocExcludes": [ "Release Notes", "Icon" ],
  "MaxWidth": 80,
  "ValidateContent": false,
  "Convention": "InPlaceOverwrite"
}

================================================
FILE: src/nuget.config
================================================
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <config>
    <add key="signatureValidationMode" value="require" />
  </config>
  <packageSources>
    <clear />
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  </packageSources>
  <trustedSigners>
    <repository name="nuget.org" serviceIndex="https://api.nuget.org/v3/index.json">
      <!-- Current: expires May 15, 2024 -->
      <certificate fingerprint="5A2901D6ADA3D18260B9C6DFE2133C95D74B9EEF6AE0E5DC334C8454D1477DF4"
                   hashAlgorithm="SHA256"
                   allowUntrustedRoot="false" />
      <!-- Next -->
      <certificate fingerprint="1F4B311D9ACC115C8DC8018B5A49E00FCE6DA8E2855F9F014CA6F34570BC482D"
                   hashAlgorithm="SHA256"
                   allowUntrustedRoot="false" />
      <!-- For some very old MS packages -->
      <certificate fingerprint="0E5F38F57DC1BCC806D8494F4F90FBCEDD988B46760709CBEEC6F4219AA6157D"
                   hashAlgorithm="SHA256"
                   allowUntrustedRoot="false" />
    </repository>
  </trustedSigners>
</configuration>
Download .txt
gitextract_pa37ucf7/

├── .editorconfig
├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── config.yml
│   │   └── feature_request.md
│   ├── dependabot.yml
│   ├── stale.yml
│   └── workflows/
│       ├── merge-dependabot.yml
│       ├── milestone-release.yml
│       └── on-push-do-doco.yml
├── .gitignore
├── RedGateLicense.txt
├── code_of_conduct.md
├── license.txt
├── readme.md
└── src/
    ├── Directory.Build.props
    ├── Directory.Packages.props
    ├── Shared.sln.DotSettings
    ├── Tests/
    │   ├── FakerUsage.cs
    │   ├── GlobalUsings.cs
    │   ├── ModuleInitializer.cs
    │   ├── Tests.csproj
    │   ├── WaffleEngineTests.HtmlWaffleMultiple.verified.txt
    │   ├── WaffleEngineTests.HtmlWaffleMultipleWithHeadAndBody.verified.txt
    │   ├── WaffleEngineTests.HtmlWaffleNoHeading.verified.txt
    │   ├── WaffleEngineTests.HtmlWaffleNoHeadingWithHeadAndBody.verified.txt
    │   ├── WaffleEngineTests.HtmlWaffleSingle.verified.txt
    │   ├── WaffleEngineTests.HtmlWaffleSingleWithHeadAndBody.verified.txt
    │   ├── WaffleEngineTests.MarkdownWaffleMultiple.verified.md
    │   ├── WaffleEngineTests.MarkdownWaffleNoHeading.verified.md
    │   ├── WaffleEngineTests.MarkdownWaffleSingle.verified.md
    │   ├── WaffleEngineTests.TextWaffleMultiple.verified.txt
    │   ├── WaffleEngineTests.TextWaffleNoHeading.verified.txt
    │   ├── WaffleEngineTests.TextWaffleSingle.verified.txt
    │   ├── WaffleEngineTests.Title.verified.txt
    │   └── WaffleEngineTests.cs
    ├── WaffleGenerator/
    │   ├── AssemblyInfo.cs
    │   ├── Constants.cs
    │   ├── Extensions.cs
    │   ├── Heading.cs
    │   ├── InnerEngine.cs
    │   ├── Paragraph.cs
    │   ├── WaffleContent.cs
    │   ├── WaffleEngine.cs
    │   └── WaffleGenerator.csproj
    ├── WaffleGenerator.Bogus/
    │   ├── Waffle.cs
    │   ├── WaffleGenerator.Bogus.csproj
    │   └── WaffleGeneratorExtensions.cs
    ├── WaffleGenerator.slnx
    ├── WaffleGenerator.slnx.DotSettings
    ├── appveyor.yml
    ├── global.json
    ├── key.snk
    ├── mdsnippets.json
    └── nuget.config
Download .txt
SYMBOL INDEX (73 symbols across 12 files)

FILE: src/Tests/FakerUsage.cs
  class FakerUsage (line 6) | [TestFixture]
    method Sample (line 9) | [Test]
    method Run (line 45) | [Test]
    class Target (line 65) | public class Target

FILE: src/Tests/ModuleInitializer.cs
  class ModuleInitializer (line 1) | static class ModuleInitializer
    method Initialize (line 3) | [ModuleInitializer]

FILE: src/Tests/WaffleEngineTests.cs
  class WaffleEngineTests (line 1) | [TestFixture]
    method TextWaffleSample (line 4) | [Test]
    method MarkdownWaffleSample (line 17) | [Test]
    method HtmlWaffleSample (line 30) | [Test]
    method TextWaffleSingle (line 44) | [Test]
    method EndsWith (line 52) | [Test]
    method MultiTextShouldNotDuplicate (line 80) | [Test]
    method MultiHtmlShouldNotDuplicate (line 88) | [Test]
    method MultiMarkdownShouldNotDuplicate (line 96) | [Test]
    method MarkdownWaffleSingle (line 104) | [Test]
    method Title (line 112) | [Test]
    method HtmlWaffleSingle (line 120) | [Test]
    method HtmlWaffleSingleWithHeadAndBody (line 128) | [Test]
    method TextWaffleMultiple (line 136) | [Test]
    method MarkdownWaffleMultiple (line 144) | [Test]
    method HtmlWaffleMultiple (line 152) | [Test]
    method HtmlWaffleMultipleWithHeadAndBody (line 160) | [Test]
    method TextWaffleNoHeading (line 168) | [Test]
    method MarkdownWaffleNoHeading (line 176) | [Test]
    method HtmlWaffleNoHeading (line 184) | [Test]
    method HtmlWaffleNoHeadingWithHeadAndBody (line 192) | [Test]

FILE: src/WaffleGenerator.Bogus/Waffle.cs
  class Waffle (line 5) | public class Waffle : DataSet
    method Html (line 7) | public string Html(int paragraphs = 1, bool includeHeading = true, boo...
    method Text (line 10) | public string Text(int paragraphs = 1, bool includeHeading = true) =>
    method Markdown (line 13) | public string Markdown(int paragraphs = 1, bool includeHeading = true) =>
    method Title (line 16) | public string Title() =>
    method RandomNumber (line 19) | int RandomNumber(int i) =>

FILE: src/WaffleGenerator.Bogus/WaffleGeneratorExtensions.cs
  class WaffleExtensions (line 5) | public static class WaffleExtensions
    method Waffle (line 7) | public static Waffle Waffle(this Faker faker) =>
    method WaffleHtml (line 10) | public static string WaffleHtml(this Faker faker, int paragraphs = 1, ...
    method WaffleTitle (line 15) | public static string WaffleTitle(this Faker faker) =>
    method WaffleText (line 20) | public static string WaffleText(this Faker faker, int paragraphs = 1, ...
    method WaffleMarkdown (line 25) | public static string WaffleMarkdown(this Faker faker, int paragraphs =...

FILE: src/WaffleGenerator/Constants.cs
  class Constants (line 3) | class Constants

FILE: src/WaffleGenerator/Extensions.cs
  class Extensions (line 1) | static class Extensions
    method EndsWith (line 3) | public static bool EndsWith(this StringBuilder builder, params char[] ...

FILE: src/WaffleGenerator/Heading.cs
  type Heading (line 1) | record Heading(string Quote, string Cite, string Buzz, string Title);

FILE: src/WaffleGenerator/InnerEngine.cs
  class InnerEngine (line 3) | class InnerEngine(Func<int, int> random)
    method EvaluateRandomPhrase (line 13) | void EvaluateRandomPhrase(string[] phrases, StringBuilder output)
    method EvaluatePhrase (line 19) | void EvaluatePhrase(string phrase, StringBuilder result)
    method EvaluateChar (line 53) | void EvaluateChar(char c, StringBuilder builder)
    method HasSentenceEnded (line 117) | static bool HasSentenceEnded(StringBuilder result) =>
    method EvaluateCardinalSequence (line 120) | void EvaluateCardinalSequence(StringBuilder output)
    method EvaluateOrdinalSequence (line 130) | void EvaluateOrdinalSequence(StringBuilder output)
    method RandomDate (line 140) | void RandomDate(StringBuilder output) =>
    method TitleCaseWords (line 143) | static string TitleCaseWords(string input) =>
    method GetContent (line 146) | public WaffleContent GetContent(int paragraphsCount, bool includeHeading)
    method BuildTitle (line 189) | public string BuildTitle()

FILE: src/WaffleGenerator/Paragraph.cs
  type Paragraph (line 1) | record Paragraph(string? Heading, string Body);

FILE: src/WaffleGenerator/WaffleContent.cs
  type WaffleContent (line 1) | record WaffleContent(Heading? Heading, List<Paragraph> Paragraphs);

FILE: src/WaffleGenerator/WaffleEngine.cs
  class WaffleEngine (line 3) | public static class WaffleEngine
    method Html (line 5) | public static string Html(int seed, int paragraphs, bool includeHeadin...
    method Html (line 8) | public static string Html(int paragraphs, bool includeHeading, bool in...
    method Html (line 11) | public static string Html(Random random, int paragraphs, bool includeH...
    method Html (line 14) | public static string Html(Func<int, int> random, int paragraphs, bool ...
    method Title (line 65) | public static string Title() =>
    method Title (line 68) | public static string Title(int seed) =>
    method Title (line 71) | public static string Title(Random random) =>
    method Title (line 74) | public static string Title(Func<int, int> random)
    method Markdown (line 80) | public static string Markdown(int seed, int paragraphs, bool includeHe...
    method Markdown (line 83) | public static string Markdown(int paragraphs, bool includeHeading) =>
    method Markdown (line 86) | public static string Markdown(Random random, int paragraphs, bool incl...
    method Markdown (line 89) | public static string Markdown(Func<int, int> random, int paragraphs, b...
    method Text (line 126) | public static string Text(int seed, int paragraphs, bool includeHeadin...
    method Text (line 129) | public static string Text(int paragraphs, bool includeHeading) =>
    method Text (line 132) | public static string Text(Random random, int paragraphs, bool includeH...
    method Text (line 135) | public static string Text(Func<int, int> random, int paragraphs, bool ...
Condensed preview — 56 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (168K chars).
[
  {
    "path": ".editorconfig",
    "chars": 15133,
    "preview": "root = true\n\n[*]\nindent_style = space\nend_of_line = lf\ninsert_final_newline = true\n\n[*.cs]\nindent_size = 4\ncharset = utf"
  },
  {
    "path": ".gitattributes",
    "chars": 384,
    "preview": "* text=auto eol=lf\n*.png binary\n*.snk binary\n\n\n*.verified.txt text eol=lf working-tree-encoding=UTF-8\n*.verified.xml tex"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 19,
    "preview": "github: SimonCropp\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "chars": 1863,
    "preview": "---\nname: Bug fix\nabout: Create a bug fix to help us improve\n---\n\nNote: New issues raised, where it is clear the submitt"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 27,
    "preview": "blank_issues_enabled: false"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "chars": 1528,
    "preview": "---\nname: Feature request\nabout: How to raise feature requests\n---\n\n\nNote: New issues raised, where it is clear the subm"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 130,
    "preview": "version: 2\nupdates:\n- package-ecosystem: nuget\n  directory: \"/src\"\n  schedule:\n    interval: daily\n  open-pull-requests-"
  },
  {
    "path": ".github/stale.yml",
    "chars": 792,
    "preview": "# Number of days of inactivity before an issue becomes stale\ndaysUntilStale: 7\n# Number of days of inactivity before a s"
  },
  {
    "path": ".github/workflows/merge-dependabot.yml",
    "chars": 363,
    "preview": "name: merge-dependabot\non:\n  pull_request:\njobs:\n  automerge:\n    runs-on: ubuntu-latest\n    if: github.actor == 'depend"
  },
  {
    "path": ".github/workflows/milestone-release.yml",
    "chars": 6609,
    "preview": "name: milestone-release\n\non:\n  milestone:\n    types: [created, edited, deleted, closed, opened]\n  issues:\n    types: [op"
  },
  {
    "path": ".github/workflows/on-push-do-doco.yml",
    "chars": 720,
    "preview": "name: on-push-do-doco\non:\n  push:\njobs:\n  release:\n    runs-on: windows-latest\n    steps:\n    - uses: actions/checkout@v"
  },
  {
    "path": ".gitignore",
    "chars": 74,
    "preview": "*.suo\n*.user\nbin/\nobj/\n.vs/\n*.DotSettings.user\n.idea/\n*.received.*\nnugets/"
  },
  {
    "path": "RedGateLicense.txt",
    "chars": 1508,
    "preview": "New BSD License (BSD)\nCopyright (c) 2008, Red Gate Software Ltd\nAll rights reserved.\n\nRedistribution and use in source a"
  },
  {
    "path": "code_of_conduct.md",
    "chars": 3353,
    "preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, w"
  },
  {
    "path": "license.txt",
    "chars": 1511,
    "preview": "BSD 3-Clause License\n\nCopyright (c) 2018, Simon Cropp\nAll rights reserved.\n\nRedistribution and use in source and binary "
  },
  {
    "path": "readme.md",
    "chars": 4857,
    "preview": "# <img src=\"/src/icon.png\" height=\"30px\"> WaffleGenerator\n\n[![Build status](https://img.shields.io/appveyor/build/SimonC"
  },
  {
    "path": "src/Directory.Build.props",
    "chars": 651,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Project>\n  <PropertyGroup>\n    <NoWarn>CS1591;NU1608;NU1109</NoWarn>\n    <Versio"
  },
  {
    "path": "src/Directory.Packages.props",
    "chars": 1204,
    "preview": "<Project>\n  <PropertyGroup>\n    <ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>\n    <CentralPackag"
  },
  {
    "path": "src/Shared.sln.DotSettings",
    "chars": 26057,
    "preview": "<wpf:ResourceDictionary xml:space=\"preserve\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" xmlns:s=\"clr-namesp"
  },
  {
    "path": "src/Tests/FakerUsage.cs",
    "chars": 2192,
    "preview": "using Bogus;\n\n// ReSharper disable RedundantArgumentDefaultValue\n// ReSharper disable UnusedParameter.Local\n\n[TestFixtu"
  },
  {
    "path": "src/Tests/GlobalUsings.cs",
    "chars": 93,
    "preview": "// Global using directives\n\nglobal using VerifyTests.DiffPlex;\nglobal using WaffleGenerator;"
  },
  {
    "path": "src/Tests/ModuleInitializer.cs",
    "chars": 208,
    "preview": "static class ModuleInitializer\n{\n    [ModuleInitializer]\n    public static void Initialize()\n    {\n        VerifyDiffPl"
  },
  {
    "path": "src/Tests/Tests.csproj",
    "chars": 1087,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n  <PropertyGroup>\n    <TargetFramework>net10.0</TargetFramework>\n  </PropertyGroup>\n  "
  },
  {
    "path": "src/Tests/WaffleEngineTests.HtmlWaffleMultiple.verified.txt",
    "chars": 4817,
    "preview": "<h1>The Aesthetic Of Economico-Social Disposition</h1>\n<blockquote>'In this regard, the underlying surrealism of the ta"
  },
  {
    "path": "src/Tests/WaffleEngineTests.HtmlWaffleMultipleWithHeadAndBody.verified.txt",
    "chars": 4922,
    "preview": "<html>\n<head>\n<title>The Aesthetic Of Economico-Social Disposition</title>\n</head>\n<body>\n<h1>The Aesthetic Of Economic"
  },
  {
    "path": "src/Tests/WaffleEngineTests.HtmlWaffleNoHeading.verified.txt",
    "chars": 659,
    "preview": "<h1>The Aesthetic Of Economico-Social Disposition</h1>\n<blockquote>'In this regard, the underlying surrealism of the ta"
  },
  {
    "path": "src/Tests/WaffleEngineTests.HtmlWaffleNoHeadingWithHeadAndBody.verified.txt",
    "chars": 764,
    "preview": "<html>\n<head>\n<title>The Aesthetic Of Economico-Social Disposition</title>\n</head>\n<body>\n<h1>The Aesthetic Of Economic"
  },
  {
    "path": "src/Tests/WaffleEngineTests.HtmlWaffleSingle.verified.txt",
    "chars": 659,
    "preview": "<h1>The Aesthetic Of Economico-Social Disposition</h1>\n<blockquote>'In this regard, the underlying surrealism of the ta"
  },
  {
    "path": "src/Tests/WaffleEngineTests.HtmlWaffleSingleWithHeadAndBody.verified.txt",
    "chars": 764,
    "preview": "<html>\n<head>\n<title>The Aesthetic Of Economico-Social Disposition</title>\n</head>\n<body>\n<h1>The Aesthetic Of Economic"
  },
  {
    "path": "src/Tests/WaffleEngineTests.MarkdownWaffleMultiple.verified.md",
    "chars": 4666,
    "preview": "# The Aesthetic Of Economico-Social Disposition\n\n > In this regard, the underlying surrealism of the take home message s"
  },
  {
    "path": "src/Tests/WaffleEngineTests.MarkdownWaffleNoHeading.verified.md",
    "chars": 231,
    "preview": "Only in the case of the performance objectives can one state that an overall understanding of any ad-hoc implicit delive"
  },
  {
    "path": "src/Tests/WaffleEngineTests.MarkdownWaffleSingle.verified.md",
    "chars": 603,
    "preview": "# The Aesthetic Of Economico-Social Disposition\n\n > In this regard, the underlying surrealism of the take home message s"
  },
  {
    "path": "src/Tests/WaffleEngineTests.TextWaffleMultiple.verified.txt",
    "chars": 4651,
    "preview": "The Aesthetic Of Economico-Social Disposition\n\n'In this regard, the underlying surrealism of the take home message shou"
  },
  {
    "path": "src/Tests/WaffleEngineTests.TextWaffleNoHeading.verified.txt",
    "chars": 231,
    "preview": "Only in the case of the performance objectives can one state that an overall understanding of any ad-hoc implicit deliv"
  },
  {
    "path": "src/Tests/WaffleEngineTests.TextWaffleSingle.verified.txt",
    "chars": 597,
    "preview": "The Aesthetic Of Economico-Social Disposition\n\n'In this regard, the underlying surrealism of the take home message shou"
  },
  {
    "path": "src/Tests/WaffleEngineTests.Title.verified.txt",
    "chars": 46,
    "preview": "The Aesthetic Of Economico-Social Disposition"
  },
  {
    "path": "src/Tests/WaffleEngineTests.cs",
    "chars": 5167,
    "preview": "[TestFixture]\npublic class WaffleEngineTests\n{\n    [Test]\n    public void TextWaffleSample()\n    {\n        #region text"
  },
  {
    "path": "src/WaffleGenerator/AssemblyInfo.cs",
    "chars": 372,
    "preview": "[assembly: InternalsVisibleTo(\"Tests, PublicKey=00240000048000009400000006020000002400005253413100040000010001006944a8a"
  },
  {
    "path": "src/WaffleGenerator/Constants.cs",
    "chars": 38910,
    "preview": "// ReSharper disable StringLiteralTypo\n\nclass Constants\n{\n    public static string[] preamblePhrases =\n    [\n        \"\"\""
  },
  {
    "path": "src/WaffleGenerator/Extensions.cs",
    "chars": 562,
    "preview": "static class Extensions\n{\n    public static bool EndsWith(this StringBuilder builder, params char[] chars)\n    {\n       "
  },
  {
    "path": "src/WaffleGenerator/Heading.cs",
    "chars": 70,
    "preview": "record Heading(string Quote, string Cite, string Buzz, string Title);"
  },
  {
    "path": "src/WaffleGenerator/InnerEngine.cs",
    "chars": 6182,
    "preview": "using System.Globalization;\n\nclass InnerEngine(Func<int, int> random)\n{\n    int cardinalSequence;\n    int ordinalSequenc"
  },
  {
    "path": "src/WaffleGenerator/Paragraph.cs",
    "chars": 49,
    "preview": "record Paragraph(string? Heading, string Body);\n"
  },
  {
    "path": "src/WaffleGenerator/WaffleContent.cs",
    "chars": 68,
    "preview": "record WaffleContent(Heading? Heading, List<Paragraph> Paragraphs);"
  },
  {
    "path": "src/WaffleGenerator/WaffleEngine.cs",
    "chars": 5502,
    "preview": "namespace WaffleGenerator;\n\npublic static class WaffleEngine\n{\n    public static string Html(int seed, int paragraphs, b"
  },
  {
    "path": "src/WaffleGenerator/WaffleGenerator.csproj",
    "chars": 551,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n  <PropertyGroup>\n    <TargetFrameworks>net8.0;net9.0;net10.0;net48</TargetFrameworks>"
  },
  {
    "path": "src/WaffleGenerator.Bogus/Waffle.cs",
    "chars": 701,
    "preview": "using WaffleGenerator;\n\nnamespace Bogus;\n\npublic class Waffle : DataSet\n{\n    public string Html(int paragraphs = 1, bo"
  },
  {
    "path": "src/WaffleGenerator.Bogus/WaffleGenerator.Bogus.csproj",
    "chars": 592,
    "preview": "<Project Sdk=\"Microsoft.NET.Sdk\">\n  <PropertyGroup>\n    <TargetFrameworks>net9.0;net10.0;net48</TargetFrameworks>\n    <D"
  },
  {
    "path": "src/WaffleGenerator.Bogus/WaffleGeneratorExtensions.cs",
    "chars": 885,
    "preview": "using Bogus.Premium;\n\nnamespace Bogus;\n\npublic static class WaffleExtensions\n{\n    public static Waffle Waffle(this Fak"
  },
  {
    "path": "src/WaffleGenerator.slnx",
    "chars": 400,
    "preview": "<Solution>\n  <Folder Name=\"/Solution Items/\">\n    <File Path=\"../.gitattributes\" />\n    <File Path=\"appveyor.yml\" />\n  "
  },
  {
    "path": "src/WaffleGenerator.slnx.DotSettings",
    "chars": 932,
    "preview": "<wpf:ResourceDictionary xml:space=\"preserve\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" xmlns:s=\"clr-namesp"
  },
  {
    "path": "src/appveyor.yml",
    "chars": 740,
    "preview": "image: Visual Studio 2022\nenvironment:\n  DOTNET_NOLOGO: true\n  DOTNET_CLI_TELEMETRY_OPTOUT: true\n  DOTNET_SKIP_FIRST_TIM"
  },
  {
    "path": "src/global.json",
    "chars": 109,
    "preview": "{\n  \"sdk\": {\n    \"version\": \"10.0.300\",\n    \"allowPrerelease\": true,\n    \"rollForward\": \"latestFeature\"\n  }\n}"
  },
  {
    "path": "src/mdsnippets.json",
    "chars": 228,
    "preview": "{\n  \"$schema\": \"https://raw.githubusercontent.com/SimonCropp/MarkdownSnippets/master/schema.json\",\n  \"TocExcludes\": [ \""
  },
  {
    "path": "src/nuget.config",
    "chars": 1117,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<configuration>\n  <config>\n    <add key=\"signatureValidationMode\" value=\"require"
  }
]

// ... and 1 more files (download for full content)

About this extraction

This page contains the full source code of the SimonCropp/WaffleGenerator GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 56 files (153.4 KB), approximately 37.8k tokens, and a symbol index with 73 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!