terraform-provider-datadog 相关问题


使用Datadog配置MongoDB集群

我刚开始使用datadog,除了从datadog集成按钮安装之外,不太确定mongodb和datadog之间的集成如何工作 我的目的是收集尽可能多的满足...


Datadog 中的 AWS Cloudwatch 警报

查看 Datadog AWS 集成文档,我发现提到 AWS 警报可以流式传输到 Datadog 中。据说您可以选择两种不同的方法发送AWS CloudWatch ...


Flutter Provider 与全局变量

在主文件中定义的全局变量之上使用 Provider(在简单的应用程序中)的原因是什么? 调用Provider必须嵌入Build方法中,因此可以直接访问全局


是否可以从Rails应用程序中访问DataDog trace_id

我们在 Rails 应用程序中使用 DataDog 的分布式跟踪,并希望写入trace_id(对于控制器#action),以便我们稍后可以访问 Rails 日志中的 url。我怎么能...


为什么 terraform aws_cognito_user_pool 在每个 terraform 计划上始终显示为“就地更新”?

# aws_cognito_user_pool.user_pool 将就地更新 〜资源“aws_cognito_user_pool”“user_pool”{ id =“us-east-1_xxxyyy” ...


如何使用 redux tollkit 修复 Next 14 中的错误“请确保组件包裹在 <Provider> 中”?

我很难让 Next.js 14 与 Redux Provider 一起使用。我按照 Redux 官方文档上的所有说明进行操作,但我不断收到此错误: 错误:找不到反应-...


使用 Python 以编程方式编辑 Terraform 配置文件

我正在尝试使用Python编辑Terraform配置文件。我正在使用返回 python 字典的 python hcl2 库解析 Terraform 文件(.tf)。我想添加新的键/值对或 c...


Terraform 包含的功能未按预期工作

我想根据“app”和“db”层过滤 Terraform 中的字符串列表。但是, contains 函数返回带有字符串“app”的空结果 变量“层”{ 类型...


无法通过 terraform 为 aks 设置 azure 日志监控

无法通过 terraform 为 aks 设置 azure 日志记录并出现此错误 解决方案名称:“logsMonitoring(*********):执行CreateOrUpdate: 意外状态 400,错误:InvalidParameter:


Azure postgres 灵活服务器使用 terraform 创建用户

我正在尝试使用 terraform 创建与 postgres 灵活服务器中的数据库名称相同的用户。用户创建代码如下。 资源“


如何通过 Terraform 将新源添加到现有的 Cloudfront 发行版?

我正在尝试使用 terraform 将原点添加到现有 CF。我找不到任何可以检索 CF 配置并添加源的块。请指教


Azure Terraform Kubernetes VMSS 用户分配的身份

我对这个配置和我尝试的一切都迷失了,它根本不起作用。 解释。我有一个用于部署 Azure Kubernetes 集群的 terraform 代码,如下所示: 资源“


proxmox 的 github 操作出现 Terraform 计划错误

我尝试使用 Proxmox 进行 Terraform,效果很好。尝试通过自托管 github runner 来学习和利用 GitHub 操作功能 名称:LCX_2 在: 工作流程_调度: 环境: PM_API_URL:${{


在 Terragrunt 环境存储库中使用 TFENV 和 TFENV_AUTO_INSTALL 时出现并发 terraform 安装问题

问题: 在 Terragrunt 存储库中使用 TFENV_AUTO_INSTALL 环境变量时,许多不同 Terraform 版本的并发安装会触发竞争条件。 这导致...


在 Terraform 变量中使用 JSON 格式的字符串

我正在 Terraform 版本 0.14.15 上使用 for_each 方法创建一些资源。该资源有一个属性 input_parameters,它采用 JSON 格式的字符串作为其值。我正在定义...


反应单元测试“不是函数”对象。<anonymous>

努力为使用 redux/sagas 的文件编写一些单元测试。 app.tsx 文件看起来像这样 从 'react' 导入 React, { StrictMode } 从'react-dom'导入ReactDOM 导入 { Provider } f...


Flutter BlocProvider:从传递的上下文开始找不到祖先?

根据 flutter_bloc 文档,使用 Bloc Provider 包装小部件就足够了,以便使用小部件中的 Bloc 实例。但是,我收到此错误: 没有祖先...


参考使用 terraform 的 aws kinesis firehose 未声明的资源错误

我正在尝试使用 terraform 模块创建 AWS kinesis firehose 数据流。但我收到错误。我尝试了多种选项,但仍然遇到相同的错误,有人可以帮助我吗


如何使用cloud-init和Terraform设置主机名?

我从 Terraform 开始。我试图让它设置一个友好的主机名,而不是AWS通常使用的ip-10.10.10.10。但是,我还没有找到如何做到这一点。 我尝试使用配置程序,...


尝试部署我的 Aave 闪贷测试但出现错误。 https://github.com/aave/flashloan-box

每当我运行“truffle test”时,我都会收到以下错误: 错误:助记符无效或未定义 在 checkBIP39Mnemonic (C:\Users\Jackc ode_modules\@truffle\hdwallet-provider\src\index.ts:...


terraform - 如果 ec2 实例已存在,则不要创建它

所以我在 terraform 中遇到了一个场景,其中的要求是检查资源(比如说 ec2)是否已存在于 AWS 中,如果存在则不要创建它。 现在我明白了,如果 ec2 &...


使用 Flutter bloc 获取它

我们已经在使用 BLOC Provider 进行依赖注入,那么在 Bloc 实现中需要什么 get_it 呢? 我目前正在使用 bloc 提供程序进行依赖注入以及 get_it 包是如何的


如何在terraform中的其他模块中调用for_each输出值

如何在terraform中调用其他模块中的for_each输出值 我试图在其他模块(ec2-instance)中调用 VPC 的输出,但它不起作用。 我正在粘贴我的 vpc 模块、vpc 输出,


如何根据Angular中的条件更新provider中的useClass

我正在尝试根据条件更新useClass。当我尝试更改选项卡时,我想更新服务。所以我为此编写了一个工厂函数。 让 useClassFactory = ( 康涅狄格州:


使用 Terraform Cloud 和 Google 提供商向 GCP 进行身份验证

我有以下代码用于在我的 GCP 项目中配置 GCS 存储桶 我正在使用 Terraform Cloud,并且已使用 GCP 的应用程序默认凭据进行了身份验证 我创建了一个环境变量...


如何使用 terraform 添加多个现有 vmware 标签

这就是我目前使用它们的方式: # terraform.tfvars vsphere_tag_name =“名称” vsphere_tag_category =“类别” # var.tf 变量 &q...


Terraform - 创建带有名称的 S3 存储桶;保留现有的存储桶

在我们的开发环境中,我们希望为每个开发人员提供 S3 存储桶。我正在尝试将这些存储桶的管理迁移到 Terraform。这是在一个新帐户中进行的,所以有...


Terraform Plan“应用后已知” - 如何知道我的插值是否成功?

这是我成功的地形计划的摘录 ~ Primary_network_interface_id = "eni-XXXXXXXXXXXXX -> (应用后已知) ~ private_dns = "shshshshshshshshhs&q...


AKS LoadBalancer 外部 IP 卡在 <pending>

我使用以下 Terraform 在 Azure 中创建了一个 Kubernetes 集群。 Azure Kubernetes 服务集群是使用应用程序网关创建的,因为我想使用应用程序网关作为入口


分支策略仅限于通过 Terraform 的 Azure Devops 中的存储库

我们在 Azure Devops 的项目中有几个存储库(比如 TFA 和 TFB),它们从不同的“默认”策略继承分支策略。 我们计划覆盖并且


AWS - Terraform 创建多个 ALB 目标组,每个目标组具有不同的 IP 目标

我正在尝试创建多个 AWS ALB 目标组,每个目标组具有不同的 IP 目标集。 我的变量定义如下。 变量“目标组名称”{ 类型=...


连接资源的内部地形块

我有一个AWS规则组,它是AWS网络防火墙的一部分。 当每个规则都在单独的文件中时,我需要能够在 terraform 中编写规则,以及合并(连接)所有规则的方法...


阿里云 Terraform 应用 - 错误代码:RISK.RISK_CONTROL_REJECTION & 错误代码:Forbidden.RiskControl

我想创建2个实例(一个实例Zone A,一个实例Zone B),私有IP,SLB(公共IP),虚拟服务器都是实例(对于SLB),前端和后端端口都是HTTP。关于我的土地...


不同的 aws_security_group 出口规则取决于用户输入 (terraform)

我试图弄清楚如何根据提供的变量拥有不同的出口规则。对于我的用例,安全组应该具有对世界的完全出站访问权限,或者是远程...


使用 terraform 的 AWS 私有证书颁发机构(安装根 CA 证书)

团队, 我正在尝试创建 AWS PCA(要将其用于任何地方的 IAM 角色),安装 CA 证书并使用 ACM 请求私有证书。我在哪里面临以下错误,我错了什么......


错误:在此 BlocBuilder<InternetBloc> Widget<InternetBloc, InternetState> 上方找不到正确的提供程序

我在尝试将 flutter_bloc 集成到 flutter 项目中时遇到错误。 错误:在此 BlocBuilder 上方找不到正确的 Provider 我在尝试将 flutter_bloc 集成到 flutter 项目中时遇到错误。 错误:在此 BlocBuilder Widget 上方找不到正确的提供者 这是我正在使用的代码示例。 internet_state.dart abstract class InternetState{} class InitialInternetState extends InternetState{} class LostConnectionInternetState extends InternetState{} class GainConnectionInternetState extends InternetState{} internet_event.dart abstract class InternetEvent{} class LostConnectionEvent extends InternetEvent{} class GainConnectionEvent extends InternetEvent{} internet_bloc.dart class InternetBloc extends Bloc<InternetEvent, InternetState>{ final Connectivity _connectivity = Connectivity(); StreamSubscription? streamSubscription; InternetBloc() : super(InitialInternetState()){ on<GainConnectionEvent>((event, emit) => emit(GainConnectionInternetState())); on<LostConnectionEvent>((event, emit) => emit(LostConnectionInternetState())); _connectivity.onConnectivityChanged.listen((event) { if(event == ConnectivityResult.mobile || event == ConnectivityResult.wifi){ add(GainConnectionEvent()); } else { add(LostConnectionEvent()); } }); } @override Future<void> close() { streamSubscription?.cancel(); return super.close(); } } main.dart class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple), useMaterial3: true, ), home: const MyHomePage(title: 'Flutter Demo Home Page'), ); } } class MyHomePage extends StatelessWidget { const MyHomePage({super.key, required this.title}); final String title; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: Text(title),), body: SafeArea( child: Center(child: BlocBuilder<InternetBloc, InternetState>( builder: (context, state) { return const Text("hello"); }, )), ),); } } 我明白了。 ======== 小部件库捕获异常====================================== =================== 构建 MediaQuery(MediaQueryData(size: Size(392.7, 783.3), devicePixelRatio: 2.8, textScaler: noscaling, platformBrightness: Brightness.light, padding: EdgeInsets.zero, viewPadding: EdgeInsets.zero, viewInsets: EdgeInsets 时抛出以下 ProviderNotFoundException。零,systemGestureInsets:EdgeInsets(29.8,24.0,29.8,8.0),alwaysUse24HourFormat:假,accessibleNavigation:假,highContrast:假,onOffSwitchLabels:假,disableAnimations:假,invertColors:假,boldText:假,navigationMode:传统,gestureSettings:DeviceGestureSettings (touchSlop:8.0),显示功能:[])): 错误:无法在此 BlocBuilder Widget 之上找到正确的提供程序 发生这种情况是因为您使用了不包含提供程序的 BuildContext 你的选择。有以下几种常见场景: 您在main.dart中添加了一个新的提供程序并执行了热重载。 要修复此问题,请执行热重启。 您尝试阅读的提供商处于不同的路线。 提供商具有“范围”。因此,如果您在路线中插入提供者,那么 其他路线将无法访问该提供商。 您使用了 BuildContext,它是您尝试读取的提供程序的祖先。 确保 BlocBuilder 位于您的 MultiProvider/Provider 下。 当您创建提供程序并尝试立即读取它时,通常会发生这种情况。 例如,代替: Widget build(BuildContext context) { return Provider<Example>( create: (_) => Example(), // Will throw a ProviderNotFoundError, because `context` is associated // to the widget that is the parent of `Provider<Example>` child: Text(context.watch<Example>().toString()), ); } 考虑使用builder,如下所示: Widget build(BuildContext context) { return Provider<Example>( create: (_) => Example(), // we use `builder` to obtain a new `BuildContext` that has access to the provider builder: (context, child) { // No longer throws return Text(context.watch<Example>().toString()); } ); } 如果这些解决方案都不起作用,请考虑在 StackOverflow 上寻求帮助: https://stackoverflow.com/questions/tagged/flutter The relevant error-causing widget was: SafeArea SafeArea:file:///Users/../Projects/flutterTest/bloc_test/lib/main.dart:37:13 When the exception was thrown, this was the stack: #0 Provider._inheritedElementOf (package:provider/src/provider.dart:343:7) #1 Provider.of (package:provider/src/provider.dart:293:30) #2 ReadContext.read (package:provider/src/provider.dart:649:21) #3 _BlocBuilderBaseState.initState (package:flutter_bloc/src/bloc_builder.dart:130:36) #4 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5602:55) #5 ComponentElement.mount (package:flutter/src/widgets/framework.dart:5447:5) ... Normal element mounting (4 frames) #9 Element.inflateWidget (package:flutter/src/widgets/framework.dart:4326:16) #10 Element.updateChild (package:flutter/src/widgets/framework.dart:3831:20) #11 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16) #12 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7) #13 ProxyElement.update (package:flutter/src/widgets/framework.dart:5800:5) #14 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15) #15 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6743:14) #16 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15) #17 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16) #18 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7) #19 StatelessElement.update (package:flutter/src/widgets/framework.dart:5547:5) #20 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15) #21 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16) #22 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7) #23 StatelessElement.update (package:flutter/src/widgets/framework.dart:5547:5) #24 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15) #25 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16) #26 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7) #27 StatelessElement.update (package:flutter/src/widgets/framework.dart:5547:5) #28 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15) #29 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16) #30 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7) #31 ProxyElement.update (package:flutter/src/widgets/framework.dart:5800:5) #32 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15) #33 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16) #34 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7) #35 ProxyElement.update (package:flutter/src/widgets/framework.dart:5800:5) #36 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15) #37 Element.updateChildren (package:flutter/src/widgets/framework.dart:3964:32) #38 MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6896:17) #39 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15) #40 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16) #41 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7) #42 ProxyElement.update (package:flutter/src/widgets/framework.dart:5800:5) #43 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15) #44 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16) #45 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5634:11) #46 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7) #47 StatefulElement.update (package:flutter/src/widgets/framework.dart:5657:5) #48 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15) #49 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16) #50 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5634:11) #51 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7) #52 StatefulElement.update (package:flutter/src/widgets/framework.dart:5657:5) #53 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15) #54 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16) #55 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7) #56 ProxyElement.update (package:flutter/src/widgets/framework.dart:5800:5) #57 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15) #58 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16) #59 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5634:11) #60 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7) #61 StatefulElement.update (package:flutter/src/widgets/framework.dart:5657:5) #62 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15) #63 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6743:14) #64 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15) #65 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16) #66 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7) #67 ProxyElement.update (package:flutter/src/widgets/framework.dart:5800:5) #68 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15) #69 SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:6743:14) #70 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15) #71 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16) #72 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5634:11) #73 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7) #74 StatefulElement.update (package:flutter/src/widgets/framework.dart:5657:5) #75 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15) #76 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16) #77 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5634:11) #78 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7) #79 StatefulElement.update (package:flutter/src/widgets/framework.dart:5657:5) #80 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15) #81 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16) #82 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7) #83 ProxyElement.update (package:flutter/src/widgets/framework.dart:5800:5) #84 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15) #85 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16) #86 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7) #87 ProxyElement.update (package:flutter/src/widgets/framework.dart:5800:5) #88 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15) #89 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16) #90 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7) #91 ProxyElement.update (package:flutter/src/widgets/framework.dart:5800:5) #92 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15) #93 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16) #94 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5634:11) #95 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7) #96 StatefulElement.update (package:flutter/src/widgets/framework.dart:5657:5) #97 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15) #98 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16) #99 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7) #100 ProxyElement.update (package:flutter/src/widgets/framework.dart:5800:5) #101 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15) #102 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16) #103 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5634:11) #104 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7) #105 StatefulElement.update (package:flutter/src/widgets/framework.dart:5657:5) #106 Element.updateChild (package:flutter/src/widgets/framework.dart:3815:15) #107 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5496:16) #108 Element.rebuild (package:flutter/src/widgets/framework.dart:5187:7) #109 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2895:19) #110 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:984:21) #111 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:457:5) #112 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1325:15) #113 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1255:9) #114 SchedulerBinding.scheduleWarmUpFrame.<anonymous closure> (package:flutter/src/scheduler/binding.dart:978:7) #118 _RawReceivePort._handleMessage (dart:isolate-patch/isolate_patch.dart:184:12) (elided 3 frames from class _Timer and dart:async-patch) ==================================================================================================== 我不想使用像 MultiProvider 这样的全局提供程序。 您应该在某处创建 InternetBloc 并提供它。 MultiProvider 本身并不是全局的,它只是多个。 更多信息在这里:https://bloclibrary.dev/#/flutterbloccoreconcepts?id=blocprovider 所以,如果您不想使用全局提供程序,它将看起来像这样: class MyHomePage extends StatelessWidget { const MyHomePage({super.key, required this.title}); final String title; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(title), ), body: SafeArea( child: Center( child: BlocProvider<InternetBloc>( create: ( context) => InternetBloc(), child: BlocBuilder<InternetBloc, InternetState>( builder: (context, state) { return const Text("hello"); }, ), ), ), ), ); } } 要使用 BlocBuilder,您需要在 Widget 树中放置一个 BlocProvider。最佳实践是将其放置得尽可能深。在您的情况下,只需将 BlocProvider 放在 BlocBuilder 之上。 此外 MultiProvider / MultiBlocProvider 不是全局 Provider。它只是一个提供多个 Provider/BlocProvider 的便捷小部件。 class MyHomePage extends StatelessWidget { const MyHomePage({super.key, required this.title}); final String title; @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(title), ), body: SafeArea( child: Center( // Now everything below that can access the InternetBloc child: BlocProvider<InternetBloc>( create: (_) => InternetBloc(), child: BlocBuilder<InternetBloc, InternetState>( builder: (context, state) { return const Text("hello"); }, ), ), ), ), ); } }


© www.soinside.com 2019 - 2024. All rights reserved.