code-node-graph 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- code_node/__init__.py +40 -0
- code_node/__main__.py +7 -0
- code_node/analysis/__init__.py +3 -0
- code_node/analysis/aws_model.py +197 -0
- code_node/analysis/findings.py +462 -0
- code_node/analysis/graph.py +780 -0
- code_node/analysis/mapping.py +114 -0
- code_node/analysis/model.py +289 -0
- code_node/analysis/reader.py +1926 -0
- code_node/analysis/syntax.py +220 -0
- code_node/analysis/terms.py +505 -0
- code_node/cli.py +316 -0
- code_node/deploys/__init__.py +321 -0
- code_node/deploys/sam.py +371 -0
- code_node/deploys/serverless.py +117 -0
- code_node/kit/__init__.py +4 -0
- code_node/kit/blocks.py +184 -0
- code_node/kit/fmt.py +389 -0
- code_node/kit/highlight.py +131 -0
- code_node/kit/render.py +1066 -0
- code_node/kit/text.py +81 -0
- code_node/libraries/__init__.py +333 -0
- code_node/libraries/llm.py +124 -0
- code_node/libraries/mongo.py +169 -0
- code_node/libraries/redis.py +253 -0
- code_node/libraries/sql.py +232 -0
- code_node/pages.py +92 -0
- code_node/platforms/__init__.py +203 -0
- code_node/platforms/aws_lambda.py +290 -0
- code_node/platforms/web.py +301 -0
- code_node/project.py +402 -0
- code_node/report/__init__.py +3 -0
- code_node/report/brands.py +244 -0
- code_node/report/build.py +119 -0
- code_node/report/editor.py +40 -0
- code_node/report/graph.py +1411 -0
- code_node/report/logos/README.md +8 -0
- code_node/report/logos/anthropic-icon.svg +1 -0
- code_node/report/logos/aws-amplify.svg +1 -0
- code_node/report/logos/aws-api-gateway.svg +1 -0
- code_node/report/logos/aws-appflow.svg +1 -0
- code_node/report/logos/aws-appsync.svg +1 -0
- code_node/report/logos/aws-athena.svg +1 -0
- code_node/report/logos/aws-backup.svg +1 -0
- code_node/report/logos/aws-batch.svg +1 -0
- code_node/report/logos/aws-certificate-manager.svg +1 -0
- code_node/report/logos/aws-cloudformation.svg +1 -0
- code_node/report/logos/aws-cloudfront.svg +1 -0
- code_node/report/logos/aws-cloudtrail.svg +1 -0
- code_node/report/logos/aws-cloudwatch.svg +1 -0
- code_node/report/logos/aws-codebuild.svg +1 -0
- code_node/report/logos/aws-codecommit.svg +1 -0
- code_node/report/logos/aws-codedeploy.svg +1 -0
- code_node/report/logos/aws-codepipeline.svg +1 -0
- code_node/report/logos/aws-cognito.svg +1 -0
- code_node/report/logos/aws-config.svg +1 -0
- code_node/report/logos/aws-documentdb.svg +1 -0
- code_node/report/logos/aws-dynamodb.svg +1 -0
- code_node/report/logos/aws-ec2.svg +1 -0
- code_node/report/logos/aws-ecs.svg +1 -0
- code_node/report/logos/aws-eks.svg +1 -0
- code_node/report/logos/aws-elasticache.svg +1 -0
- code_node/report/logos/aws-elb.svg +1 -0
- code_node/report/logos/aws-eventbridge.svg +1 -0
- code_node/report/logos/aws-glacier.svg +1 -0
- code_node/report/logos/aws-glue.svg +1 -0
- code_node/report/logos/aws-iam.svg +1 -0
- code_node/report/logos/aws-keyspaces.svg +1 -0
- code_node/report/logos/aws-kinesis.svg +1 -0
- code_node/report/logos/aws-kms.svg +1 -0
- code_node/report/logos/aws-lake-formation.svg +1 -0
- code_node/report/logos/aws-lambda.svg +1 -0
- code_node/report/logos/aws-lightsail.svg +1 -0
- code_node/report/logos/aws-mq.svg +1 -0
- code_node/report/logos/aws-msk.svg +1 -0
- code_node/report/logos/aws-neptune.svg +1 -0
- code_node/report/logos/aws-open-search.svg +1 -0
- code_node/report/logos/aws-quicksight.svg +1 -0
- code_node/report/logos/aws-rds.svg +1 -0
- code_node/report/logos/aws-redshift.svg +1 -0
- code_node/report/logos/aws-route53.svg +1 -0
- code_node/report/logos/aws-s3.svg +1 -0
- code_node/report/logos/aws-secrets-manager.svg +1 -0
- code_node/report/logos/aws-ses.svg +1 -0
- code_node/report/logos/aws-shield.svg +1 -0
- code_node/report/logos/aws-sns.svg +1 -0
- code_node/report/logos/aws-sqs.svg +1 -0
- code_node/report/logos/aws-step-functions.svg +1 -0
- code_node/report/logos/aws-systems-manager.svg +1 -0
- code_node/report/logos/aws-timestream.svg +1 -0
- code_node/report/logos/aws-waf.svg +1 -0
- code_node/report/logos/aws-xray.svg +1 -0
- code_node/report/logos/aws.svg +1 -0
- code_node/report/logos/azure-icon.svg +1 -0
- code_node/report/logos/django-icon.svg +1 -0
- code_node/report/logos/elasticsearch.svg +1 -0
- code_node/report/logos/fastapi-icon.svg +1 -0
- code_node/report/logos/firebase-icon.svg +1 -0
- code_node/report/logos/flask.svg +1 -0
- code_node/report/logos/google-cloud.svg +1 -0
- code_node/report/logos/kafka-icon.svg +1 -0
- code_node/report/logos/mariadb-icon.svg +1 -0
- code_node/report/logos/mongodb-icon.svg +1 -0
- code_node/report/logos/mysql-icon.svg +1 -0
- code_node/report/logos/openai-icon.svg +1 -0
- code_node/report/logos/postgresql.svg +1 -0
- code_node/report/logos/python.svg +1 -0
- code_node/report/logos/rabbitmq-icon.svg +1 -0
- code_node/report/logos/redis.svg +1 -0
- code_node/report/logos/serverless.svg +1 -0
- code_node/report/logos/slack-icon.svg +1 -0
- code_node/report/logos/small/aws-api-gateway.svg +1 -0
- code_node/report/logos/small/aws-appflow.svg +1 -0
- code_node/report/logos/small/aws-appsync.svg +1 -0
- code_node/report/logos/small/aws-athena.svg +1 -0
- code_node/report/logos/small/aws-backup.svg +1 -0
- code_node/report/logos/small/aws-batch.svg +1 -0
- code_node/report/logos/small/aws-certificate-manager.svg +1 -0
- code_node/report/logos/small/aws-cloudformation.svg +1 -0
- code_node/report/logos/small/aws-cloudfront.svg +1 -0
- code_node/report/logos/small/aws-cloudtrail.svg +1 -0
- code_node/report/logos/small/aws-cloudwatch.svg +1 -0
- code_node/report/logos/small/aws-codebuild.svg +1 -0
- code_node/report/logos/small/aws-codecommit.svg +1 -0
- code_node/report/logos/small/aws-codedeploy.svg +1 -0
- code_node/report/logos/small/aws-codepipeline.svg +1 -0
- code_node/report/logos/small/aws-cognito.svg +1 -0
- code_node/report/logos/small/aws-config.svg +1 -0
- code_node/report/logos/small/aws-documentdb.svg +1 -0
- code_node/report/logos/small/aws-dynamodb.svg +1 -0
- code_node/report/logos/small/aws-ec2.svg +1 -0
- code_node/report/logos/small/aws-ecs.svg +1 -0
- code_node/report/logos/small/aws-eks.svg +1 -0
- code_node/report/logos/small/aws-elasticache.svg +1 -0
- code_node/report/logos/small/aws-elb.svg +1 -0
- code_node/report/logos/small/aws-eventbridge.svg +1 -0
- code_node/report/logos/small/aws-glacier.svg +1 -0
- code_node/report/logos/small/aws-glue.svg +1 -0
- code_node/report/logos/small/aws-iam.svg +1 -0
- code_node/report/logos/small/aws-keyspaces.svg +1 -0
- code_node/report/logos/small/aws-kinesis.svg +1 -0
- code_node/report/logos/small/aws-kms.svg +1 -0
- code_node/report/logos/small/aws-lake-formation.svg +1 -0
- code_node/report/logos/small/aws-lambda.svg +1 -0
- code_node/report/logos/small/aws-mq.svg +1 -0
- code_node/report/logos/small/aws-msk.svg +1 -0
- code_node/report/logos/small/aws-neptune.svg +1 -0
- code_node/report/logos/small/aws-open-search.svg +1 -0
- code_node/report/logos/small/aws-quicksight.svg +1 -0
- code_node/report/logos/small/aws-rds.svg +1 -0
- code_node/report/logos/small/aws-redshift.svg +1 -0
- code_node/report/logos/small/aws-route53.svg +1 -0
- code_node/report/logos/small/aws-s3.svg +1 -0
- code_node/report/logos/small/aws-secrets-manager.svg +1 -0
- code_node/report/logos/small/aws-ses.svg +1 -0
- code_node/report/logos/small/aws-shield.svg +1 -0
- code_node/report/logos/small/aws-sns.svg +1 -0
- code_node/report/logos/small/aws-sqs.svg +1 -0
- code_node/report/logos/small/aws-step-functions.svg +1 -0
- code_node/report/logos/small/aws-systems-manager.svg +1 -0
- code_node/report/logos/small/aws-timestream.svg +1 -0
- code_node/report/logos/small/aws-waf.svg +1 -0
- code_node/report/logos/small/aws-xray.svg +1 -0
- code_node/report/logos/snowflake-icon.svg +1 -0
- code_node/report/logos/sqlite.svg +1 -0
- code_node/report/logos/stripe.svg +1 -0
- code_node/report/logos/supabase-icon.svg +1 -0
- code_node/report/logos/twilio-icon.svg +1 -0
- code_node/report/outline.py +219 -0
- code_node/report/style.py +358 -0
- code_node/report/tabs.py +73 -0
- code_node/report/walk.py +624 -0
- code_node/serve.py +277 -0
- code_node_graph-0.1.0.dist-info/METADATA +165 -0
- code_node_graph-0.1.0.dist-info/RECORD +178 -0
- code_node_graph-0.1.0.dist-info/WHEEL +4 -0
- code_node_graph-0.1.0.dist-info/entry_points.txt +2 -0
- code_node_graph-0.1.0.dist-info/licenses/LICENSE +201 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="549" viewBox="0 0 256 549" fill="currentColor"><path fill="#01ec64" d="M175.622 61.108C152.612 33.807 132.797 6.078 128.749.32a1.03 1.03 0 0 0-1.492 0c-4.048 5.759-23.863 33.487-46.874 60.788c-197.507 251.896 31.108 421.89 31.108 421.89l1.917 1.28c1.704 26.234 5.966 63.988 5.966 63.988h17.045s4.26-37.54 5.965-63.987l1.918-1.494c.213.214 228.828-169.78 31.32-421.677m-47.726 418.05s-10.227-8.744-12.997-13.222v-.428l12.358-274.292c0-.853 1.279-.853 1.279 0l12.357 274.292v.428c-2.77 4.478-12.997 13.223-12.997 13.223"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="252" viewBox="0 0 256 252" fill="currentColor"><path fill="#00546b" d="M235.648 194.212c-13.918-.347-24.705 1.045-33.752 4.872c-2.61 1.043-6.786 1.044-7.134 4.35c1.392 1.392 1.566 3.654 2.784 5.567c2.09 3.479 5.741 8.177 9.047 10.614c3.653 2.783 7.308 5.566 11.134 8.002c6.786 4.176 14.442 6.611 21.053 10.787c3.829 2.434 7.654 5.568 11.482 8.177c1.914 1.39 3.131 3.654 5.568 4.523v-.521c-1.219-1.567-1.567-3.828-2.784-5.568c-1.738-1.74-3.48-3.306-5.22-5.046c-5.045-6.784-11.308-12.7-18.093-17.571c-5.567-3.828-17.747-9.047-20.008-15.485c0 0-.175-.173-.348-.347c3.827-.348 8.35-1.74 12.005-2.784c5.915-1.567 11.308-1.218 17.398-2.784c2.783-.696 5.567-1.566 8.35-2.436v-1.565c-3.13-3.132-5.392-7.307-8.698-10.265c-8.873-7.657-18.617-15.137-28.707-21.4c-5.394-3.48-12.354-5.742-18.095-8.699c-2.086-1.045-5.567-1.566-6.784-3.306c-3.133-3.827-4.873-8.872-7.134-13.396c-5.044-9.57-9.917-20.182-14.267-30.272c-3.13-6.786-5.044-13.572-8.872-19.834c-17.92-29.577-37.406-47.497-67.33-65.07c-6.438-3.653-14.093-5.219-22.27-7.132c-4.348-.175-8.699-.522-13.048-.697c-2.784-1.218-5.568-4.523-8.004-6.089C34.006 4.573 8.429-8.996 1.122 8.924c-4.698 11.308 6.96 22.442 10.96 28.185c2.96 4.001 6.786 8.524 8.874 13.048c1.218 2.956 1.565 6.09 2.783 9.221c2.785 7.653 5.393 16.18 9.048 23.314c1.914 3.653 4.001 7.48 6.437 10.786c1.392 1.913 3.827 2.784 4.35 5.915c-2.435 3.48-2.61 8.7-4.003 13.049c-6.263 19.66-3.826 44.017 5.046 58.457c2.783 4.348 9.395 13.92 18.268 10.265c7.83-3.131 6.09-13.048 8.35-21.747c.524-2.09.176-3.48 1.219-4.872v.349c2.436 4.87 4.871 9.569 7.133 14.44c5.394 8.524 14.788 17.398 22.617 23.314c4.177 3.13 7.482 8.524 12.702 10.438v-.523h-.349c-1.044-1.566-2.61-2.261-4.001-3.48c-3.131-3.13-6.612-6.958-9.047-10.438c-7.306-9.744-13.745-20.53-19.486-31.665c-2.783-5.392-5.22-11.308-7.481-16.701c-1.045-2.09-1.045-5.22-2.784-6.263c-2.61 3.827-6.437 7.133-8.351 11.83c-3.304 7.481-3.653 16.702-4.871 26.27c-.696.176-.349 0-.697.35c-5.566-1.394-7.48-7.134-9.569-12.006c-5.22-12.352-6.09-32.186-1.565-46.452c1.218-3.654 6.438-15.136 4.35-18.616c-1.044-3.306-4.525-5.22-6.438-7.829c-2.261-3.306-4.698-7.48-6.263-11.135c-4.176-9.743-6.264-20.53-10.787-30.273c-2.088-4.524-5.74-9.22-8.699-13.396c-3.305-4.697-6.959-8.004-9.569-13.571c-.869-1.913-2.088-5.045-.696-7.133c.348-1.392 1.043-1.913 2.436-2.261c2.262-1.915 8.7.521 10.96 1.565c6.438 2.608 11.831 5.046 17.225 8.699c2.435 1.74 5.045 5.046 8.176 5.916h3.654c5.568 1.217 11.83.348 17.05 1.913c9.222 2.957 17.572 7.307 25.054 12.005c22.792 14.44 41.58 34.97 54.282 59.501c2.088 4 2.957 7.656 4.871 11.83c3.655 8.526 8.178 17.225 11.83 25.576c3.654 8.176 7.133 16.528 12.353 23.314c2.61 3.652 13.048 5.567 17.746 7.481c3.48 1.565 8.874 2.958 12.005 4.871c5.915 3.652 11.83 7.83 17.398 11.83c2.784 2.088 11.482 6.438 12.005 9.917"/><path fill="#00546b" d="M58.186 43.022c-2.957 0-5.044.35-7.132.871v.348h.348c1.393 2.784 3.827 4.698 5.566 7.133c1.393 2.783 2.61 5.568 4.003 8.352c.173-.175.347-.348.347-.348c2.437-1.741 3.654-4.524 3.654-8.7c-1.044-1.217-1.218-2.435-2.088-3.653c-1.043-1.741-3.306-2.61-4.698-4.003"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="260" viewBox="0 0 256 260" fill="currentColor"><path d="M239.184 106.203a64.72 64.72 0 0 0-5.576-53.103C219.452 28.459 191 15.784 163.213 21.74A65.586 65.586 0 0 0 52.096 45.22a64.72 64.72 0 0 0-43.23 31.36c-14.31 24.602-11.061 55.634 8.033 76.74a64.67 64.67 0 0 0 5.525 53.102c14.174 24.65 42.644 37.324 70.446 31.36a64.72 64.72 0 0 0 48.754 21.744c28.481.025 53.714-18.361 62.414-45.481a64.77 64.77 0 0 0 43.229-31.36c14.137-24.558 10.875-55.423-8.083-76.483m-97.56 136.338a48.4 48.4 0 0 1-31.105-11.255l1.535-.87l51.67-29.825a8.6 8.6 0 0 0 4.247-7.367v-72.85l21.845 12.636c.218.111.37.32.409.563v60.367c-.056 26.818-21.783 48.545-48.601 48.601M37.158 197.93a48.35 48.35 0 0 1-5.781-32.589l1.534.921l51.722 29.826a8.34 8.34 0 0 0 8.441 0l63.181-36.425v25.221a.87.87 0 0 1-.358.665l-52.335 30.184c-23.257 13.398-52.97 5.431-66.404-17.803M23.549 85.38a48.5 48.5 0 0 1 25.58-21.333v61.39a8.29 8.29 0 0 0 4.195 7.316l62.874 36.272l-21.845 12.636a.82.82 0 0 1-.767 0L41.353 151.53c-23.211-13.454-31.171-43.144-17.804-66.405zm179.466 41.695l-63.08-36.63L161.73 77.86a.82.82 0 0 1 .768 0l52.233 30.184a48.6 48.6 0 0 1-7.316 87.635v-61.391a8.54 8.54 0 0 0-4.4-7.213m21.742-32.69l-1.535-.922l-51.619-30.081a8.39 8.39 0 0 0-8.492 0L99.98 99.808V74.587a.72.72 0 0 1 .307-.665l52.233-30.133a48.652 48.652 0 0 1 72.236 50.391zM88.061 139.097l-21.845-12.585a.87.87 0 0 1-.41-.614V65.685a48.652 48.652 0 0 1 79.757-37.346l-1.535.87l-51.67 29.825a8.6 8.6 0 0 0-4.246 7.367zm11.868-25.58L128.067 97.3l28.188 16.218v32.434l-28.086 16.218l-28.188-16.218z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="264" viewBox="0 0 256 264" fill="currentColor"><path d="M255.008 158.086c-1.535-4.649-5.556-7.887-10.756-8.664c-2.452-.366-5.26-.21-8.583.475c-5.792 1.195-10.089 1.65-13.225 1.738c11.837-19.985 21.462-42.775 27.003-64.228c8.96-34.689 4.172-50.492-1.423-57.64C233.217 10.847 211.614.683 185.552.372c-13.903-.17-26.108 2.575-32.475 4.549c-5.928-1.046-12.302-1.63-18.99-1.738c-12.537-.2-23.614 2.533-33.079 8.15c-5.24-1.772-13.65-4.27-23.362-5.864c-22.842-3.75-41.252-.828-54.718 8.685C6.622 25.672-.937 45.684.461 73.634c.444 8.874 5.408 35.874 13.224 61.48c4.492 14.718 9.282 26.94 14.237 36.33c7.027 13.315 14.546 21.156 22.987 23.972c4.731 1.576 13.327 2.68 22.368-4.85c1.146 1.388 2.675 2.767 4.704 4.048c2.577 1.625 5.728 2.953 8.875 3.74c11.341 2.835 21.964 2.126 31.027-1.848c.056 1.612.099 3.152.135 4.482c.06 2.157.12 4.272.199 6.25c.537 13.374 1.447 23.773 4.143 31.049c.148.4.347 1.01.557 1.657c1.345 4.118 3.594 11.012 9.316 16.411c5.925 5.593 13.092 7.308 19.656 7.308c3.292 0 6.433-.432 9.188-1.022c9.82-2.105 20.973-5.311 29.041-16.799c7.628-10.86 11.336-27.217 12.007-52.99q.13-1.094.244-2.088l.16-1.362l1.797.158l.463.031c10.002.456 22.232-1.665 29.743-5.154c5.935-2.754 24.954-12.795 20.476-26.351"/><path fill="#336791" d="M237.906 160.722c-29.74 6.135-31.785-3.934-31.785-3.934c31.4-46.593 44.527-105.736 33.2-120.211c-30.904-39.485-84.399-20.811-85.292-20.327l-.287.052c-5.876-1.22-12.451-1.946-19.842-2.067c-13.456-.22-23.664 3.528-31.41 9.402c0 0-95.43-39.314-90.991 49.444c.944 18.882 27.064 142.873 58.218 105.422c11.387-13.695 22.39-25.274 22.39-25.274c5.464 3.63 12.006 5.482 18.864 4.817l.533-.452c-.166 1.7-.09 3.363.213 5.332c-8.026 8.967-5.667 10.541-21.711 13.844c-16.235 3.346-6.698 9.302-.471 10.86c7.549 1.887 25.013 4.561 36.813-11.958l-.47 1.885c3.144 2.519 5.352 16.383 4.982 28.952c-.37 12.568-.617 21.197 1.86 27.937c2.479 6.74 4.948 21.905 26.04 17.386c17.623-3.777 26.756-13.564 28.027-29.89c.901-11.606 2.942-9.89 3.07-20.267l1.637-4.912c1.887-15.733.3-20.809 11.157-18.448l2.64.232c7.99.363 18.45-1.286 24.589-4.139c13.218-6.134 21.058-16.377 8.024-13.686z"/><path fill="#fff" d="M108.076 81.525c-2.68-.373-5.107-.028-6.335.902c-.69.523-.904 1.129-.962 1.546c-.154 1.105.62 2.327 1.096 2.957c1.346 1.784 3.312 3.01 5.258 3.28q.423.059.842.058c3.245 0 6.196-2.527 6.456-4.392c.325-2.336-3.066-3.893-6.355-4.35m88.784.073c-.256-1.831-3.514-2.353-6.606-1.923c-3.088.43-6.082 1.824-5.832 3.659c.2 1.427 2.777 3.863 5.827 3.863q.387 0 .78-.054c2.036-.282 3.53-1.575 4.24-2.32c1.08-1.136 1.706-2.402 1.591-3.225"/><path fill="#fff" d="M247.802 160.025c-1.134-3.429-4.784-4.532-10.848-3.28c-18.005 3.716-24.453 1.142-26.57-.417c13.995-21.32 25.508-47.092 31.719-71.137c2.942-11.39 4.567-21.968 4.7-30.59c.147-9.463-1.465-16.417-4.789-20.665c-13.402-17.125-33.072-26.311-56.882-26.563c-16.369-.184-30.199 4.005-32.88 5.183c-5.646-1.404-11.801-2.266-18.502-2.376c-12.288-.199-22.91 2.743-31.704 8.74c-3.82-1.422-13.692-4.811-25.765-6.756c-20.872-3.36-37.458-.814-49.294 7.571c-14.123 10.006-20.643 27.892-19.38 53.16c.425 8.501 5.269 34.653 12.913 59.698c10.062 32.964 21 51.625 32.508 55.464c1.347.449 2.9.763 4.613.763c4.198 0 9.345-1.892 14.7-8.33a530 530 0 0 1 20.261-22.926c4.524 2.428 9.494 3.784 14.577 3.92q.016.2.035.398a118 118 0 0 0-2.57 3.175c-3.522 4.471-4.255 5.402-15.592 7.736c-3.225.666-11.79 2.431-11.916 8.435c-.136 6.56 10.125 9.315 11.294 9.607c4.074 1.02 7.999 1.523 11.742 1.523c9.103 0 17.114-2.992 23.516-8.781c-.197 23.386.778 46.43 3.586 53.451c2.3 5.748 7.918 19.795 25.664 19.794c2.604 0 5.47-.303 8.623-.979c18.521-3.97 26.564-12.156 29.675-30.203c1.665-9.645 4.522-32.676 5.866-45.03c2.836.885 6.487 1.29 10.434 1.289c8.232 0 17.731-1.749 23.688-4.514c6.692-3.108 18.768-10.734 16.578-17.36m-44.106-83.48c-.061 3.647-.563 6.958-1.095 10.414c-.573 3.717-1.165 7.56-1.314 12.225c-.147 4.54.42 9.26.968 13.825c1.108 9.22 2.245 18.712-2.156 28.078a37 37 0 0 1-1.95-4.009c-.547-1.326-1.735-3.456-3.38-6.404c-6.399-11.476-21.384-38.35-13.713-49.316c2.285-3.264 8.084-6.62 22.64-4.813m-17.644-61.787c21.334.471 38.21 8.452 50.158 23.72c9.164 11.711-.927 64.998-30.14 110.969a171 171 0 0 0-.886-1.117l-.37-.462c7.549-12.467 6.073-24.802 4.759-35.738c-.54-4.488-1.05-8.727-.92-12.709c.134-4.22.692-7.84 1.232-11.34c.663-4.313 1.338-8.776 1.152-14.037c.139-.552.195-1.204.122-1.978c-.475-5.045-6.235-20.144-17.975-33.81c-6.422-7.475-15.787-15.84-28.574-21.482c5.5-1.14 13.021-2.203 21.442-2.016M66.674 175.778c-5.9 7.094-9.974 5.734-11.314 5.288c-8.73-2.912-18.86-21.364-27.791-50.624c-7.728-25.318-12.244-50.777-12.602-57.916c-1.128-22.578 4.345-38.313 16.268-46.769c19.404-13.76 51.306-5.524 64.125-1.347c-.184.182-.376.352-.558.537c-21.036 21.244-20.537 57.54-20.485 59.759c-.002.856.07 2.068.168 3.735c.362 6.105 1.036 17.467-.764 30.334c-1.672 11.957 2.014 23.66 10.111 32.109a36 36 0 0 0 2.617 2.468c-3.604 3.86-11.437 12.396-19.775 22.426m22.479-29.993c-6.526-6.81-9.49-16.282-8.133-25.99c1.9-13.592 1.199-25.43.822-31.79c-.053-.89-.1-1.67-.127-2.285c3.073-2.725 17.314-10.355 27.47-8.028c4.634 1.061 7.458 4.217 8.632 9.645c6.076 28.103.804 39.816-3.432 49.229c-.873 1.939-1.698 3.772-2.402 5.668l-.546 1.466c-1.382 3.706-2.668 7.152-3.465 10.424c-6.938-.02-13.687-2.984-18.819-8.34m1.065 37.9c-2.026-.506-3.848-1.385-4.917-2.114c.893-.42 2.482-.992 5.238-1.56c13.337-2.745 15.397-4.683 19.895-10.394c1.031-1.31 2.2-2.794 3.819-4.602l.002-.002c2.411-2.7 3.514-2.242 5.514-1.412c1.621.67 3.2 2.702 3.84 4.938c.303 1.056.643 3.06-.47 4.62c-9.396 13.156-23.088 12.987-32.921 10.526m69.799 64.952c-16.316 3.496-22.093-4.829-25.9-14.346c-2.457-6.144-3.665-33.85-2.808-64.447c.011-.407-.047-.8-.159-1.17a15.4 15.4 0 0 0-.456-2.162c-1.274-4.452-4.379-8.176-8.104-9.72c-1.48-.613-4.196-1.738-7.46-.903c.696-2.868 1.903-6.107 3.212-9.614l.549-1.475c.618-1.663 1.394-3.386 2.214-5.21c4.433-9.848 10.504-23.337 3.915-53.81c-2.468-11.414-10.71-16.988-23.204-15.693c-7.49.775-14.343 3.797-17.761 5.53c-.735.372-1.407.732-2.035 1.082c.954-11.5 4.558-32.992 18.04-46.59c8.489-8.56 19.794-12.788 33.568-12.56c27.14.444 44.544 14.372 54.366 25.979c8.464 10.001 13.047 20.076 14.876 25.51c-13.755-1.399-23.11 1.316-27.852 8.096c-10.317 14.748 5.644 43.372 13.315 57.129c1.407 2.521 2.621 4.7 3.003 5.626c2.498 6.054 5.732 10.096 8.093 13.046c.724.904 1.426 1.781 1.96 2.547c-4.166 1.201-11.649 3.976-10.967 17.847c-.55 6.96-4.461 39.546-6.448 51.059c-2.623 15.21-8.22 20.875-23.957 24.25m68.104-77.936c-4.26 1.977-11.389 3.46-18.161 3.779c-7.48.35-11.288-.838-12.184-1.569c-.42-8.644 2.797-9.547 6.202-10.503c.535-.15 1.057-.297 1.561-.473q.469.383 1.032.756c6.012 3.968 16.735 4.396 31.874 1.271l.166-.033c-2.042 1.909-5.536 4.471-10.49 6.772"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="255" viewBox="0 0 256 255" fill="currentColor"><defs><linearGradient id="cnl-python-SVGg39WleeP" x1="12.959%" x2="79.639%" y1="12.039%" y2="78.201%"><stop offset="0%" stop-color="#387eb8"/><stop offset="100%" stop-color="#366994"/></linearGradient><linearGradient id="cnl-python-SVGlXoRkc4T" x1="19.128%" x2="90.742%" y1="20.579%" y2="88.429%"><stop offset="0%" stop-color="#ffe052"/><stop offset="100%" stop-color="#ffc331"/></linearGradient></defs><path fill="url(#cnl-python-SVGg39WleeP)" d="M126.916.072c-64.832 0-60.784 28.115-60.784 28.115l.072 29.128h61.868v8.745H41.631S.145 61.355.145 126.77c0 65.417 36.21 63.097 36.21 63.097h21.61v-30.356s-1.165-36.21 35.632-36.21h61.362s34.475.557 34.475-33.319V33.97S194.67.072 126.916.072M92.802 19.66a11.12 11.12 0 0 1 11.13 11.13a11.12 11.12 0 0 1-11.13 11.13a11.12 11.12 0 0 1-11.13-11.13a11.12 11.12 0 0 1 11.13-11.13"/><path fill="url(#cnl-python-SVGlXoRkc4T)" d="M128.757 254.126c64.832 0 60.784-28.115 60.784-28.115l-.072-29.127H127.6v-8.745h86.441s41.486 4.705 41.486-60.712c0-65.416-36.21-63.096-36.21-63.096h-21.61v30.355s1.165 36.21-35.632 36.21h-61.362s-34.475-.557-34.475 33.32v56.013s-5.235 33.897 62.518 33.897m34.114-19.586a11.12 11.12 0 0 1-11.13-11.13a11.12 11.12 0 0 1 11.13-11.131a11.12 11.12 0 0 1 11.13 11.13a11.12 11.12 0 0 1-11.13 11.13"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="257" viewBox="0 0 256 257" fill="currentColor"><path fill="#f60" d="M245.734 102.437h-81.911a10.2 10.2 0 0 1-10.263-10.263v-81.91a10.2 10.2 0 0 0-10.263-10.2h-30.66a10.2 10.2 0 0 0-10.264 10.2v81.91a10.2 10.2 0 0 1-10.263 10.263H61.45a10.2 10.2 0 0 1-10.263-10.263v-81.91A10.2 10.2 0 0 0 40.924 0H10.199A10.2 10.2 0 0 0 0 10.263v235.535a10.2 10.2 0 0 0 10.263 10.263h235.47a10.2 10.2 0 0 0 10.264-10.263V112.893a10.2 10.2 0 0 0-10.263-10.456m-41.18 86.979a15.33 15.33 0 0 1-15.33 15.394h-20.526a15.33 15.33 0 0 1-15.33-15.394v-20.462a15.33 15.33 0 0 1 15.33-15.394h20.525a15.33 15.33 0 0 1 15.33 15.394z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="220" viewBox="0 0 256 220" fill="currentColor"><path fill="#912626" d="M245.97 168.943c-13.662 7.121-84.434 36.22-99.501 44.075s-23.437 7.78-35.34 2.09c-11.902-5.69-87.216-36.112-100.783-42.597C3.566 169.271 0 166.535 0 163.951v-25.876s98.05-21.345 113.879-27.024c15.828-5.679 21.32-5.884 34.79-.95c13.472 4.936 94.018 19.468 107.331 24.344l-.006 25.51c.002 2.558-3.07 5.364-10.024 8.988"/><path fill="#c6302b" d="M245.965 143.22c-13.661 7.118-84.431 36.218-99.498 44.072c-15.066 7.857-23.436 7.78-35.338 2.09c-11.903-5.686-87.214-36.113-100.78-42.594c-13.566-6.485-13.85-10.948-.524-16.166c13.326-5.22 88.224-34.605 104.055-40.284c15.828-5.677 21.319-5.884 34.789-.948c13.471 4.934 83.819 32.935 97.13 37.81c13.316 4.881 13.827 8.9.166 16.02"/><path fill="#912626" d="M245.97 127.074c-13.662 7.122-84.434 36.22-99.501 44.078c-15.067 7.853-23.437 7.777-35.34 2.087c-11.903-5.687-87.216-36.112-100.783-42.597C3.566 127.402 0 124.67 0 122.085V96.206s98.05-21.344 113.879-27.023c15.828-5.679 21.32-5.885 34.79-.95C162.142 73.168 242.688 87.697 256 92.574l-.006 25.513c.002 2.557-3.07 5.363-10.024 8.987"/><path fill="#c6302b" d="M245.965 101.351c-13.661 7.12-84.431 36.218-99.498 44.075c-15.066 7.854-23.436 7.777-35.338 2.087c-11.903-5.686-87.214-36.112-100.78-42.594c-13.566-6.483-13.85-10.947-.524-16.167C23.151 83.535 98.05 54.148 113.88 48.47c15.828-5.678 21.319-5.884 34.789-.949c13.471 4.934 83.819 32.933 97.13 37.81c13.316 4.88 13.827 8.9.166 16.02"/><path fill="#912626" d="M245.97 83.653c-13.662 7.12-84.434 36.22-99.501 44.078c-15.067 7.854-23.437 7.777-35.34 2.087c-11.903-5.687-87.216-36.113-100.783-42.595C3.566 83.98 0 81.247 0 78.665v-25.88s98.05-21.343 113.879-27.021c15.828-5.68 21.32-5.884 34.79-.95C162.142 29.749 242.688 44.278 256 49.155l-.006 25.512c.002 2.555-3.07 5.361-10.024 8.986"/><path fill="#c6302b" d="M245.965 57.93c-13.661 7.12-84.431 36.22-99.498 44.074c-15.066 7.854-23.436 7.777-35.338 2.09C99.227 98.404 23.915 67.98 10.35 61.497S-3.5 50.55 9.825 45.331C23.151 40.113 98.05 10.73 113.88 5.05c15.828-5.679 21.319-5.883 34.789-.948s83.819 32.934 97.13 37.811c13.316 4.876 13.827 8.897.166 16.017"/><path fill="#fff" d="m159.283 32.757l-22.01 2.285l-4.927 11.856l-7.958-13.23l-25.415-2.284l18.964-6.839l-5.69-10.498l17.755 6.944l16.738-5.48l-4.524 10.855zm-28.251 57.518L89.955 73.238l58.86-9.035zm-56.95-50.928c17.375 0 31.46 5.46 31.46 12.194c0 6.736-14.085 12.195-31.46 12.195s-31.46-5.46-31.46-12.195c0-6.734 14.085-12.194 31.46-12.194"/><path fill="#621b1c" d="m185.295 35.998l34.836 13.766l-34.806 13.753z"/><path fill="#9a2928" d="m146.755 51.243l38.54-15.245l.03 27.519l-3.779 1.478z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="204" viewBox="0 0 256 204" fill="currentColor"><path fill="#f26d61" d="M0 161.202h45.312l-14.039 42.396H0zM0 80.6h72l-14.036 42.396H0zM0 0h98.692l-14.04 42.395H0zm143.349 0H256v42.395H129.312zM116.66 80.6H256v42.397H102.622zm-26.69 80.602H256v42.396H75.933z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256" fill="currentColor"><path fill="#e01e5a" d="M53.841 161.32c0 14.832-11.987 26.82-26.819 26.82S.203 176.152.203 161.32c0-14.831 11.987-26.818 26.82-26.818H53.84zm13.41 0c0-14.831 11.987-26.818 26.819-26.818s26.819 11.987 26.819 26.819v67.047c0 14.832-11.987 26.82-26.82 26.82c-14.83 0-26.818-11.988-26.818-26.82z"/><path fill="#36c5f0" d="M94.07 53.638c-14.832 0-26.82-11.987-26.82-26.819S79.239 0 94.07 0s26.819 11.987 26.819 26.819v26.82zm0 13.613c14.832 0 26.819 11.987 26.819 26.819s-11.987 26.819-26.82 26.819H26.82C11.987 120.889 0 108.902 0 94.069c0-14.83 11.987-26.818 26.819-26.818z"/><path fill="#2eb67d" d="M201.55 94.07c0-14.832 11.987-26.82 26.818-26.82s26.82 11.988 26.82 26.82s-11.988 26.819-26.82 26.819H201.55zm-13.41 0c0 14.832-11.988 26.819-26.82 26.819c-14.831 0-26.818-11.987-26.818-26.82V26.82C134.502 11.987 146.489 0 161.32 0s26.819 11.987 26.819 26.819z"/><path fill="#ecb22e" d="M161.32 201.55c14.832 0 26.82 11.987 26.82 26.818s-11.988 26.82-26.82 26.82c-14.831 0-26.818-11.988-26.818-26.82V201.55zm0-13.41c-14.831 0-26.818-11.988-26.818-26.82c0-14.831 11.987-26.818 26.819-26.818h67.25c14.832 0 26.82 11.987 26.82 26.819s-11.988 26.819-26.82 26.819z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-api-gateway-SVGyDrnJbhE-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#b0084d"/><stop offset="100%" stop-color="#ff4f8b"/></linearGradient></defs><path fill="url(#cnl-aws-api-gateway-SVGyDrnJbhE-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M8 2a6 6 0 1 0 0 12A6 6 0 1 0 8 2zM2.2 8h11.6M8 2c-2.1 2.2-2.1 9.8 0 12M8 2c2.1 2.2 2.1 9.8 0 12"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-appflow-SVGyDrnJbhE-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#b0084d"/><stop offset="100%" stop-color="#ff4f8b"/></linearGradient></defs><path fill="url(#cnl-aws-appflow-SVGyDrnJbhE-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M4 2.8a1.6 1.6 0 1 0 0 3.2 1.6 1.6 0 1 0 0-3.2zM12 10a1.6 1.6 0 1 0 0 3.2 1.6 1.6 0 1 0 0-3.2zM4 6v2.4c0 1.3 1 2.3 2.3 2.3h4.1"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-appsync-SVGyDrnJbhE-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#b0084d"/><stop offset="100%" stop-color="#ff4f8b"/></linearGradient></defs><path fill="url(#cnl-aws-appsync-SVGyDrnJbhE-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M8 2a6 6 0 1 0 0 12A6 6 0 1 0 8 2zM2.2 8h11.6M8 2c-2.1 2.2-2.1 9.8 0 12M8 2c2.1 2.2 2.1 9.8 0 12"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-athena-SVGusebDeuy-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#4d27a8"/><stop offset="100%" stop-color="#a166ff"/></linearGradient></defs><path fill="url(#cnl-aws-athena-SVGusebDeuy-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M3 4c0-1.1 2.2-2 5-2s5 .9 5 2-2.2 2-5 2-5-.9-5-2zM3 4v8c0 1.1 2.2 2 5 2s5-.9 5-2V4M3 8c0 1.1 2.2 2 5 2s5-.9 5-2"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-backup-SVG7R6tZwZW-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#1b660f"/><stop offset="100%" stop-color="#6cae3e"/></linearGradient></defs><path fill="url(#cnl-aws-backup-SVG7R6tZwZW-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M2.4 4.2c0 1 2.5 1.8 5.6 1.8s5.6-.8 5.6-1.8S11.1 2.4 8 2.4 2.4 3.2 2.4 4.2zM2.4 4.2l1.5 8.5c.2 1 1.9 1.6 4.1 1.6s3.9-.6 4.1-1.6l1.5-8.5"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-batch-SVGeyciVcvH-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#c8511b"/><stop offset="100%" stop-color="#f90"/></linearGradient></defs><path fill="url(#cnl-aws-batch-SVGeyciVcvH-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M4 2.8a1.6 1.6 0 1 0 0 3.2 1.6 1.6 0 1 0 0-3.2zM12 10a1.6 1.6 0 1 0 0 3.2 1.6 1.6 0 1 0 0-3.2zM4 6v2.4c0 1.3 1 2.3 2.3 2.3h4.1"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-certificate-manager-SVGYPnorcPn-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#bd0816"/><stop offset="100%" stop-color="#ff5252"/></linearGradient></defs><path fill="url(#cnl-aws-certificate-manager-SVGYPnorcPn-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M10.4 2.6a3 3 0 1 1-2.2 5.1L3 12.9v1.5h1.9v-1.5h1.5v-1.5l1.8-1.8M10.9 5.1h.01"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-cloudformation-SVGyDrnJbhE-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#b0084d"/><stop offset="100%" stop-color="#ff4f8b"/></linearGradient></defs><path fill="url(#cnl-aws-cloudformation-SVGyDrnJbhE-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M4 2.8a1.6 1.6 0 1 0 0 3.2 1.6 1.6 0 1 0 0-3.2zM12 10a1.6 1.6 0 1 0 0 3.2 1.6 1.6 0 1 0 0-3.2zM4 6v2.4c0 1.3 1 2.3 2.3 2.3h4.1"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-cloudfront-SVGusebDeuy-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#4d27a8"/><stop offset="100%" stop-color="#a166ff"/></linearGradient></defs><path fill="url(#cnl-aws-cloudfront-SVGusebDeuy-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M8 2a6 6 0 1 0 0 12A6 6 0 1 0 8 2zM2.2 8h11.6M8 2c-2.1 2.2-2.1 9.8 0 12M8 2c2.1 2.2 2.1 9.8 0 12"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-cloudtrail-SVGyDrnJbhE-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#b0084d"/><stop offset="100%" stop-color="#ff4f8b"/></linearGradient></defs><path fill="url(#cnl-aws-cloudtrail-SVGyDrnJbhE-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M4.6 12.6h6.9a2.8 2.8 0 0 0 .5-5.55A4 4 0 0 0 4.3 6.4a3.1 3.1 0 0 0 .3 6.2z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-cloudwatch-SVGyDrnJbhE-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#b0084d"/><stop offset="100%" stop-color="#ff4f8b"/></linearGradient></defs><path fill="url(#cnl-aws-cloudwatch-SVGyDrnJbhE-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M4.6 12.6h6.9a2.8 2.8 0 0 0 .5-5.55A4 4 0 0 0 4.3 6.4a3.1 3.1 0 0 0 .3 6.2z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-codebuild-SVGte2wIbLN-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#2e27ad"/><stop offset="100%" stop-color="#527fff"/></linearGradient></defs><path fill="url(#cnl-aws-codebuild-SVGte2wIbLN-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M4 2.8a1.6 1.6 0 1 0 0 3.2 1.6 1.6 0 1 0 0-3.2zM12 10a1.6 1.6 0 1 0 0 3.2 1.6 1.6 0 1 0 0-3.2zM4 6v2.4c0 1.3 1 2.3 2.3 2.3h4.1"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-codecommit-SVGte2wIbLN-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#2e27ad"/><stop offset="100%" stop-color="#527fff"/></linearGradient></defs><path fill="url(#cnl-aws-codecommit-SVGte2wIbLN-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M4.6 12.6h6.9a2.8 2.8 0 0 0 .5-5.55A4 4 0 0 0 4.3 6.4a3.1 3.1 0 0 0 .3 6.2z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-codedeploy-SVGte2wIbLN-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#2e27ad"/><stop offset="100%" stop-color="#527fff"/></linearGradient></defs><path fill="url(#cnl-aws-codedeploy-SVGte2wIbLN-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M4 2.8a1.6 1.6 0 1 0 0 3.2 1.6 1.6 0 1 0 0-3.2zM12 10a1.6 1.6 0 1 0 0 3.2 1.6 1.6 0 1 0 0-3.2zM4 6v2.4c0 1.3 1 2.3 2.3 2.3h4.1"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-codepipeline-SVGte2wIbLN-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#2e27ad"/><stop offset="100%" stop-color="#527fff"/></linearGradient></defs><path fill="url(#cnl-aws-codepipeline-SVGte2wIbLN-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M4 2.8a1.6 1.6 0 1 0 0 3.2 1.6 1.6 0 1 0 0-3.2zM12 10a1.6 1.6 0 1 0 0 3.2 1.6 1.6 0 1 0 0-3.2zM4 6v2.4c0 1.3 1 2.3 2.3 2.3h4.1"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-cognito-SVGYPnorcPn-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#bd0816"/><stop offset="100%" stop-color="#ff5252"/></linearGradient></defs><path fill="url(#cnl-aws-cognito-SVGYPnorcPn-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M10.4 2.6a3 3 0 1 1-2.2 5.1L3 12.9v1.5h1.9v-1.5h1.5v-1.5l1.8-1.8M10.9 5.1h.01"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-config-SVGyDrnJbhE-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#b0084d"/><stop offset="100%" stop-color="#ff4f8b"/></linearGradient></defs><path fill="url(#cnl-aws-config-SVGyDrnJbhE-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M4.6 12.6h6.9a2.8 2.8 0 0 0 .5-5.55A4 4 0 0 0 4.3 6.4a3.1 3.1 0 0 0 .3 6.2z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-documentdb-SVGte2wIbLN-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#2e27ad"/><stop offset="100%" stop-color="#527fff"/></linearGradient></defs><path fill="url(#cnl-aws-documentdb-SVGte2wIbLN-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M3 4c0-1.1 2.2-2 5-2s5 .9 5 2-2.2 2-5 2-5-.9-5-2zM3 4v8c0 1.1 2.2 2 5 2s5-.9 5-2V4M3 8c0 1.1 2.2 2 5 2s5-.9 5-2"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-dynamodb-SVGte2wIbLN-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#2e27ad"/><stop offset="100%" stop-color="#527fff"/></linearGradient></defs><path fill="url(#cnl-aws-dynamodb-SVGte2wIbLN-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M3 4c0-1.1 2.2-2 5-2s5 .9 5 2-2.2 2-5 2-5-.9-5-2zM3 4v8c0 1.1 2.2 2 5 2s5-.9 5-2V4M3 8c0 1.1 2.2 2 5 2s5-.9 5-2"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-ec2-SVGeyciVcvH-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#c8511b"/><stop offset="100%" stop-color="#f90"/></linearGradient></defs><path fill="url(#cnl-aws-ec2-SVGeyciVcvH-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M4.6 12.6h6.9a2.8 2.8 0 0 0 .5-5.55A4 4 0 0 0 4.3 6.4a3.1 3.1 0 0 0 .3 6.2z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-ecs-SVGeyciVcvH-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#c8511b"/><stop offset="100%" stop-color="#f90"/></linearGradient></defs><path fill="url(#cnl-aws-ecs-SVGeyciVcvH-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M4 2.8a1.6 1.6 0 1 0 0 3.2 1.6 1.6 0 1 0 0-3.2zM12 10a1.6 1.6 0 1 0 0 3.2 1.6 1.6 0 1 0 0-3.2zM4 6v2.4c0 1.3 1 2.3 2.3 2.3h4.1"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-eks-SVGeyciVcvH-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#c8511b"/><stop offset="100%" stop-color="#f90"/></linearGradient></defs><path fill="url(#cnl-aws-eks-SVGeyciVcvH-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M4 2.8a1.6 1.6 0 1 0 0 3.2 1.6 1.6 0 1 0 0-3.2zM12 10a1.6 1.6 0 1 0 0 3.2 1.6 1.6 0 1 0 0-3.2zM4 6v2.4c0 1.3 1 2.3 2.3 2.3h4.1"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-elasticache-SVGte2wIbLN-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#2e27ad"/><stop offset="100%" stop-color="#527fff"/></linearGradient></defs><path fill="url(#cnl-aws-elasticache-SVGte2wIbLN-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M3 4c0-1.1 2.2-2 5-2s5 .9 5 2-2.2 2-5 2-5-.9-5-2zM3 4v8c0 1.1 2.2 2 5 2s5-.9 5-2V4M3 8c0 1.1 2.2 2 5 2s5-.9 5-2"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-elb-SVGusebDeuy-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#4d27a8"/><stop offset="100%" stop-color="#a166ff"/></linearGradient></defs><path fill="url(#cnl-aws-elb-SVGusebDeuy-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M8 2a6 6 0 1 0 0 12A6 6 0 1 0 8 2zM2.2 8h11.6M8 2c-2.1 2.2-2.1 9.8 0 12M8 2c2.1 2.2 2.1 9.8 0 12"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-eventbridge-SVGyDrnJbhE-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#b0084d"/><stop offset="100%" stop-color="#ff4f8b"/></linearGradient></defs><path fill="url(#cnl-aws-eventbridge-SVGyDrnJbhE-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M13.8 2.2 6.9 9.1M13.8 2.2 9.6 13.8 6.9 9.1 2.2 6.4z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-glacier-SVG7R6tZwZW-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#1b660f"/><stop offset="100%" stop-color="#6cae3e"/></linearGradient></defs><path fill="url(#cnl-aws-glacier-SVG7R6tZwZW-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M2.4 4.2c0 1 2.5 1.8 5.6 1.8s5.6-.8 5.6-1.8S11.1 2.4 8 2.4 2.4 3.2 2.4 4.2zM2.4 4.2l1.5 8.5c.2 1 1.9 1.6 4.1 1.6s3.9-.6 4.1-1.6l1.5-8.5"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-glue-SVGusebDeuy-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#4d27a8"/><stop offset="100%" stop-color="#a166ff"/></linearGradient></defs><path fill="url(#cnl-aws-glue-SVGusebDeuy-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M4 2.8a1.6 1.6 0 1 0 0 3.2 1.6 1.6 0 1 0 0-3.2zM12 10a1.6 1.6 0 1 0 0 3.2 1.6 1.6 0 1 0 0-3.2zM4 6v2.4c0 1.3 1 2.3 2.3 2.3h4.1"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-iam-SVGYPnorcPn-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#bd0816"/><stop offset="100%" stop-color="#ff5252"/></linearGradient></defs><path fill="url(#cnl-aws-iam-SVGYPnorcPn-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M10.4 2.6a3 3 0 1 1-2.2 5.1L3 12.9v1.5h1.9v-1.5h1.5v-1.5l1.8-1.8M10.9 5.1h.01"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-keyspaces-SVGte2wIbLN-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#2e27ad"/><stop offset="100%" stop-color="#527fff"/></linearGradient></defs><path fill="url(#cnl-aws-keyspaces-SVGte2wIbLN-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M3 4c0-1.1 2.2-2 5-2s5 .9 5 2-2.2 2-5 2-5-.9-5-2zM3 4v8c0 1.1 2.2 2 5 2s5-.9 5-2V4M3 8c0 1.1 2.2 2 5 2s5-.9 5-2"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-kinesis-SVGusebDeuy-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#4d27a8"/><stop offset="100%" stop-color="#a166ff"/></linearGradient></defs><path fill="url(#cnl-aws-kinesis-SVGusebDeuy-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M2 5.2h3.2v5.6H2zM6.4 5.2h3.2v5.6H6.4zM10.8 5.2H14v5.6h-3.2z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-kms-SVGYPnorcPn-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#bd0816"/><stop offset="100%" stop-color="#ff5252"/></linearGradient></defs><path fill="url(#cnl-aws-kms-SVGYPnorcPn-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M10.4 2.6a3 3 0 1 1-2.2 5.1L3 12.9v1.5h1.9v-1.5h1.5v-1.5l1.8-1.8M10.9 5.1h.01"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-lake-formation-SVGusebDeuy-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#4d27a8"/><stop offset="100%" stop-color="#a166ff"/></linearGradient></defs><path fill="url(#cnl-aws-lake-formation-SVGusebDeuy-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M4.6 12.6h6.9a2.8 2.8 0 0 0 .5-5.55A4 4 0 0 0 4.3 6.4a3.1 3.1 0 0 0 .3 6.2z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-lambda-SVGeyciVcvH-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#c8511b"/><stop offset="100%" stop-color="#f90"/></linearGradient></defs><path fill="url(#cnl-aws-lambda-SVGeyciVcvH-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M3.6 2.6h2.1l6 10.8h1.7M8.4 7.4 4.2 13.4"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-mq-SVGyDrnJbhE-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#b0084d"/><stop offset="100%" stop-color="#ff4f8b"/></linearGradient></defs><path fill="url(#cnl-aws-mq-SVGyDrnJbhE-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M2 5.2h3.2v5.6H2zM6.4 5.2h3.2v5.6H6.4zM10.8 5.2H14v5.6h-3.2z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-msk-SVGusebDeuy-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#4d27a8"/><stop offset="100%" stop-color="#a166ff"/></linearGradient></defs><path fill="url(#cnl-aws-msk-SVGusebDeuy-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M2 5.2h3.2v5.6H2zM6.4 5.2h3.2v5.6H6.4zM10.8 5.2H14v5.6h-3.2z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-neptune-SVGte2wIbLN-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#2e27ad"/><stop offset="100%" stop-color="#527fff"/></linearGradient></defs><path fill="url(#cnl-aws-neptune-SVGte2wIbLN-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M3 4c0-1.1 2.2-2 5-2s5 .9 5 2-2.2 2-5 2-5-.9-5-2zM3 4v8c0 1.1 2.2 2 5 2s5-.9 5-2V4M3 8c0 1.1 2.2 2 5 2s5-.9 5-2"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-open-search-SVGusebDeuy-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#4d27a8"/><stop offset="100%" stop-color="#a166ff"/></linearGradient></defs><path fill="url(#cnl-aws-open-search-SVGusebDeuy-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M4.6 12.6h6.9a2.8 2.8 0 0 0 .5-5.55A4 4 0 0 0 4.3 6.4a3.1 3.1 0 0 0 .3 6.2z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-quicksight-SVGusebDeuy-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#4d27a8"/><stop offset="100%" stop-color="#a166ff"/></linearGradient></defs><path fill="url(#cnl-aws-quicksight-SVGusebDeuy-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M4.6 12.6h6.9a2.8 2.8 0 0 0 .5-5.55A4 4 0 0 0 4.3 6.4a3.1 3.1 0 0 0 .3 6.2z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-rds-SVGte2wIbLN-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#2e27ad"/><stop offset="100%" stop-color="#527fff"/></linearGradient></defs><path fill="url(#cnl-aws-rds-SVGte2wIbLN-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M3 4c0-1.1 2.2-2 5-2s5 .9 5 2-2.2 2-5 2-5-.9-5-2zM3 4v8c0 1.1 2.2 2 5 2s5-.9 5-2V4M3 8c0 1.1 2.2 2 5 2s5-.9 5-2"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-redshift-SVGusebDeuy-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#4d27a8"/><stop offset="100%" stop-color="#a166ff"/></linearGradient></defs><path fill="url(#cnl-aws-redshift-SVGusebDeuy-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M3 4c0-1.1 2.2-2 5-2s5 .9 5 2-2.2 2-5 2-5-.9-5-2zM3 4v8c0 1.1 2.2 2 5 2s5-.9 5-2V4M3 8c0 1.1 2.2 2 5 2s5-.9 5-2"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-route53-SVGusebDeuy-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#4d27a8"/><stop offset="100%" stop-color="#a166ff"/></linearGradient></defs><path fill="url(#cnl-aws-route53-SVGusebDeuy-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M8 2a6 6 0 1 0 0 12A6 6 0 1 0 8 2zM2.2 8h11.6M8 2c-2.1 2.2-2.1 9.8 0 12M8 2c2.1 2.2 2.1 9.8 0 12"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-s3-SVG7R6tZwZW-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#1b660f"/><stop offset="100%" stop-color="#6cae3e"/></linearGradient></defs><path fill="url(#cnl-aws-s3-SVG7R6tZwZW-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M2.4 4.2c0 1 2.5 1.8 5.6 1.8s5.6-.8 5.6-1.8S11.1 2.4 8 2.4 2.4 3.2 2.4 4.2zM2.4 4.2l1.5 8.5c.2 1 1.9 1.6 4.1 1.6s3.9-.6 4.1-1.6l1.5-8.5"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-secrets-manager-SVGYPnorcPn-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#bd0816"/><stop offset="100%" stop-color="#ff5252"/></linearGradient></defs><path fill="url(#cnl-aws-secrets-manager-SVGYPnorcPn-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M10.4 2.6a3 3 0 1 1-2.2 5.1L3 12.9v1.5h1.9v-1.5h1.5v-1.5l1.8-1.8M10.9 5.1h.01"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-ses-SVGYPnorcPn-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#bd0816"/><stop offset="100%" stop-color="#ff5252"/></linearGradient></defs><path fill="url(#cnl-aws-ses-SVGYPnorcPn-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M13.8 2.2 6.9 9.1M13.8 2.2 9.6 13.8 6.9 9.1 2.2 6.4z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-shield-SVGYPnorcPn-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#bd0816"/><stop offset="100%" stop-color="#ff5252"/></linearGradient></defs><path fill="url(#cnl-aws-shield-SVGYPnorcPn-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M10.4 2.6a3 3 0 1 1-2.2 5.1L3 12.9v1.5h1.9v-1.5h1.5v-1.5l1.8-1.8M10.9 5.1h.01"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-sns-SVGyDrnJbhE-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#b0084d"/><stop offset="100%" stop-color="#ff4f8b"/></linearGradient></defs><path fill="url(#cnl-aws-sns-SVGyDrnJbhE-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M13.8 2.2 6.9 9.1M13.8 2.2 9.6 13.8 6.9 9.1 2.2 6.4z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-sqs-SVGyDrnJbhE-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#b0084d"/><stop offset="100%" stop-color="#ff4f8b"/></linearGradient></defs><path fill="url(#cnl-aws-sqs-SVGyDrnJbhE-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M2 5.2h3.2v5.6H2zM6.4 5.2h3.2v5.6H6.4zM10.8 5.2H14v5.6h-3.2z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-step-functions-SVGyDrnJbhE-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#b0084d"/><stop offset="100%" stop-color="#ff4f8b"/></linearGradient></defs><path fill="url(#cnl-aws-step-functions-SVGyDrnJbhE-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M4 2.8a1.6 1.6 0 1 0 0 3.2 1.6 1.6 0 1 0 0-3.2zM12 10a1.6 1.6 0 1 0 0 3.2 1.6 1.6 0 1 0 0-3.2zM4 6v2.4c0 1.3 1 2.3 2.3 2.3h4.1"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-systems-manager-SVGyDrnJbhE-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#b0084d"/><stop offset="100%" stop-color="#ff4f8b"/></linearGradient></defs><path fill="url(#cnl-aws-systems-manager-SVGyDrnJbhE-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M10.4 2.6a3 3 0 1 1-2.2 5.1L3 12.9v1.5h1.9v-1.5h1.5v-1.5l1.8-1.8M10.9 5.1h.01"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-timestream-SVGte2wIbLN-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#2e27ad"/><stop offset="100%" stop-color="#527fff"/></linearGradient></defs><path fill="url(#cnl-aws-timestream-SVGte2wIbLN-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M3 4c0-1.1 2.2-2 5-2s5 .9 5 2-2.2 2-5 2-5-.9-5-2zM3 4v8c0 1.1 2.2 2 5 2s5-.9 5-2V4M3 8c0 1.1 2.2 2 5 2s5-.9 5-2"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-waf-SVGYPnorcPn-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#bd0816"/><stop offset="100%" stop-color="#ff5252"/></linearGradient></defs><path fill="url(#cnl-aws-waf-SVGYPnorcPn-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M10.4 2.6a3 3 0 1 1-2.2 5.1L3 12.9v1.5h1.9v-1.5h1.5v-1.5l1.8-1.8M10.9 5.1h.01"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32" fill="currentColor"><defs><linearGradient id="cnl-aws-xray-SVGte2wIbLN-sm" x1="0%" x2="100%" y1="100%" y2="0%"><stop offset="0%" stop-color="#2e27ad"/><stop offset="100%" stop-color="#527fff"/></linearGradient></defs><path fill="url(#cnl-aws-xray-SVGte2wIbLN-sm)" d="M0 0h32v32H0z"/><path fill="none" stroke="#fff" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" transform="translate(6 6) scale(1.25)" d="M4.6 12.6h6.9a2.8 2.8 0 0 0 .5-5.55A4 4 0 0 0 4.3 6.4a3.1 3.1 0 0 0 .3 6.2z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="255" viewBox="0 0 256 255" fill="currentColor"><path fill="#29b5e8" d="M100.212 161.19c8.15.579 14.607 7.254 14.776 15.442l.003.328v62.095c0 8.751-7.166 15.842-15.965 15.842c-8.735 0-15.813-6.92-15.982-15.526l-.003-.316V204.32l-30.408 17.383c-7.625 4.397-17.376 1.795-21.803-5.763c-4.35-7.48-1.866-17.04 5.541-21.495l.295-.173l54.275-31.015a15.83 15.83 0 0 1 9.27-2.067m64.452 1.854l.382.213l54.264 31.015c7.647 4.376 10.241 14.09 5.846 21.668c-4.348 7.46-13.915 10.092-21.503 5.931l-.299-.168l-30.387-17.383v34.735c0 8.751-7.144 15.842-15.986 15.842c-8.735 0-15.794-6.92-15.963-15.526l-.003-.316V176.96c0-8.337 6.502-15.184 14.78-15.77c2.97-.252 6.056.33 8.87 1.854M23.671 82.509l.3.167l54.234 31.035c3.813 2.179 6.358 5.635 7.432 9.504c.357 1.246.52 2.49.583 3.737c.04 1.72-.185 3.464-.727 5.155a15.74 15.74 0 0 1-6.926 8.824l-.362.213L23.971 172.2c-7.656 4.367-17.417 1.783-21.81-5.773c-4.371-7.5-1.886-17.013 5.544-21.475l.292-.17l30.306-17.323l-30.306-17.37C.34 105.708-2.276 96.047 2.16 88.481c4.337-7.478 13.902-10.105 21.511-5.973m230.177 5.973c4.425 7.565 1.808 17.227-5.846 21.605l-30.308 17.37l30.308 17.323c7.654 4.386 10.27 14.05 5.846 21.646c-4.417 7.556-14.186 10.14-21.813 5.773l-54.275-31.055c-3.619-2.087-6.132-5.36-7.247-9.037a15.4 15.4 0 0 1-.716-5.155a15.3 15.3 0 0 1 .562-3.737a15.9 15.9 0 0 1 7.401-9.504l54.275-31.035c7.627-4.367 17.396-1.77 21.813 5.806M131.306 97.84c.919 0 2.186.516 2.831 1.174l22.558 22.326c.643.638 1.165 1.904 1.165 2.817v6.583c0 .892-.522 2.157-1.165 2.786l-22.558 22.327c-.645.656-1.892 1.193-2.831 1.193h-6.634c-.911 0-2.178-.537-2.833-1.193l-22.546-22.327c-.646-.629-1.167-1.894-1.167-2.786v-6.583c0-.913.521-2.18 1.167-2.817l22.546-22.326c.655-.658 1.922-1.174 2.833-1.174zm-3.192 19.054h-.253c-.91 0-2.177.528-2.811 1.164l-6.532 6.444c-.655.667-1.156 1.924-1.156 2.826v.252c0 .891.501 2.137 1.156 2.786l6.532 6.462c.643.638 1.9 1.164 2.81 1.164h.254c.912 0 2.18-.526 2.824-1.164l6.531-6.462c.644-.649 1.195-1.895 1.195-2.786v-.252c0-.902-.551-2.16-1.195-2.826l-6.531-6.444c-.644-.636-1.912-1.164-2.824-1.164M156.98 0c8.735 0 15.813 6.923 15.983 15.505l.003.315v34.746l30.387-17.404c7.636-4.374 17.397-1.78 21.802 5.784a15.783 15.783 0 0 1-5.55 21.477l-.296.173l-54.264 31.044a16 16 0 0 1-9.252 2.065c-8.168-.597-14.608-7.283-14.776-15.462l-.003-.328V15.82C141.015 7.092 148.14 0 156.98 0M99.026 0c8.693 0 15.792 6.923 15.962 15.505l.003.315v62.095c0 8.327-6.52 15.185-14.78 15.79a16.05 16.05 0 0 1-8.888-1.854l-.382-.211l-54.275-31.044c-7.636-4.378-10.243-14.051-5.836-21.65c4.37-7.465 13.926-10.09 21.505-5.95l.298.166l30.408 17.404V15.82C83.041 7.092 90.185 0 99.026 0"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="206" height="228" viewBox="0 0 206 228" fill="currentColor"><defs><linearGradient id="cnl-sqlite-SVGBXOiidsw" x1="57.662%" x2="57.662%" y1="2.046%" y2="94.439%"><stop offset="0%" stop-color="#97d9f6"/><stop offset="92.024%" stop-color="#0f80cc"/><stop offset="100%" stop-color="#0f80cc"/></linearGradient></defs><path fill="#0f80cc" d="M157.888 9.952H17.15C7.717 9.952 0 17.67 0 27.102V182.31c0 9.432 7.717 17.15 17.15 17.15h92.693c-1.052-46.122 14.698-135.63 48.045-189.508"/><path fill="url(#cnl-sqlite-SVGBXOiidsw)" d="M152.775 14.955H17.15c-6.698 0-12.148 5.449-12.148 12.148v143.883c30.716-11.788 76.817-21.96 108.693-21.498c6.406-33.494 25.232-99.134 39.08-134.533"/><path fill="#003b57" d="M190.715 4.872c-9.639-8.595-21.31-5.143-32.827 5.08c-1.71 1.518-3.416 3.203-5.113 5.003c-19.704 20.903-37.994 59.62-43.676 89.19c2.214 4.489 3.943 10.217 5.081 14.593c.292 1.122.555 2.176.766 3.072c.5 2.122.769 3.497.769 3.497s-.177-.668-.902-2.77c-.138-.403-.292-.843-.474-1.361a16 16 0 0 0-.304-.752c-1.285-2.988-4.84-9.294-6.405-12.04a301 301 0 0 0-3.511 10.983c4.517 8.265 7.27 22.429 7.27 22.429s-.239-.918-1.374-4.122c-1.008-2.833-6.027-11.628-7.216-13.684c-2.034 7.509-2.842 12.578-2.113 13.812c1.415 2.391 2.762 6.518 3.946 11.081c2.673 10.28 4.53 22.796 4.53 22.796s.06.83.162 2.106c-.372 8.633-.149 17.584.52 25.674c.885 10.71 2.552 19.91 4.677 24.834l1.443-.786c-3.12-9.701-4.388-22.414-3.833-37.076c.84-22.41 5.997-49.437 15.526-77.606c16.1-42.523 38.436-76.641 58.879-92.935c-18.633 16.828-43.851 71.297-51.4 91.467c-8.453 22.588-14.443 43.784-18.053 64.092c6.229-19.039 26.368-27.222 26.368-27.222s9.877-12.182 21.42-29.586c-6.914 1.577-18.268 4.277-22.071 5.875c-5.61 2.353-7.121 3.156-7.121 3.156s18.17-11.066 33.76-16.076c21.44-33.768 44.799-81.74 21.276-102.724"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="512" height="214" viewBox="0 0 512 214" fill="currentColor"><path fill="#635bff" d="M512 110.08c0-36.409-17.636-65.138-51.342-65.138c-33.85 0-54.33 28.73-54.33 64.854c0 42.808 24.179 64.426 58.88 64.426c16.925 0 29.725-3.84 39.396-9.244v-28.445c-9.67 4.836-20.764 7.823-34.844 7.823c-13.796 0-26.027-4.836-27.591-21.618h69.547c0-1.85.284-9.245.284-12.658m-70.258-13.511c0-16.071 9.814-22.756 18.774-22.756c8.675 0 17.92 6.685 17.92 22.756zm-90.31-51.627c-13.939 0-22.899 6.542-27.876 11.094l-1.85-8.818h-31.288v165.83l35.555-7.537l.143-40.249c5.12 3.698 12.657 8.96 25.173 8.96c25.458 0 48.64-20.48 48.64-65.564c-.142-41.245-23.609-63.716-48.498-63.716m-8.534 97.991c-8.391 0-13.37-2.986-16.782-6.684l-.143-52.765c3.698-4.124 8.818-6.968 16.925-6.968c12.942 0 21.902 14.506 21.902 33.137c0 19.058-8.818 33.28-21.902 33.28M241.493 36.551l35.698-7.68V0l-35.698 7.538zm0 10.809h35.698v124.444h-35.698zm-38.257 10.524L200.96 47.36h-30.72v124.444h35.556V87.467c8.39-10.951 22.613-8.96 27.022-7.396V47.36c-4.551-1.707-21.191-4.836-29.582 10.524m-71.112-41.386l-34.702 7.395l-.142 113.92c0 21.05 15.787 36.551 36.836 36.551c11.662 0 20.195-2.133 24.888-4.693V140.8c-4.55 1.849-27.022 8.391-27.022-12.658V77.653h27.022V47.36h-27.022zM35.982 83.484c0-5.546 4.551-7.68 12.09-7.68c10.808 0 24.461 3.272 35.27 9.103V51.484c-11.804-4.693-23.466-6.542-35.27-6.542C19.2 44.942 0 60.018 0 85.192c0 39.252 54.044 32.995 54.044 49.92c0 6.541-5.688 8.675-13.653 8.675c-11.804 0-26.88-4.836-38.827-11.378v33.849c13.227 5.689 26.596 8.106 38.827 8.106c29.582 0 49.92-14.648 49.92-40.106c-.142-42.382-54.329-34.845-54.329-50.774"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="263" viewBox="0 0 256 263" fill="currentColor"><defs><linearGradient id="cnl-supabase-icon-SVGMPst3dYn" x1="20.862%" x2="63.426%" y1="20.687%" y2="44.071%"><stop offset="0%" stop-color="#249361"/><stop offset="100%" stop-color="#3ecf8e"/></linearGradient><linearGradient id="cnl-supabase-icon-SVGNaiFRdXR" x1="1.991%" x2="21.403%" y1="-13.158%" y2="34.708%"><stop offset="0%"/><stop offset="100%" stop-opacity="0"/></linearGradient></defs><path fill="url(#cnl-supabase-icon-SVGMPst3dYn)" d="M149.602 258.579c-6.718 8.46-20.338 3.824-20.5-6.977l-2.367-157.984h106.229c19.24 0 29.971 22.223 18.007 37.292z"/><path fill="url(#cnl-supabase-icon-SVGNaiFRdXR)" fill-opacity=".2" d="M149.602 258.579c-6.718 8.46-20.338 3.824-20.5-6.977l-2.367-157.984h106.229c19.24 0 29.971 22.223 18.007 37.292z"/><path fill="#3ecf8e" d="M106.399 4.37c6.717-8.461 20.338-3.826 20.5 6.976l1.037 157.984H23.037c-19.241 0-29.973-22.223-18.008-37.292z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="256" height="256" viewBox="0 0 256 256" fill="currentColor"><path fill="#f12e45" d="M128 0c70.656 0 128 57.344 128 128s-57.344 128-128 128S0 198.656 0 128S57.344 0 128 0m0 33.792c-52.224 0-94.208 41.984-94.208 94.208S75.776 222.208 128 222.208s94.208-41.984 94.208-94.208S180.224 33.792 128 33.792m31.744 99.328c14.704 0 26.624 11.92 26.624 26.624s-11.92 26.624-26.624 26.624s-26.624-11.92-26.624-26.624s11.92-26.624 26.624-26.624m-63.488 0c14.704 0 26.624 11.92 26.624 26.624s-11.92 26.624-26.624 26.624s-26.624-11.92-26.624-26.624s11.92-26.624 26.624-26.624m63.488-63.488c14.704 0 26.624 11.92 26.624 26.624s-11.92 26.624-26.624 26.624s-26.624-11.92-26.624-26.624s11.92-26.624 26.624-26.624m-63.488 0c14.704 0 26.624 11.92 26.624 26.624s-11.92 26.624-26.624 26.624s-26.624-11.92-26.624-26.624s11.92-26.624 26.624-26.624"/></svg>
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
"""
|
|
2
|
+
_Outline: how_it_works()'s steps as a tree of code lines, each with tags for what it does.
|
|
3
|
+
"""
|
|
4
|
+
|
|
5
|
+
from __future__ import annotations
|
|
6
|
+
|
|
7
|
+
from dataclasses import dataclass
|
|
8
|
+
from typing import Iterable
|
|
9
|
+
|
|
10
|
+
from ..kit.blocks import _Report, _draws
|
|
11
|
+
from ..kit.highlight import _python_html
|
|
12
|
+
from ..kit.render import _prose
|
|
13
|
+
from ..kit.text import _esc
|
|
14
|
+
|
|
15
|
+
from ..analysis.model import CodeStep
|
|
16
|
+
from ..analysis.findings import _short_name
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
@dataclass
|
|
20
|
+
class _Outline:
|
|
21
|
+
"""
|
|
22
|
+
how_it_works()'s steps: the lines of the code that do something, as a tree (a loop's lines under it, each of its
|
|
23
|
+
own functions folded under the line that calls it), with what each line does. In HTML the code in colour with
|
|
24
|
+
its line numbers and coloured tags for what it does; in text the lines indented, what they do as a # comment.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
steps: list[CodeStep]
|
|
28
|
+
title: str = ""
|
|
29
|
+
empty: str = "(nothing it can follow)"
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
_NOTE_TIPS = { # what an outline tag means, on hover
|
|
33
|
+
"aws-reads": "an AWS call that reads",
|
|
34
|
+
"aws-writes": "an AWS call that writes",
|
|
35
|
+
"aws-sends": "an AWS call that sends a message or an event",
|
|
36
|
+
"aws-runs": "an AWS call that runs something",
|
|
37
|
+
"aws-signs": "a signed link for this AWS call: no request is sent now",
|
|
38
|
+
"client": "a client for AWS or a service",
|
|
39
|
+
"lib-reads": "a call that reads",
|
|
40
|
+
"lib-writes": "a call that writes",
|
|
41
|
+
"lib-sends": "a call that sends a message",
|
|
42
|
+
"lib-runs": "a call that runs something",
|
|
43
|
+
"env": "an environment variable it reads",
|
|
44
|
+
"event": "a field of its input it reads",
|
|
45
|
+
"http": "an HTTP request",
|
|
46
|
+
"log": "a log line",
|
|
47
|
+
"file": "a file it writes",
|
|
48
|
+
"sleep": "a pause",
|
|
49
|
+
"command": "a command run as another process",
|
|
50
|
+
"warn": "worth a look",
|
|
51
|
+
"route": "a web route",
|
|
52
|
+
"more": "",
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
_FOLDED_KINDS = (
|
|
56
|
+
"aws-reads",
|
|
57
|
+
"aws-writes",
|
|
58
|
+
"aws-sends",
|
|
59
|
+
"aws-runs",
|
|
60
|
+
"aws-signs",
|
|
61
|
+
"lib-reads",
|
|
62
|
+
"lib-writes",
|
|
63
|
+
"lib-sends",
|
|
64
|
+
"lib-runs",
|
|
65
|
+
"env",
|
|
66
|
+
"http",
|
|
67
|
+
"warn",
|
|
68
|
+
"file",
|
|
69
|
+
"sleep",
|
|
70
|
+
"command",
|
|
71
|
+
) # the tags a folded function shows of what's inside it
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def _note_text(kind: str, text: str) -> str:
|
|
75
|
+
"""
|
|
76
|
+
An outline tag in words: 'S3 GetObject (reads)', 'env DB_HOST', 'event Records[].body' (a field of the input
|
|
77
|
+
comes with its platform's word for it: 'request query.q').
|
|
78
|
+
"""
|
|
79
|
+
if kind.startswith(("aws-", "lib-")):
|
|
80
|
+
return f"{text.replace(': ', ' ', 1) if kind.startswith('lib-') else text} ({kind[4:]})"
|
|
81
|
+
return f"{kind} {text}" if kind == "env" else text
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
def _chips_html(notes: Iterable[tuple[str, str]]) -> str:
|
|
85
|
+
out = []
|
|
86
|
+
for kind, text in notes:
|
|
87
|
+
word = f"<i>{_esc(kind[4:])}</i>" if kind.startswith(("aws-", "lib-")) else ""
|
|
88
|
+
label = f"{kind} {text}" if kind == "env" else text.replace(": ", " ", 1) if kind.startswith("lib-") else text
|
|
89
|
+
out.append(
|
|
90
|
+
f'<span class="nt n-{_esc(kind)}" title="{_esc(_NOTE_TIPS.get(kind, ""))}">{_esc(label)}{word}</span>'
|
|
91
|
+
)
|
|
92
|
+
return "".join(out)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def _inside(step: CodeStep) -> list[tuple[str, str]]:
|
|
96
|
+
"""
|
|
97
|
+
The tags of every line under a step, once each: what a folded function does.
|
|
98
|
+
"""
|
|
99
|
+
found: list[tuple[str, str]] = []
|
|
100
|
+
for each in step.walk():
|
|
101
|
+
for note in each.notes:
|
|
102
|
+
if each is not step and note[0] in _FOLDED_KINDS and note not in found:
|
|
103
|
+
found.append(note)
|
|
104
|
+
return found
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
def _def_html(step: CodeStep) -> str:
|
|
108
|
+
"""
|
|
109
|
+
One of its functions called on a line (or a module it imports), folded under it: its name, where it is and what
|
|
110
|
+
it does inside; open, its steps.
|
|
111
|
+
"""
|
|
112
|
+
if step.kind == "module":
|
|
113
|
+
label = f'<b>{_esc(step.file)}</b> <span class="of">runs when it\'s imported</span>'
|
|
114
|
+
else:
|
|
115
|
+
label = f'<b>{_esc(_short_name(step.name))}()</b> <span class="of">{_esc(step.file)} line {step.line}</span>'
|
|
116
|
+
own = _chips_html(step.notes)
|
|
117
|
+
if step.seen or not step.steps:
|
|
118
|
+
why = (
|
|
119
|
+
"its steps are shown where it's first called"
|
|
120
|
+
if step.seen and not any(k == "more" for k, _ in step.notes)
|
|
121
|
+
else ""
|
|
122
|
+
if step.notes
|
|
123
|
+
else "nothing in it to follow"
|
|
124
|
+
)
|
|
125
|
+
return (
|
|
126
|
+
f'<div class="ol oseen"><span class="ln"></span><span class="on">↳ {label}</span>{own}'
|
|
127
|
+
+ (f'<span class="oq">{_esc(why)}</span>' if why else "")
|
|
128
|
+
+ "</div>"
|
|
129
|
+
)
|
|
130
|
+
inside = _inside(step)
|
|
131
|
+
chips = _chips_html(inside[:6]) + (f'<span class="oq">+{len(inside) - 6} more</span>' if len(inside) > 6 else "")
|
|
132
|
+
head = (
|
|
133
|
+
f'<summary class="ol"><span class="ln"></span><span class="on"><span class="och"></span>{label}</span>{own}'
|
|
134
|
+
f'<span class="os">{chips}</span></summary>'
|
|
135
|
+
)
|
|
136
|
+
body = (
|
|
137
|
+
f'<div class="ol k-def"><span class="ln">{step.line}</span><code class="ocd">{_python_html(step.code)}</code>'
|
|
138
|
+
"</div>"
|
|
139
|
+
if step.kind == "def"
|
|
140
|
+
else ""
|
|
141
|
+
)
|
|
142
|
+
return (
|
|
143
|
+
f'<details class="od">{head}<div class="ob">{body}'
|
|
144
|
+
f'<div class="ox">{_flow_html(step.steps)}</div></div></details>'
|
|
145
|
+
)
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
def _flow_html(steps: list[CodeStep], top: bool = False) -> str:
|
|
149
|
+
out = []
|
|
150
|
+
for step in steps:
|
|
151
|
+
if top and step.kind == "def" and step.steps: # the handler: its steps, always open
|
|
152
|
+
out.append(
|
|
153
|
+
f'<div class="ol k-def"><span class="ln">{step.line}</span><code class="ocd">'
|
|
154
|
+
f'{_python_html(step.code)}</code><span class="of">{_esc(step.file)}</span>'
|
|
155
|
+
f'{_chips_html(step.notes)}</div><div class="ox">{_flow_html(step.steps)}</div>'
|
|
156
|
+
)
|
|
157
|
+
continue
|
|
158
|
+
if step.kind in ("def", "module"):
|
|
159
|
+
out.append(_def_html(step))
|
|
160
|
+
continue
|
|
161
|
+
out.append(
|
|
162
|
+
f'<div class="ol k-{_esc(step.kind)}"><span class="ln">{step.line or ""}</span>'
|
|
163
|
+
f'<code class="ocd">{_python_html(step.code)}</code>{_chips_html(step.notes)}</div>'
|
|
164
|
+
)
|
|
165
|
+
inner = "".join(_def_html(call) for call in step.calls) + _flow_html(step.steps)
|
|
166
|
+
if inner:
|
|
167
|
+
out.append(f'<div class="ox">{inner}</div>')
|
|
168
|
+
return "".join(out)
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
@_draws(_Outline, "html")
|
|
172
|
+
def _outline_html(block: _Outline, report: _Report) -> str:
|
|
173
|
+
title = f"<h4>{_prose(block.title)}</h4>" if block.title else ""
|
|
174
|
+
if not block.steps:
|
|
175
|
+
return title + f'<div class="more">{_esc(block.empty)}</div>'
|
|
176
|
+
return f'{title}<div class="flow">{_flow_html(block.steps, top=True)}</div>'
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
@_draws(_Outline, "text")
|
|
180
|
+
def _outline_lines(block: _Outline, report: _Report) -> list[str]:
|
|
181
|
+
out = ["", f"-- {block.title} --"] if block.title else [""]
|
|
182
|
+
if not block.steps:
|
|
183
|
+
return out + [block.empty]
|
|
184
|
+
|
|
185
|
+
def comment(notes: list[tuple[str, str]], *more: str, step: CodeStep | None = None) -> str:
|
|
186
|
+
said = [_note_text(kind, text) for kind, text in notes] + [m for m in more if m]
|
|
187
|
+
if step is not None: # what the reader knows: names' values, AWS arguments' sources, a call's condition
|
|
188
|
+
said += [f"{name}: {what}" for name, what in step.holds if not any(what in s for s in said)]
|
|
189
|
+
said += [f"{arg.rsplit(' ', 1)[-1]} ← {source}" for arg, source in step.given]
|
|
190
|
+
said += [f"when {' and '.join(step.when)}"] if step.when else []
|
|
191
|
+
return " # " + " · ".join(said) if said else ""
|
|
192
|
+
|
|
193
|
+
def walk(steps: list[CodeStep], pad: int, called: bool) -> None:
|
|
194
|
+
for step in steps:
|
|
195
|
+
if step.kind == "module":
|
|
196
|
+
out.append(f"{'':>5} {' ' * pad}↳ {step.file}, run when it's imported")
|
|
197
|
+
walk(step.steps, pad + 4, False)
|
|
198
|
+
continue
|
|
199
|
+
if step.kind == "def":
|
|
200
|
+
more = (
|
|
201
|
+
"its steps are shown where it's first called"
|
|
202
|
+
if step.seen and not any(k == "more" for k, _ in step.notes)
|
|
203
|
+
else ""
|
|
204
|
+
if step.steps or step.notes
|
|
205
|
+
else "nothing in it to follow"
|
|
206
|
+
)
|
|
207
|
+
out.append(
|
|
208
|
+
f"{step.line:>5} {' ' * pad}{'↳ ' if called else ''}{step.code}"
|
|
209
|
+
+ comment(step.notes, step.file, more, step=step)
|
|
210
|
+
)
|
|
211
|
+
walk(step.steps, pad + (4 if called else 2), False)
|
|
212
|
+
continue
|
|
213
|
+
out.append(f"{step.line or '':>5} {' ' * pad}{step.code}{comment(step.notes, step=step)}")
|
|
214
|
+
for call in step.calls:
|
|
215
|
+
walk([call], pad + 4, True)
|
|
216
|
+
walk(step.steps, pad + 2, False)
|
|
217
|
+
|
|
218
|
+
walk(block.steps, 0, False)
|
|
219
|
+
return out
|