Forked Process Resource Attributes Are Missing

Description of the bug

Spans produced by a child process are missing process resource attributes^1. The process.pid is always set to the parent process id and the process.parent_id is missing. See the output below for an example:
Parent Resources Parent PID: 26534

{"service.name"=>"unknown_service", "process.pid"=>26534, "process.command"=>"stale-pid.rb", "process.runtime.name"=>"ruby", "process.runtime.version"=>"3.1.3", "process.runtime.description"=>"ruby 3.1.3p185 (2022-11-24 revis
ion 1a6b16756e) [arm64-darwin21]", "telemetry.sdk.name"=>"opentelemetry", "telemetry.sdk.language"=>"ruby", "telemetry.sdk.version"=>"1.2.0"}

Forked Resources Child PID: 26551 Parent PID: 26534

{"service.name"=>"unknown_service", "process.pid"=>26534, "process.command"=>"stale-pid.rb", "process.runtime.name"=>"ruby", "process.runtime.version"=>"3.1.3", "process.runtime.description"=>"ruby 3.1.3p185 (2022-11-24 revis
ion 1a6b16756e) [arm64-darwin21]", "telemetry.sdk.name"=>"opentelemetry", "telemetry.sdk.language"=>"ruby", "telemetry.sdk.version"=>"1.2.0"}

Share details about your runtime
Operating system details: Linux, Ubuntu 20.04 LTS
RUBY_ENGINE: "ruby"
RUBY_VERSION: "3.1.3"
RUBY_DESCRIPTION: "ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [arm64-darwin21]"
Share a simplified reproduction if possible
#!/usr/bin/env ruby
# frozen_string_literal: true

# Copyright The OpenTelemetry Authors
#
# SPDX-License-Identifier: Apache-2.0
ENV['OTEL_TRACES_EXPORTER'] ||= 'console'

require 'bundler/inline'

gemfile(true) do
  source 'https://rubygems.org'
  gem 'opentelemetry-sdk'
end

# Export traces to console by default

OpenTelemetry::SDK.configure
at_exit do
  OpenTelemetry.tracer_provider.shutdown
end

tracer = OpenTelemetry.tracer_provider.tracer('example', '1.0')

puts "Parent Resources Parent PID: #{Process.pid}"
puts OpenTelemetry.tracer_provider.resource.attribute_enumerator.to_h

child_pid = fork do
  puts "Forked Resources Child PID: #{Process.pid} Parent PID: #{Process.ppid}"
  puts OpenTelemetry.tracer_provider.resource.attribute_enumerator.to_h
end
Process.wait(child_pid)

tracer.in_span('parent-process') do |span|
  child_process_pid = Process.fork do
    tracer.in_span('forked-process') do |forked_span|
      forked_span.add_attributes(
        'parent.process.pid' => Process.ppid,
        'forked.process.pid' => Process.pid
      )
      sleep 1
      puts "child, pid #{Process.pid} exiting..."
    end
  end

  span.add_attributes(
    'parent.process.pid' => Process.pid,
    'forked.process.pid' => child_process_pid
  )
  puts "parent, pid #{Process.pid}, waiting on child pid #{child_process_pid}"
  Process.wait(child_process_pid)
  puts 'parent exiting'
end

Assuming you have some kind of after_fork hook available in your application framework (e.g. in Rails, Unicorn, Puma, Resque, etc.), then you can do something like:
OpenTelemetry.tracer_provider = OpenTelemetry::SDK::Trace::TracerProvider.new(
  sampler: OpenTelemetry.tracer_provider.sampler,
  id_generator: OpenTelemetry.tracer_provider.id_generator,
  span_limits: OpenTelemetry.tracer_provider.span_limits,
  resource: OpenTelemetry.tracer_provider.resource.merge(OpenTelemetry::SDK::Resources::Resource.process),
)

The caveat, though, is that only new Tracer instances will pick up the change.

We're updating a couple of attributes (process.pid and yjit_resumed) after forking, including after re-forking. We added a helper to our wrapper gem:
    # Updates the global resource with the provided attributes and the current process resource.
    #
    # This is intended to be used primarily after forking to update the resource 'process.pid'
    # attribute to the new process id. It can also be used to update other attributes, such as
    # 'yjit_resumed' to indicate that the process is running with YJIT enabled.
    def update_resource(attributes = {})
      resource = OpenTelemetry
        .tracer_provider
        .resource
        .merge(OpenTelemetry::SDK::Resources::Resource.process)
        .merge(OpenTelemetry::SDK::Resources::Resource.create(attributes))
      OpenTelemetry.tracer_provider.instance_variable_set(:@resource, resource)
    end

We considered monkey-patching the SDK TracerProvider with attr_writer :resource to complement the existing attr_reader :resource, but given we funnel everything through this helper anyway, it didn't seem warranted.
In Ruby 3.1+, we can then use the Process._fork hook:
  module ForkHook
    def _fork
      ret = super
      if ret == 0 && OpenTelemetry.tracer_provider.respond_to?(:resource)
        OpenTelemetry::Shopify.update_resource
      end
      ret
    end
  end
  Process.singleton_class.prepend(ForkHook)

The respond_to?(:resource) guard ensures we don't call the helper if the global tracer_provider is not a SDK tracer provider. 🤔 Arguably, that guard should be moved into the helper.

Yeah, pretty much what @fbogsany said 😄 (ended up moving the guard clause to update_resource).
Relevant docs for those interested, which include some informative caveats.


[QUESTION]Dependencies about pcl and opencv's flann lib？

I tried adding a flann header or specifying a namespace, but nothing could fix the compilation error. Please help me, thank you.

/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:123:55: error: expected primary-expression before ‘float’
flann_index_.reset (new FLANNIndex (::flann::Matrix (cloud_.get (),
^~~~~
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:126:48: error: ‘KDTreeSingleIndexParams’ is not a member of ‘flann’
::flann::KDTreeSingleIndexParams (15))); // max 15 points/leaf
^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:126:48: note: suggested alternative:
In file included from /usr/local/include/opencv2/flann/all_indices.h:37:0,
from /usr/local/include/opencv2/flann/flann_base.hpp:43,
from /usr/local/include/opencv2/flann.hpp:48,
from /usr/local/include/opencv2/flann/flann.hpp:48,
from /usr/include/pcl-1.8/pcl/kdtree/flann.h:50,
from /usr/include/pcl-1.8/pcl/kdtree/kdtree_flann.h:45,
from /usr/include/pcl-1.8/pcl/search/kdtree.h:44,
from /usr/include/pcl-1.8/pcl/search/pcl_search.h:44,
from /usr/include/pcl-1.8/pcl/features/impl/feature.hpp:44,
from /usr/include/pcl-1.8/pcl/features/feature.h:498,
from /usr/include/pcl-1.8/pcl/features/moment_of_inertia_estimation.h:45,
from /home/username/catkin_ws/devel/include/spark_dsg/bounding_box.h:37,
from /home/username/catkin_ws/devel/include/spark_dsg/node_attributes.h:36,
from /home/username/catkin_ws/devel/include/spark_dsg/scene_graph_node.h:36,
from /home/username/catkin_ws/devel/include/spark_dsg/base_layer.h:38,
from /home/username/catkin_ws/devel/include/spark_dsg/dynamic_scene_graph_layer.h:36,
from /home/username/catkin_ws/devel/include/spark_dsg/dynamic_scene_graph.h:36,
from /home/username/catkin_ws/src/hydra/hydra_utils/include/hydra_utils/dsg_types.h:2,
from /home/username/catkin_ws/src/hydra/hydra_utils/include/hydra_utils/dsg_visualizer_plugin.h:37,
from /home/username/catkin_ws/src/hydra/hydra_utils/include/hydra_utils/dsg_mesh_plugins.h:36,
from /home/username/catkin_ws/src/hydra/hydra_utils/src/dsg_mesh_plugins.cpp:35:
/usr/local/include/opencv2/flann/kdtree_single_index.h:51:8: note:   ‘cvflann::KDTreeSingleIndexParams’
struct KDTreeSingleIndexParams : public IndexParams
^~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/pcl-1.8/pcl/kdtree/kdtree_flann.h:238:0,
from /usr/include/pcl-1.8/pcl/search/kdtree.h:44,
from /usr/include/pcl-1.8/pcl/search/pcl_search.h:44,
from /usr/include/pcl-1.8/pcl/features/impl/feature.hpp:44,
from /usr/include/pcl-1.8/pcl/features/feature.h:498,
from /usr/include/pcl-1.8/pcl/features/moment_of_inertia_estimation.h:45,
from /home/username/catkin_ws/devel/include/spark_dsg/bounding_box.h:37,
from /home/username/catkin_ws/devel/include/spark_dsg/node_attributes.h:36,
from /home/username/catkin_ws/devel/include/spark_dsg/scene_graph_node.h:36,
from /home/username/catkin_ws/devel/include/spark_dsg/base_layer.h:38,
from /home/username/catkin_ws/devel/include/spark_dsg/dynamic_scene_graph_layer.h:36,
from /home/username/catkin_ws/devel/include/spark_dsg/dynamic_scene_graph.h:36,
from /home/username/catkin_ws/src/hydra/hydra_utils/include/hydra_utils/dsg_types.h:2,
from /home/username/catkin_ws/src/hydra/hydra_utils/include/hydra_utils/dsg_visualizer_plugin.h:37,
from /home/username/catkin_ws/src/hydra/hydra_utils/include/hydra_utils/dsg_mesh_plugins.h:36,
from /home/username/catkin_ws/src/hydra/hydra_utils/src/dsg_mesh_plugins.cpp:35:
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp: In member function ‘int pcl::KdTreeFLANN<PointT, Dist>::nearestKSearch(const PointT&, int, std::vector&, std::vector&) const’:
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:147:12: error: ‘Matrix’ is not a member of ‘flann’
::flann::Matrix k_indices_mat (&k_indices[0], 1, k);
^~~~~~
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:147:12: note: suggested alternatives:
In file included from /usr/include/eigen3/Eigen/Core:346:0,
from /home/username/catkin_ws/devel/include/spark_dsg/scene_graph_types.h:36,
from /home/username/catkin_ws/devel/include/spark_dsg/node_symbol.h:36,
from /home/username/catkin_ws/devel/include/spark_dsg/edge_container.h:37,
from /home/username/catkin_ws/devel/include/spark_dsg/base_layer.h:37,
from /home/username/catkin_ws/devel/include/spark_dsg/dynamic_scene_graph_layer.h:36,
from /home/username/catkin_ws/src/hydra/hydra_utils/include/hydra_utils/dsg_mesh_plugins.h:36,
from /home/username/catkin_ws/src/hydra/hydra_utils/src/dsg_mesh_plugins.cpp:35:
/usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h:74:9: note:   ‘Eigen::Matrix’

class Matrix;
^~~~~~
In file included from /usr/local/include/opencv2/flann/flann_base.hpp:39:0,
from /usr/local/include/opencv2/flann.hpp:48,
from /usr/local/include/opencv2/flann/flann.hpp:48,
from /usr/include/pcl-1.8/pcl/kdtree/flann.h:50,
from /usr/include/pcl-1.8/pcl/kdtree/kdtree_flann.h:45,
fr                 from /home/username/catkin_ws/src/hydra/hydra_utils/include/hydra_utils/dsg_mesh_plugins.h:36,
from /home/username/catkin_ws/src/hydra/hydra_utils/src/dsg_mesh_plugins.cpp:35:
/usr/local/include/opencv2/flann/matrix.h:46:7: note:   ‘cvflann::Matrix’
class Matrix
^~~~~~
In file included from /usr/include/pcl-1.8/pcl/kdtree/kdtree_flann.h:238:0,
from /usr/include/pcl-1.8/pcl/search/kdtree.h:44,
/home/username/catkin_ws/src/hydra/hydra_utils/src/dsg_mesh_plugins.cpp:35:
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:147:19: error: expected primary-expression before ‘int’
::flann::Matrix k_indices_mat (&k_indices[0], 1, k);
^~~
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:148:12: error: ‘Matrix’ is not a member of ‘flann’
::flann::Matrix k_distances_mat (&k_distances[0], 1, k);
^~~~~~
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:148:12: note: suggested alternatives:
In file included from /usr/include/eigen3/Eigen/Core:346:0,
from /home/username/catkin_ws/devel/include/spark_dsg/scene_graph_types.h:36,
from /home/username/catkin_ws/devel/include/spark_dsg/node_symbol.h:36,
from /home/username/catkin_ws/devel/include/spark_dsg/edge_container.h:37,
from /home/username/catkin_ws/devel/include/spark_dsg/base_layer.h:37,
from /home/username/catkin_ws/devel/include/spark_dsg/dynamic_scene_graph_layer.h:36,
from /home/username/catkin_ws/devel/include/spark_dsg/dynamic_scene_graph.h:36,
from /home/username/catkin_ws/src/hydra/hydra_utils/include/hydra_utils/dsg_types.h:2,
from /home/username/catkin_ws/src/hydra/hydra_utils/include/hydra_utils/dsg_visualizer_plugin.h:37,
from /home/username/catkin_ws/src/hydra/hydra_utils/include/hydra_utils/dsg_mesh_plugins.h:36,
from /home/username/catkin_ws/src/hydra/hydra_utils/src/dsg_mesh_plugins.cpp:35:
/usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h:74:9: note:   ‘Eigen::Matrix’
class Matrix;
^~~~~~
In file included from /usr/local/include/opencv2/flann/flann_base.hpp:39:0,
from /usr/local/include/opencv2/flann.hpp:48,
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:148:19: error: expected primary-expression before ‘float’
::flann::Matrix k_distances_mat (&k_distances[0], 1, k);
^~~~~
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:150:37: error: ‘Matrix’ is not a member of ‘flann’
flann_index_->knnSearch (::flann::Matrix (&query[0], 1, dim_),
^~~~~~
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:150:44: error: expected primary-expression before ‘float’
flann_index_->knnSearch (::flann::Matrix (&query[0], 1, dim_),
^~~~~
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:151:28: error: ‘k_indices_mat’ was not declared in this scope
k_indices_mat, k_distances_mat,
^~~~~~~~~~~~~
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:151:28: note: suggested alternative: ‘k_indices’
k_indices_mat, k_distances_mat,
^~~~~~~~~~~~~
k_indices
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:151:43: error: ‘k_distances_mat’ was not declared in this scope
k_indices_mat, k_distances_mat,
^~~~~~~~~~~~~~~
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:151:43: note: suggested alternative: ‘k_distances’
k_indices_mat, k_distances_mat,
^~~~~~~~~~~~~~~
k_distances
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp: In member function ‘int pcl::KdTreeFLANN<PointT, Dist>::radiusSearch(const PointT&, double, std::vector&, std::vector&, unsigned int) const’:
/usr/include/pcl-1.8/pcl/kdtree/impl/kdtree_flann.hpp:184:25: error: ‘params’ has incomplete type
::flann::SearchParams params (param_radius_);

`

Hi, thanks for your interest in our work (and for reporting this issue)!
This is something we've encountered on our end on one of our Xaviers due to a conflict between the PCL and OpenCV version that got installed. I'm not actually sure as to what causes the mismatch yet; I suspected Nvidia's custom OpenCV version for a little bit, but I don't remember finding anything conclusive when I was debugging this issue.
The issue isn't limited to Hydra: I've seen that some people have had luck modifying some of their installed header files, but I don't recommend this (which is why I'm not linking to any documentation). We were able solve this issue internally by avoiding including certain PCL headers and opencv headers at the same time in the Hydra code base. It should be pretty feasible to release the fixes as separate branches in spark_dsg and this repo, hopefully by the end of the week.

Hi, please try this branch in Spark-DSG together with this branch for Hydra when you get a chance. They should work, i.e., they compile on my workstation, but I haven't actually tested them on the Xavier where we've observed the issue internally. I have previously verified that similar changes to our internal version of Hydra did fix the issue on the Xavier, just not these cherry-picked changes.

Hi, please try this branch in Spark-DSG together with this branch for Hydra when you get a chance. They should work, i.e., they compile on my workstation, but I haven't actually tested them on the Xavier where we've observed the issue internally. I have previously verified that similar changes to our internal version of Hydra did fix the issue on the Xavier, just not these cherry-picked changes.

Thanks,  it can perfectly solve the problem I raised.


Style transfer network predictions incorrect on GPU backend

This style transfer network can't be converted:
[https://storage.googleapis.com/download.tensorflow.org/models/stylize_v1.zip]
In this style transfer network there're a bunch of quantization related ops that are not supported in CoreML.
See test_style_transfer  in tests/test_pretrained_models.py.

is the GPU issue fixed? or this is the problem of coreml @@ it's all nan on real iphone but works fine on iphone emultator.


Updated styles for NL page.

Updated page name from NL Explorer to Chat
Added welcome message
Added sidebar scaffolding. I'll replace the hardcoded queries with actual query history in a future PR
Style updates

Screenshot

Dan, this is nice!
Could you confirm that the various demos work ok with this change?
go/dcnl-main-demo go/dcnl-sdg-demo go/dcnl-ct-demo go/dcnl-me-demo
For these please change the URL to localhost:8080/.
In the last one, s/Which cities in the San Francisco Peninsula have the most parks /Which cities in the SF Bay Area have the highest larceny/

Thanks! these all are working for me on localhost

Dan, this is nice!
Could you confirm that the various demos work ok with this change?
go/dcnl-main-demo go/dcnl-sdg-demo go/dcnl-ct-demo go/dcnl-me-demo
For these please change the URL to localhost:8080/.
In the last one, s/Which cities in the San Francisco Peninsula have the most parks /Which cities in the SF Bay Area have the highest larceny/

Thanks! these all are working for me on localhost

Great, thanks for checking!


Fixed default values of num_heads

Description
Default values do not divide into the number of units (i.e., num_heads=5 doesn't divide into units=512).

Job PR-226/2 is complete.
Docs are uploaded to http://gluon-nlp-staging.s3-accelerate.dualstack.amazonaws.com/PR-226/2/index.html

Thanks for catching.


0.95 The Following Items are not allowed: Error.

There are some items in the arsenal that will remove all your items on the players body. One item is the magazine for the M136 launcher from RHS. The M72A launcher magazine also causes the same issue. The arsenal is set to KP_liberation_arsenal = 0;
There are some other items but I do not remember what they were. I will update this post if I find more.

Yeah, maybe the "config crawler" don't find the magazines, which would be weird.
It would be great, if you could provide all the "unwanted blacklisted" classnames and I'll fix that.

RHS Itam:
rhs_m72a7_mag
rhsusf_acc_anpeq15_bk_light_h
rhs_weap_M136_used
rhs_weap_mk18_grip_wd
rhs_weap_mk18_grip
rhs_weap_mk18_grip2
rhs_weap_m4a1_carryhandle_grip3
rhs_weap_m4a1_carryhandle_grip
rhs_weap_m4a1_carryhandle_grip2
rhs_m136_mag
rhs_m136_hedp_mag
rhs_m136_hp_mag

Ok, I'll make an extension, where people can insert those "wrong blacklisted" classnames. I've loaded Liberation with RHS USAF enabled and this is the generated whitelist due to the default blacklist.
It is huge, but you can easily do a search of the classname, if it is listed here. For example the mk18 and m4a1 variants are working without problems, as they are listed in the generated whitelist.
So if you have a wrong blacklisted classname, you can check if it's in this list. If it is -> You maybe use a own whitelist or done something wrong. If it's not -> Report it here and I can add it to the default extension.
["launch_NLAW_F","launch_RPG32_F","launch_B_Titan_F","launch_I_Titan_F","launch_O_Titan_F","launch_B_Titan_short_F","launch_I_Titan_short_F","launch_O_Titan_short_F","srifle_DMR_01_F","srifle_EBR_F","srifle_GM6_F","srifle_GM6_camo_F","srifle_LRR_F","srifle_LRR_camo_F","LMG_Mk200_F","LMG_Zafir_F","hgun_ACPC2_F","hgun_P07_F","hgun_Pistol_heavy_01_F","hgun_Pistol_heavy_02_F","hgun_Rook40_F","arifle_Katiba_F","arifle_Katiba_C_F","arifle_Katiba_GL_F","arifle_Mk20_F","arifle_Mk20_plain_F","arifle_Mk20C_F","arifle_Mk20C_plain_F","arifle_Mk20_GL_F","arifle_Mk20_GL_plain_F","arifle_MXC_F","arifle_MX_F","arifle_MX_GL_F","arifle_MX_SW_F","arifle_MXM_F","arifle_MXC_Black_F","arifle_MX_Black_F","arifle_MX_GL_Black_F","arifle_MX_SW_Black_F","arifle_MXM_Black_F","arifle_SDAR_F","arifle_TRG21_F","arifle_TRG20_F","arifle_TRG21_GL_F","hgun_PDW2000_F","SMG_01_F","SMG_02_F","hgun_Pistol_Signal_F","srifle_DMR_02_F","srifle_DMR_02_camo_F","srifle_DMR_02_sniper_F","srifle_DMR_03_F","srifle_DMR_03_khaki_F","srifle_DMR_03_tan_F","srifle_DMR_03_multicam_F","srifle_DMR_03_woodland_F","srifle_DMR_04_F","srifle_DMR_04_Tan_F","srifle_DMR_05_blk_F","srifle_DMR_05_hex_F","srifle_DMR_05_tan_f","srifle_DMR_06_camo_F","srifle_DMR_06_olive_F","MMG_01_hex_F","MMG_01_tan_F","MMG_02_camo_F","MMG_02_black_F","MMG_02_sand_F","rhs_weap_M320","rhs_weap_XM2010","rhs_weap_XM2010_d","rhs_weap_XM2010_wd","rhs_weap_XM2010_sa","rhs_weap_m24sws","rhs_weap_m24sws_blk","rhs_weap_m24sws_ghillie","rhs_weap_m40a5","rhs_weap_m40a5_d","rhs_weap_m40a5_wd","rhs_weap_m4","rhs_weap_m4_pmag","rhs_weap_m4_mstock","rhs_weap_m4_carryhandle","rhs_weap_m4_carryhandle_pmag","rhs_weap_m4_carryhandle_mstock","rhs_weap_m4_m320","rhs_weap_m4_m203","rhs_weap_m4_m203S","rhs_weap_m4a1","rhs_weap_m4a1_d","rhs_weap_m4a1_mstock","rhs_weap_m4a1_d_mstock","rhs_weap_m4a1_pmag","rhs_weap_m4a1_carryhandle","rhs_weap_m4a1_carryhandle_mstock","rhs_weap_m4a1_carryhandle_pmag","rhs_weap_m4a1_m203","rhs_weap_m4a1_m203s","rhs_weap_m4a1_m203s_d","rhs_weap_m4a1_carryhandle_m203","rhs_weap_m4a1_carryhandle_m203S","rhs_weap_m4a1_m320","rhs_weap_m4a1_blockII","rhs_weap_m4a1_blockII_bk","rhs_weap_m4a1_blockII_wd","rhs_weap_m4a1_blockII_d","rhs_weap_m4a1_blockII_KAC","rhs_weap_m4a1_blockII_KAC_bk","rhs_weap_m4a1_blockII_KAC_wd","rhs_weap_m4a1_blockII_KAC_d","rhs_weap_m4a1_blockII_M203","rhs_weap_m4a1_blockII_M203_bk","rhs_weap_m4a1_blockII_M203_d","rhs_weap_m4a1_blockII_M203_wd","rhs_weap_mk18","rhs_weap_mk18_bk","rhs_weap_mk18_wd","rhs_weap_mk18_d","rhs_weap_mk18_KAC","rhs_weap_mk18_KAC_bk","rhs_weap_mk18_KAC_wd","rhs_weap_mk18_KAC_d","rhs_weap_mk18_m320","rhs_weap_m16a4","rhs_weap_m16a4_pmag","rhs_weap_m16a4_carryhandle","rhs_weap_m16a4_carryhandle_pmag","rhs_weap_m16a4_carryhandle_M203","rhs_weap_hk416d10","rhs_weap_hk416d145","rhs_weap_hk416d10_LMT","rhs_weap_hk416d10_m320","rhs_weap_hk416d145_m320","rhs_weap_hk416d10_LMT_d","rhs_weap_hk416d10_LMT_wd","rhs_weap_m27iar","rhs_weap_m27iar_grip","rhs_weap_m249","rhs_weap_m249_pip_S","rhs_weap_m249_pip_S_para","rhs_weap_m249_pip_S_vfg","rhs_weap_m249_pip","rhs_weap_m249_pip_L","rhs_weap_m249_pip_L_para","rhs_weap_m249_pip_L_vfg","rhs_weap_m240B","rhs_weap_m240G","rhs_weap_m240B_CAP","rhs_weap_m14ebrri","rhs_weap_sr25","rhs_weap_sr25_ec","rhs_weap_sr25_wd","rhs_weap_sr25_ec_wd","rhs_weap_sr25_d","rhs_weap_sr25_ec_d","rhs_weap_M107","rhs_weap_M107_d","rhs_weap_M107_w","rhs_weap_M590_5RD","rhs_weap_M590_8RD","rhs_weap_m32","rhsusf_weap_MP7A2","rhsusf_weap_MP7A2_winter","rhsusf_weap_MP7A2_desert","rhsusf_weap_MP7A2_aor1","rhs_weap_smaw","rhs_weap_smaw_green","rhs_weap_M136","rhs_weap_M136_hedp","rhs_weap_M136_hp","rhs_weap_m72a7","rhs_weap_fim92","rhs_weap_fgm148","rhsusf_weap_m1911a1","rhsusf_weap_glock17g4","rhsusf_weap_m9","arifle_MX_khk_F","arifle_MX_GL_khk_F","arifle_MX_SW_khk_F","arifle_MXC_khk_F","arifle_MXM_khk_F","srifle_LRR_tna_F","srifle_GM6_ghex_F","hgun_P07_khk_F","launch_RPG32_ghex_F","launch_RPG7_F","launch_B_Titan_tna_F","launch_B_Titan_short_tna_F","launch_O_Titan_ghex_F","launch_O_Titan_short_ghex_F","srifle_DMR_07_blk_F","srifle_DMR_07_hex_F","srifle_DMR_07_ghex_F","LMG_03_F","hgun_Pistol_01_F","arifle_AK12_F","arifle_AK12_GL_F","arifle_AKM_F","arifle_AKS_F","arifle_ARX_blk_F","arifle_ARX_ghex_F","arifle_ARX_hex_F","arifle_CTAR_blk_F","arifle_CTAR_hex_F","arifle_CTAR_ghex_F","arifle_CTAR_GL_blk_F","arifle_CTAR_GL_hex_F","arifle_CTAR_GL_ghex_F","arifle_CTARS_blk_F","arifle_CTARS_hex_F","arifle_CTARS_ghex_F","arifle_SPAR_01_blk_F","arifle_SPAR_01_khk_F","arifle_SPAR_01_snd_F","arifle_SPAR_01_GL_blk_F","arifle_SPAR_01_GL_khk_F","arifle_SPAR_01_GL_snd_F","arifle_SPAR_02_blk_F","arifle_SPAR_02_khk_F","arifle_SPAR_02_snd_F","arifle_SPAR_03_blk_F","arifle_SPAR_03_khk_F","arifle_SPAR_03_snd_F","SMG_05_F","30Rnd_556x45_Stanag","30Rnd_556x45_Stanag_green","30Rnd_556x45_Stanag_red","30Rnd_556x45_Stanag_Tracer_Red","30Rnd_556x45_Stanag_Tracer_Green","30Rnd_556x45_Stanag_Tracer_Yellow","20Rnd_556x45_UW_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_green","30Rnd_65x39_caseless_mag_Tracer","30Rnd_65x39_caseless_green_mag_Tracer","20Rnd_762x51_Mag","7Rnd_408_Mag","5Rnd_127x108_Mag","100Rnd_65x39_caseless_mag","100Rnd_65x39_caseless_mag_Tracer","200Rnd_65x39_cased_Box","200Rnd_65x39_cased_Box_Tracer","30Rnd_9x21_Mag","30Rnd_9x21_Red_Mag","30Rnd_9x21_Yellow_Mag","30Rnd_9x21_Green_Mag","16Rnd_9x21_Mag","30Rnd_9x21_Mag_SMG_02","30Rnd_9x21_Mag_SMG_02_Tracer_Red","30Rnd_9x21_Mag_SMG_02_Tracer_Yellow","30Rnd_9x21_Mag_SMG_02_Tracer_Green","16Rnd_9x21_red_Mag","16Rnd_9x21_green_Mag","16Rnd_9x21_yellow_Mag","RPG32_F","RPG32_HE_F","NLAW_F","1Rnd_HE_Grenade_shell","3Rnd_HE_Grenade_shell","1Rnd_Smoke_Grenade_shell","3Rnd_Smoke_Grenade_shell","1Rnd_SmokeRed_Grenade_shell","3Rnd_SmokeRed_Grenade_shell","1Rnd_SmokeGreen_Grenade_shell","3Rnd_SmokeGreen_Grenade_shell","1Rnd_SmokeYellow_Grenade_shell","3Rnd_SmokeYellow_Grenade_shell","1Rnd_SmokePurple_Grenade_shell","3Rnd_SmokePurple_Grenade_shell","1Rnd_SmokeBlue_Grenade_shell","3Rnd_SmokeBlue_Grenade_shell","1Rnd_SmokeOrange_Grenade_shell","3Rnd_SmokeOrange_Grenade_shell","HandGrenade","MiniGrenade","SmokeShell","SmokeShellRed","SmokeShellGreen","SmokeShellYellow","SmokeShellPurple","SmokeShellBlue","SmokeShellOrange","Chemlight_green","Chemlight_red","Chemlight_yellow","Chemlight_blue","SmokeLauncherMag","SmokeLauncherMag_boat","200Rnd_65x39_Belt","200Rnd_65x39_Belt_Tracer_Red","200Rnd_65x39_Belt_Tracer_Green","200Rnd_65x39_Belt_Tracer_Yellow","1000Rnd_65x39_Belt","1000Rnd_65x39_Belt_Tracer_Red","1000Rnd_65x39_Belt_Green","1000Rnd_65x39_Belt_Tracer_Green","1000Rnd_65x39_Belt_Yellow","1000Rnd_65x39_Belt_Tracer_Yellow","2000Rnd_65x39_Belt","2000Rnd_65x39_Belt_Tracer_Red","2000Rnd_65x39_Belt_Green","2000Rnd_65x39_Belt_Tracer_Green","2000Rnd_65x39_Belt_Tracer_Green_Splash","2000Rnd_65x39_Belt_Yellow","2000Rnd_65x39_Belt_Tracer_Yellow","2000Rnd_65x39_Belt_Tracer_Yellow_Splash","5000Rnd_762x51_Belt","5000Rnd_762x51_Yellow_Belt","500Rnd_127x99_mag","500Rnd_127x99_mag_Tracer_Red","500Rnd_127x99_mag_Tracer_Green","500Rnd_127x99_mag_Tracer_Yellow","200Rnd_127x99_mag","200Rnd_127x99_mag_Tracer_Red","200Rnd_127x99_mag_Tracer_Green","200Rnd_127x99_mag_Tracer_Yellow","100Rnd_127x99_mag","100Rnd_127x99_mag_Tracer_Red","100Rnd_127x99_mag_Tracer_Green","100Rnd_127x99_mag_Tracer_Yellow","450Rnd_127x108_Ball","150Rnd_127x108_Ball","50Rnd_127x108_Ball","200Rnd_40mm_G_belt","96Rnd_40mm_G_belt","64Rnd_40mm_G_belt","32Rnd_40mm_G_belt","200Rnd_20mm_G_belt","40Rnd_20mm_G_belt","24Rnd_PG_missiles","12Rnd_PG_missiles","24Rnd_missiles","12Rnd_missiles","32Rnd_155mm_Mo_shells","8Rnd_82mm_Mo_shells","8Rnd_82mm_Mo_Flare_white","8Rnd_82mm_Mo_Smoke_white","8Rnd_82mm_Mo_guided","8Rnd_82mm_Mo_LG","6Rnd_155mm_Mo_smoke","2Rnd_155mm_Mo_guided","2Rnd_155mm_Mo_LG","6Rnd_155mm_Mo_mine","6Rnd_155mm_Mo_AT_mine","2Rnd_155mm_Mo_Cluster","UGL_FlareWhite_F","3Rnd_UGL_FlareWhite_F","UGL_FlareGreen_F","3Rnd_UGL_FlareGreen_F","UGL_FlareRed_F","3Rnd_UGL_FlareRed_F","UGL_FlareYellow_F","3Rnd_UGL_FlareYellow_F","UGL_FlareCIR_F","3Rnd_UGL_FlareCIR_F","FlareWhite_F","FlareGreen_F","FlareRed_F","FlareYellow_F","Laserbatteries","30Rnd_45ACP_Mag_SMG_01","30Rnd_45ACP_Mag_SMG_01_Tracer_Green","30Rnd_45ACP_Mag_SMG_01_Tracer_Red","30Rnd_45ACP_Mag_SMG_01_Tracer_Yellow","9Rnd_45ACP_Mag","150Rnd_762x51_Box","150Rnd_762x51_Box_Tracer","150Rnd_762x54_Box","150Rnd_762x54_Box_Tracer","Titan_AA","Titan_AP","Titan_AT","300Rnd_20mm_shells","1000Rnd_20mm_shells","2000Rnd_20mm_shells","300Rnd_25mm_shells","1000Rnd_25mm_shells","250Rnd_30mm_HE_shells","250Rnd_30mm_HE_shells_Tracer_Red","250Rnd_30mm_HE_shells_Tracer_Green","250Rnd_30mm_APDS_shells","250Rnd_30mm_APDS_shells_Tracer_Red","250Rnd_30mm_APDS_shells_Tracer_Green","250Rnd_30mm_APDS_shells_Tracer_Yellow","140Rnd_30mm_MP_shells","140Rnd_30mm_MP_shells_Tracer_Red","140Rnd_30mm_MP_shells_Tracer_Green","140Rnd_30mm_MP_shells_Tracer_Yellow","60Rnd_30mm_APFSDS_shells","60Rnd_30mm_APFSDS_shells_Tracer_Red","60Rnd_30mm_APFSDS_shells_Tracer_Green","60Rnd_30mm_APFSDS_shells_Tracer_Yellow","60Rnd_40mm_GPR_shells","60Rnd_40mm_GPR_Tracer_Red_shells","60Rnd_40mm_GPR_Tracer_Green_shells","60Rnd_40mm_GPR_Tracer_Yellow_shells","40Rnd_40mm_APFSDS_shells","40Rnd_40mm_APFSDS_Tracer_Red_shells","40Rnd_40mm_APFSDS_Tracer_Green_shells","40Rnd_40mm_APFSDS_Tracer_Yellow_shells","8Rnd_LG_scalpel","6Rnd_LG_scalpel","2Rnd_LG_scalpel","2Rnd_LG_scalpel_hidden","14Rnd_80mm_rockets","38Rnd_80mm_rockets","12Rnd_230mm_rockets","2Rnd_AAA_missiles","2Rnd_AAA_missiles_MI02","4Rnd_AAA_missiles","4Rnd_AAA_missiles_MI02","4Rnd_GAA_missiles","4Rnd_Titan_long_missiles","5Rnd_GAT_missiles","2Rnd_GAT_missiles","30Rnd_120mm_HE_shells","30Rnd_120mm_HE_shells_Tracer_Red","30Rnd_120mm_HE_shells_Tracer_Green","30Rnd_120mm_HE_shells_Tracer_Yellow","16Rnd_120mm_HE_shells","16Rnd_120mm_HE_shells_Tracer_Red","16Rnd_120mm_HE_shells_Tracer_Green","16Rnd_120mm_HE_shells_Tracer_Yellow","30Rnd_120mm_APFSDS_shells","30Rnd_120mm_APFSDS_shells_Tracer_Red","30Rnd_120mm_APFSDS_shells_Tracer_Green","30Rnd_120mm_APFSDS_shells_Tracer_Yellow","32Rnd_120mm_APFSDS_shells","32Rnd_120mm_APFSDS_shells_Tracer_Red","32Rnd_120mm_APFSDS_shells_Tracer_Green","32Rnd_120mm_APFSDS_shells_Tracer_Yellow","680Rnd_35mm_AA_shells","680Rnd_35mm_AA_shells_Tracer_Red","680Rnd_35mm_AA_shells_Tracer_Green","680Rnd_35mm_AA_shells_Tracer_Yellow","6Rnd_AAT_missiles","4Rnd_AAT_missiles","1Rnd_GAA_missiles","1Rnd_GAT_missiles","2Rnd_GBU12_LGB","2Rnd_GBU12_LGB_MI10","2Rnd_Mk82","2Rnd_Mk82_MI08","11Rnd_45ACP_Mag","6Rnd_45ACP_Cylinder","10Rnd_762x51_Mag","10Rnd_762x54_Mag","5Rnd_127x108_APDS_Mag","B_IR_Grenade","O_IR_Grenade","I_IR_Grenade","28Rnd_120mm_APFSDS_shells","24Rnd_125mm_APFSDS","28Rnd_120mm_APFSDS_shells_Tracer_Red","24Rnd_125mm_APFSDS_T_Red","28Rnd_120mm_APFSDS_shells_Tracer_Green","24Rnd_125mm_APFSDS_T_Green","28Rnd_120mm_APFSDS_shells_Tracer_Yellow","24Rnd_125mm_APFSDS_T_Yellow","14Rnd_120mm_HE_shells","12Rnd_125mm_HE","14Rnd_120mm_HE_shells_Tracer_Red","12Rnd_125mm_HE_T_Red","14Rnd_120mm_HE_shells_Tracer_Green","12Rnd_125mm_HE_T_Green","14Rnd_120mm_HE_shells_Tracer_Yellow","12Rnd_125mm_HE_T_Yellow","12Rnd_125mm_HEAT","12Rnd_125mm_HEAT_T_Red","12Rnd_125mm_HEAT_T_Green","12Rnd_125mm_HEAT_T_Yellow","200Rnd_762x51_Belt","200Rnd_762x51_Belt_Red","200Rnd_762x51_Belt_T_Red","200Rnd_762x51_Belt_Green","200Rnd_762x51_Belt_T_Green","200Rnd_762x51_Belt_Yellow","200Rnd_762x51_Belt_T_Yellow","1000Rnd_762x51_Belt","1000Rnd_762x51_Belt_Red","1000Rnd_762x51_Belt_T_Red","1000Rnd_762x51_Belt_Green","1000Rnd_762x51_Belt_T_Green","1000Rnd_762x51_Belt_Yellow","1000Rnd_762x51_Belt_T_Yellow","2000Rnd_762x51_Belt","2000Rnd_762x51_Belt_Red","2000Rnd_762x51_Belt_T_Red","2000Rnd_762x51_Belt_Green","2000Rnd_762x51_Belt_T_Green","2000Rnd_762x51_Belt_Yellow","2000Rnd_762x51_Belt_T_Yellow","1000Rnd_Gatling_30mm_Plane_CAS_01_F","2Rnd_Missile_AA_04_F","6Rnd_Missile_AGM_02_F","7Rnd_Rocket_04_HE_F","7Rnd_Rocket_04_AP_F","4Rnd_Bomb_04_F","500Rnd_Cannon_30mm_Plane_CAS_02_F","2Rnd_Missile_AA_03_F","4Rnd_Missile_AGM_01_F","20Rnd_Rocket_03_HE_F","20Rnd_Rocket_03_AP_F","2Rnd_Bomb_03_F","40Rnd_105mm_APFSDS","40Rnd_105mm_APFSDS_T_Red","40Rnd_105mm_APFSDS_T_Green","40Rnd_105mm_APFSDS_T_Yellow","20Rnd_105mm_HEAT_MP","20Rnd_105mm_HEAT_MP_T_Red","20Rnd_105mm_HEAT_MP_T_Green","20Rnd_105mm_HEAT_MP_T_Yellow","ATMine_Range_Mag","APERSMine_Range_Mag","APERSBoundingMine_Range_Mag","SLAMDirectionalMine_Wire_Mag","APERSTripMine_Wire_Mag","ClaymoreDirectionalMine_Remote_Mag","SatchelCharge_Remote_Mag","DemoCharge_Remote_Mag","IEDUrbanBig_Remote_Mag","IEDLandBig_Remote_Mag","IEDUrbanSmall_Remote_Mag","IEDLandSmall_Remote_Mag","rhs_LaserMag","rhs_LaserFCSMag","rhs_mag_M1069","rhs_mag_M416","rhs_mag_M1028","rhs_mag_M829","rhs_mag_M829A1","rhs_mag_M829A2","rhs_mag_M829A3","rhs_mag_M830","rhs_mag_M830A1","rhs_mag_70Rnd_25mm_M242_APFSDS","rhs_mag_230Rnd_25mm_M242_HEI","rhs_mag_1100Rnd_762x51_M240","rhs_mag_762x51_M240_1200","RHS_mag_m1_he_12","rhs_mag_m314_ilum_4","rhs_mag_m60a2_smoke_4","rhs_mag_1000Rnd_30x173","rhs_mag_1000Rnd_30x173_mixed","rhs_mag_M197_750","RHS_48Rnd_40mm_MK19","RHS_48Rnd_40mm_MK19_M430I","RHS_48Rnd_40mm_MK19_M1001","RHS_96Rnd_40mm_MK19","RHS_96Rnd_40mm_MK19_M430I","RHS_96Rnd_40mm_MK19_M1001","rhs_mag_100rnd_127x99_mag","rhs_mag_100rnd_127x99_mag_Tracer_Red","rhs_mag_100rnd_127x99_mag_Tracer_Green","rhs_mag_100rnd_127x99_mag_Tracer_Yellow","rhs_mag_200rnd_127x99_mag","rhs_mag_200rnd_127x99_mag_Tracer_Red","RHS_1300Rnd_127x99_mag_Tracer_Red_MELB","rhs_1Rnd_m821_HE","rhs_mag_2Rnd_TOW","rhs_mag_2Rnd_TOWB","rhs_mag_2Rnd_ITOW","rhs_mag_2Rnd_TOW2","rhs_mag_2Rnd_TOW2A","rhs_mag_2Rnd_TOW2B","rhs_mag_2Rnd_TOW2B_AERO","rhs_mag_2Rnd_TOW2BB","rhs_mag_TOW","rhs_mag_TOWB","rhs_mag_ITOW","rhs_mag_TOW2","rhs_mag_TOW2a","rhs_mag_TOW2b","rhs_mag_TOW2b_aero","rhs_mag_TOW2bb","rhsusf_mag_L8A3_8","rhsusf_mag_duke","rhs_mag_Sidewinder_2","rhs_mag_aim120_6","rhs_mag_aim120","rhs_mag_Sidewinder_2_delay","rhs_mag_Sidewinder_heli_2","rhs_mag_Sidewinder_a10_2","RHS_1Rnd_M151_Magazine_MELB","RHS_6Rnd_M151_Magazine_MELB","RHS_1Rnd_M229_Magazine_MELB","RHS_8Rnd_M229_Magazine_MELB","RHS_7Rnd_M151_Magazine_MELB","RHS_14Rnd_M151_Magazine_MELB","RHS_19Rnd_M151_Magazine_MELB","RHS_38Rnd_M151_Magazine_MELB","RHS_4Rnd_DAGR_Magazine_MELB","RHS_8Rnd_DAGR_Magazine_MELB","rhs_mag_Hellfire_8","rhs_mag_Hellfire_4","rhs_mag_Hellfire_16","rhs_mag_AGM114K","rhs_mag_AGM114K_4","rhs_mag_AGM114K_8","rhs_mag_AGM114K_16","RHS_1Rnd_AGM_114K","RHS_2Rnd_AGM_114K","rhs_mag_AGM114M","rhs_mag_AGM114M_4","rhs_mag_AGM114M_8","rhs_mag_AGM114M_16","rhs_mag_AGM114N","rhs_mag_AGM114N_4","rhs_mag_AGM114N_8","rhs_mag_AGM114N_16","rhs_mag_agm65","rhs_mag_agm65_x3","rhs_mag_agm65_offset0","rhs_mag_FFAR_14","rhs_mag_M151_14","rhs_mag_M229_14","rhs_mag_FFAR_A10_14","rhs_mag_M151_28","rhs_mag_M151_38","rhs_mag_M151_76","Rhs_mag_4Rnd_stinger","Rhs_mag_2Rnd_stinger","rhs_mag_ANALQ131","rhs_pod_hellfire_4","rhs_pod_hellfire_2","rhs_pod_FFAR_19","rhs_pod_FFAR_7","rhs_pod_DAGR","rhs_pod_FFAR_19_green","rhs_pod_FFAR_7_green","rhs_pod_hellfire_green","rhs_pod_agm65","rhs_pod_agm65x3_rack","rhs_pod_lau68","rhs_pod_empty","rhs_pod_empty_8","rhs_pod_empty_16","rhs_pod_empty_18","rhs_mount_empty","rhs_7_pod_empty","rhs_19_pod_empty","rhs_4_dagr_pod_empty","rhs_8_dagr_pod_empty","rhs_pod_empty_agm65","rhs_mag_gbu12_4","rhs_mag_gbu12","rhsusf_20mm_M61A2","6Rnd_GreenSignal_F","6Rnd_RedSignal_F","10Rnd_338_Mag","130Rnd_338_Mag","10Rnd_127x54_Mag","150Rnd_93x64_Mag","10Rnd_93x64_DMR_05_Mag","rhs_mag_30Rnd_556x45_M855A1_Stanag","rhs_mag_30Rnd_556x45_M855A1_Stanag_No_Tracer","rhs_mag_30Rnd_556x45_M855A1_Stanag_Tracer_Red","rhs_mag_30Rnd_556x45_M855A1_Stanag_Tracer_Green","rhs_mag_30Rnd_556x45_M855A1_Stanag_Tracer_Yellow","rhs_mag_30Rnd_556x45_M855A1_Stanag_Tracer_Orange","rhs_mag_30Rnd_556x45_Mk318_Stanag","rhs_mag_30Rnd_556x45_Mk262_Stanag","rhs_mag_30Rnd_556x45_M200_Stanag","rhs_mag_M441_HE","rhsusf_mag_6Rnd_M441_HE","rhs_mag_M433_HEDP","rhsusf_mag_6Rnd_M433_HEDP","rhs_mag_M397_HET","rhsusf_mag_6Rnd_M397_HET","rhs_mag_M781_Practice","rhsusf_mag_6Rnd_M781_Practice","rhs_mag_m4009","rhsusf_mag_6Rnd_m4009","rhs_mag_m576","rhsusf_mag_6Rnd_M576_Buckshot","rhs_mag_M585_white","rhs_mag_m661_green","rhs_mag_m662_red","rhsusf_mag_6Rnd_M585_white","rhsusf_mag_6Rnd_m661_green","rhsusf_mag_6Rnd_m662_red","rhs_mag_m713_Red","rhs_mag_m714_White","rhs_mag_m715_Green","rhs_mag_m716_yellow","rhsusf_mag_6Rnd_M713_red","rhsusf_mag_6Rnd_M714_white","rhsusf_mag_6Rnd_M715_green","rhsusf_mag_6Rnd_M716_yellow","rhsusf_5Rnd_300winmag_xm2010","rhsusf_mag_10Rnd_STD_50BMG_M33","rhsusf_mag_10Rnd_STD_50BMG_mk211","rhsusf_5Rnd_00Buck","rhsusf_8Rnd_00Buck","rhsusf_5Rnd_Slug","rhsusf_8Rnd_Slug","rhsusf_5Rnd_HE","rhsusf_8Rnd_HE","rhsusf_5Rnd_FRAG","rhsusf_8Rnd_FRAG","rhsusf_100Rnd_556x45_soft_pouch","rhsusf_100Rnd_556x45_M200_soft_pouch","rhsusf_200Rnd_556x45_soft_pouch","rhs_200rnd_556x45_M_SAW","rhs_200rnd_556x45_T_SAW","rhs_200rnd_556x45_B_SAW","rhsusf_50Rnd_762x51","rhsusf_50Rnd_762x51_m61_ap","rhsusf_50Rnd_762x51_m62_tracer","rhsusf_50Rnd_762x51_m80a1epr","rhsusf_50Rnd_762x51_m82_blank","rhsusf_100Rnd_762x51","rhsusf_100Rnd_762x51_m61_ap","rhsusf_100Rnd_762x51_m62_tracer","rhsusf_100Rnd_762x51_m80a1epr","rhsusf_100Rnd_762x51_m82_blank","rhsusf_20Rnd_762x51_m118_special_Mag","rhsusf_20Rnd_762x51_m993_Mag","rhsusf_20Rnd_762x51_m62_Mag","rhsusf_5Rnd_762x51_m118_special_Mag","rhsusf_5Rnd_762x51_m993_Mag","rhsusf_5Rnd_762x51_m62_Mag","rhsusf_10Rnd_762x51_m118_special_Mag","rhsusf_10Rnd_762x51_m993_Mag","rhsusf_10Rnd_762x51_m62_Mag","rhsusf_mag_40Rnd_46x30_FMJ","rhsusf_mag_40Rnd_46x30_JHP","rhsusf_mag_40Rnd_46x30_AP","rhsusf_mag_7x45acp_MHP","rhsusf_mag_17Rnd_9x19_FMJ","rhsusf_mag_17Rnd_9x19_JHP","rhsusf_mag_15Rnd_9x19_FMJ","rhsusf_mag_15Rnd_9x19_JHP","rhs_fim92_mag","rhs_fgm148_magazine_AT","rhs_fgm172a_magazine_AT","rhs_fgm172b_magazine_MPV","rhs_mag_smaw_HEAA","rhs_mag_smaw_HEDP","rhs_mag_smaw_SR","rhsusf_m112_mag","rhsusf_m112x4_mag","rhs_mine_M19_mag","rhsusf_mine_m14_mag","rhs_mag_m67","rhs_mag_m69","rhs_mag_mk84","rhs_mag_an_m8hc","rhs_mag_an_m14_th3","rhs_mag_m7a3_cs","rhs_mag_mk3a2","rhs_mag_m18_green","rhs_mag_m18_purple","rhs_mag_m18_red","rhs_mag_m18_yellow","10Rnd_9x21_Mag","30Rnd_580x42_Mag_F","30Rnd_580x42_Mag_Tracer_F","100Rnd_580x42_Mag_F","100Rnd_580x42_Mag_Tracer_F","20Rnd_650x39_Cased_Mag_F","10Rnd_50BW_Mag_F","150Rnd_556x45_Drum_Mag_F","150Rnd_556x45_Drum_Mag_Tracer_F","30Rnd_762x39_Mag_F","30Rnd_762x39_Mag_Green_F","30Rnd_762x39_Mag_Tracer_F","30Rnd_762x39_Mag_Tracer_Green_F","30Rnd_545x39_Mag_F","30Rnd_545x39_Mag_Green_F","30Rnd_545x39_Mag_Tracer_F","30Rnd_545x39_Mag_Tracer_Green_F","200Rnd_556x45_Box_F","200Rnd_556x45_Box_Red_F","200Rnd_556x45_Box_Tracer_F","200Rnd_556x45_Box_Tracer_Red_F","500Rnd_65x39_Belt","500Rnd_65x39_Belt_Tracer_Red_Splash","500Rnd_65x39_Belt_Tracer_Green_Splash","500Rnd_65x39_Belt_Tracer_Yellow_Splash","RPG7_F","4Rnd_LG_Jian","4000Rnd_20mm_Tracer_Red_shells","160Rnd_40mm_APFSDS_Tracer_Red_shells","240Rnd_40mm_GPR_Tracer_Red_shells","100Rnd_105mm_HEAT_MP","RHS_FakeMagazine_MELB","ItemWatch","ItemCompass","ItemGPS","ItemRadio","ItemMap","MineDetector","Binocular","Rangefinder","NVGoggles","NVGoggles_OPFOR","NVGoggles_INDEP","Laserdesignator","Laserdesignator_02","Laserdesignator_03","FirstAidKit","Medikit","ToolKit","srifle_DMR_01_ACO_F","srifle_DMR_01_MRCO_F","srifle_DMR_01_SOS_F","srifle_DMR_01_DMS_F","srifle_DMR_01_DMS_snds_F","srifle_DMR_01_DMS_snds_F","srifle_DMR_01_ARCO_F","srifle_EBR_ACO_F","srifle_EBR_MRCO_pointer_F","srifle_EBR_MRCO_pointer_F","srifle_EBR_ARCO_pointer_F","srifle_EBR_ARCO_pointer_F","srifle_EBR_SOS_F","srifle_EBR_ARCO_pointer_snds_F","srifle_EBR_ARCO_pointer_snds_F","srifle_EBR_ARCO_pointer_snds_F","srifle_EBR_DMS_F","srifle_EBR_Hamr_pointer_F","srifle_EBR_Hamr_pointer_F","srifle_EBR_DMS_pointer_snds_F","srifle_EBR_DMS_pointer_snds_F","srifle_EBR_DMS_pointer_snds_F","srifle_GM6_SOS_F","srifle_GM6_LRPS_F","srifle_GM6_camo_SOS_F","srifle_GM6_camo_LRPS_F","srifle_LRR_SOS_F","srifle_LRR_LRPS_F","srifle_LRR_camo_SOS_F","srifle_LRR_camo_LRPS_F","LMG_Mk200_MRCO_F","LMG_Mk200_pointer_F","LMG_Zafir_pointer_F","LMG_Zafir_ARCO_F","hgun_ACPC2_snds_F","hgun_P07_snds_F","hgun_Pistol_heavy_01_snds_F","hgun_Pistol_heavy_01_MRD_F","hgun_Pistol_heavy_02_Yorris_F","hgun_Rook40_snds_F","arifle_Katiba_C_ACO_pointer_F","arifle_Katiba_C_ACO_pointer_F","arifle_Katiba_C_ACO_F","arifle_Katiba_ACO_F","arifle_Katiba_pointer_F","arifle_Katiba_ACO_pointer_F","arifle_Katiba_ACO_pointer_F","arifle_Katiba_ARCO_F","arifle_Katiba_ARCO_pointer_F","arifle_Katiba_ARCO_pointer_F","arifle_Katiba_GL_ACO_F","arifle_Katiba_GL_ARCO_pointer_F","arifle_Katiba_GL_ARCO_pointer_F","arifle_Katiba_GL_ACO_pointer_F","arifle_Katiba_GL_ACO_pointer_F","arifle_Katiba_GL_Nstalker_pointer_F","arifle_Katiba_GL_Nstalker_pointer_F","arifle_Katiba_GL_ACO_pointer_snds_F","arifle_Katiba_GL_ACO_pointer_snds_F","arifle_Katiba_GL_ACO_pointer_snds_F","arifle_Katiba_C_ACO_pointer_snds_F","arifle_Katiba_C_ACO_pointer_snds_F","arifle_Katiba_C_ACO_pointer_snds_F","arifle_Katiba_ACO_pointer_snds_F","arifle_Katiba_ACO_pointer_snds_F","arifle_Katiba_ACO_pointer_snds_F","arifle_Katiba_ARCO_pointer_snds_F","arifle_Katiba_ARCO_pointer_snds_F","arifle_Katiba_ARCO_pointer_snds_F","arifle_Mk20C_ACO_F","arifle_Mk20C_ACO_pointer_F","arifle_Mk20C_ACO_pointer_F","arifle_Mk20_pointer_F","arifle_Mk20_Holo_F","arifle_Mk20_ACO_F","arifle_Mk20_ACO_pointer_F","arifle_Mk20_ACO_pointer_F","arifle_Mk20_MRCO_F","arifle_Mk20_MRCO_plain_F","arifle_Mk20_MRCO_pointer_F","arifle_Mk20_MRCO_pointer_F","arifle_Mk20_GL_MRCO_pointer_F","arifle_Mk20_GL_MRCO_pointer_F","arifle_Mk20_GL_ACO_F","arifle_MX_pointer_F","arifle_MX_Holo_pointer_F","arifle_MX_Holo_pointer_F","arifle_MX_Hamr_pointer_F","arifle_MX_Hamr_pointer_F","arifle_MX_ACO_pointer_F","arifle_MX_ACO_pointer_F","arifle_MX_ACO_F","arifle_MX_GL_ACO_F","arifle_MX_GL_ACO_pointer_F","arifle_MX_GL_ACO_pointer_F","arifle_MX_GL_Hamr_pointer_F","arifle_MX_GL_Hamr_pointer_F","arifle_MXC_Holo_F","arifle_MXC_Holo_pointer_F","arifle_MXC_Holo_pointer_F","arifle_MX_SW_pointer_F","arifle_MX_SW_pointer_F","arifle_MX_SW_Hamr_pointer_F","arifle_MX_SW_Hamr_pointer_F","arifle_MXM_Hamr_pointer_F","arifle_MXM_Hamr_pointer_F","arifle_MXC_ACO_F","arifle_MXC_Holo_pointer_snds_F","arifle_MXC_Holo_pointer_snds_F","arifle_MXC_Holo_pointer_snds_F","arifle_MXC_SOS_point_snds_F","arifle_MXC_SOS_point_snds_F","arifle_MXC_SOS_point_snds_F","arifle_MXC_ACO_pointer_snds_F","arifle_MXC_ACO_pointer_snds_F","arifle_MXC_ACO_pointer_snds_F","arifle_MXC_ACO_pointer_F","arifle_MXC_ACO_pointer_F","arifle_MX_ACO_pointer_snds_F","arifle_MX_ACO_pointer_snds_F","arifle_MX_ACO_pointer_snds_F","arifle_MX_RCO_pointer_snds_F","arifle_MX_RCO_pointer_snds_F","arifle_MX_RCO_pointer_snds_F","arifle_MX_GL_Holo_pointer_snds_F","arifle_MX_GL_Holo_pointer_snds_F","arifle_MX_GL_Holo_pointer_snds_F","arifle_MXM_SOS_pointer_F","arifle_MXM_SOS_pointer_F","arifle_MXM_RCO_pointer_snds_F","arifle_MXM_RCO_pointer_snds_F","arifle_MXM_RCO_pointer_snds_F","arifle_MXM_DMS_F","arifle_MX_GL_Black_Hamr_pointer_F","arifle_MX_GL_Black_Hamr_pointer_F","arifle_MX_Black_Hamr_pointer_F","arifle_MX_Black_Hamr_pointer_F","arifle_MX_SW_Black_Hamr_pointer_F","arifle_MX_SW_Black_Hamr_pointer_F","arifle_TRG20_Holo_F","arifle_TRG20_ACO_pointer_F","arifle_TRG20_ACO_pointer_F","arifle_TRG20_ACO_Flash_F","arifle_TRG20_ACO_Flash_F","arifle_TRG20_ACO_F","arifle_TRG21_ACO_pointer_F","arifle_TRG21_ACO_pointer_F","arifle_TRG21_ARCO_pointer_F","arifle_TRG21_ARCO_pointer_F","arifle_TRG21_MRCO_F","arifle_TRG21_GL_MRCO_F","arifle_TRG21_GL_ACO_pointer_F","arifle_TRG21_GL_ACO_pointer_F","hgun_PDW2000_snds_F","hgun_PDW2000_Holo_F","hgun_PDW2000_Holo_snds_F","hgun_PDW2000_Holo_snds_F","SMG_01_Holo_F","SMG_01_Holo_pointer_snds_F","SMG_01_Holo_pointer_snds_F","SMG_01_ACO_F","SMG_02_ACO_F","SMG_02_ARCO_pointg_F","SMG_02_ARCO_pointg_F","U_B_CombatUniform_mcam","U_B_CombatUniform_mcam_tshirt","U_B_CombatUniform_mcam_vest","U_B_GhillieSuit","U_B_HeliPilotCoveralls","U_B_Wetsuit","U_O_CombatUniform_ocamo","U_O_GhillieSuit","U_O_PilotCoveralls","U_O_Wetsuit","U_C_Poloshirt_blue","U_C_Poloshirt_burgundy","U_C_Poloshirt_stripped","U_C_Poloshirt_tricolour","U_C_Poloshirt_salmon","U_C_Poloshirt_redwhite","U_Rangemaster","U_OrestesBody","U_B_CombatUniform_mcam_worn","U_B_PilotCoveralls","U_O_CombatUniform_oucamo","U_O_SpecopsUniform_ocamo","U_O_OfficerUniform_ocamo","U_I_CombatUniform","U_I_CombatUniform_shortsleeve","U_I_pilotCoveralls","U_I_HeliPilotCoveralls","U_I_GhillieSuit","U_I_OfficerUniform","U_I_Wetsuit","U_Competitor","U_BG_Guerilla1_1","U_BG_Guerilla2_1","U_BG_Guerilla2_2","U_BG_Guerilla2_3","U_BG_Guerilla3_1","U_BG_leader","U_C_Poor_1","U_C_WorkerCoveralls","U_C_HunterBody_grn","U_B_CTRG_1","U_B_CTRG_2","U_B_CTRG_3","U_B_survival_uniform","U_I_G_Story_Protagonist_F","U_I_G_resistanceLeader_F","U_C_Journalist","U_C_Scientist","U_B_Protagonist_VR","U_O_Protagonist_VR","U_I_Protagonist_VR","U_BG_Guerrilla_6_1","U_C_Driver_1","U_C_Driver_2","U_C_Driver_3","U_C_Driver_4","U_Marshal","U_C_Driver_1_black","U_C_Driver_1_blue","U_C_Driver_1_green","U_C_Driver_1_red","U_C_Driver_1_white","U_C_Driver_1_yellow","U_C_Driver_1_orange","U_B_FullGhillie_lsh","U_B_FullGhillie_sard","U_B_FullGhillie_ard","U_O_FullGhillie_lsh","U_O_FullGhillie_sard","U_O_FullGhillie_ard","U_I_FullGhillie_lsh","U_I_FullGhillie_sard","U_I_FullGhillie_ard","V_Rangemaster_belt","V_BandollierB_khk","V_BandollierB_cbr","V_BandollierB_rgr","V_BandollierB_blk","V_BandollierB_oli","V_PlateCarrier1_rgr","V_PlateCarrier2_rgr","V_PlateCarrier2_blk","V_PlateCarrierGL_rgr","V_PlateCarrierGL_blk","V_PlateCarrierGL_mtp","V_PlateCarrier1_blk","V_PlateCarrierSpec_rgr","V_PlateCarrierSpec_blk","V_PlateCarrierSpec_mtp","V_Chestrig_khk","V_Chestrig_rgr","V_Chestrig_blk","V_Chestrig_oli","V_TacVest_khk","V_TacVest_brn","V_TacVest_oli","V_TacVest_blk","V_TacVest_camo","V_TacVest_blk_POLICE","V_TacVestIR_blk","V_HarnessO_brn","V_HarnessOGL_brn","V_HarnessO_gry","V_HarnessOGL_gry","V_PlateCarrierIA1_dgtl","V_PlateCarrierIA2_dgtl","V_PlateCarrierIAGL_dgtl","V_PlateCarrierIAGL_oli","V_RebreatherB","V_RebreatherIR","V_RebreatherIA","V_PlateCarrier_Kerry","V_PlateCarrierL_CTRG","V_PlateCarrierH_CTRG","V_I_G_resistanceLeader_F","V_Press_F","H_HelmetB","H_HelmetB_camo","H_HelmetB_light","H_Booniehat_khk","H_Booniehat_oli","H_Booniehat_mcamo","H_Booniehat_tan","H_Booniehat_dgtl","H_Booniehat_khk_hs","H_HelmetSpecB","H_HelmetSpecB_paint1","H_HelmetSpecB_paint2","H_HelmetSpecB_blk","H_HelmetSpecB_snakeskin","H_HelmetSpecB_sand","H_HelmetIA","H_HelmetB_grass","H_HelmetB_snakeskin","H_HelmetB_desert","H_HelmetB_black","H_HelmetB_sand","H_Cap_red","H_Cap_blu","H_Cap_oli","H_Cap_headphones","H_Cap_tan","H_Cap_blk","H_Cap_blk_CMMG","H_Cap_brn_SPECOPS","H_Cap_tan_specops_US","H_Cap_khaki_specops_UK","H_Cap_grn","H_Cap_grn_BI","H_Cap_blk_Raven","H_Cap_blk_ION","H_Cap_oli_hs","H_Cap_press","H_Cap_usblack","H_Cap_surfer","H_Cap_police","H_HelmetCrew_B","H_HelmetCrew_O","H_HelmetCrew_I","H_PilotHelmetFighter_B","H_PilotHelmetFighter_O","H_PilotHelmetFighter_I","H_PilotHelmetHeli_B","H_PilotHelmetHeli_O","H_PilotHelmetHeli_I","H_CrewHelmetHeli_B","H_CrewHelmetHeli_O","H_CrewHelmetHeli_I","H_HelmetO_ocamo","H_HelmetLeaderO_ocamo","H_MilCap_ocamo","H_MilCap_mcamo","H_MilCap_gry","H_MilCap_dgtl","H_MilCap_blue","H_HelmetB_light_grass","H_HelmetB_light_snakeskin","H_HelmetB_light_desert","H_HelmetB_light_black","H_HelmetB_light_sand","H_HelmetO_oucamo","H_HelmetLeaderO_oucamo","H_HelmetSpecO_ocamo","H_HelmetSpecO_blk","H_Bandanna_surfer","H_Bandanna_khk","H_Bandanna_khk_hs","H_Bandanna_cbr","H_Bandanna_sgg","H_Bandanna_sand","H_Bandanna_surfer_blk","H_Bandanna_surfer_grn","H_Bandanna_gry","H_Bandanna_blu","H_Bandanna_camo","H_Bandanna_mcamo","H_Shemag_olive","H_Shemag_olive_hs","H_ShemagOpen_khk","H_ShemagOpen_tan","H_Beret_blk","H_Beret_02","H_Beret_Colonel","H_Watchcap_blk","H_Watchcap_cbr","H_Watchcap_khk","H_Watchcap_camo","H_StrawHat","H_StrawHat_dark","H_Hat_blue","H_Hat_brown","H_Hat_camo","H_Hat_grey","H_Hat_checker","H_Hat_tan","H_RacingHelmet_1_F","H_RacingHelmet_2_F","H_RacingHelmet_3_F","H_RacingHelmet_4_F","H_RacingHelmet_1_black_F","H_RacingHelmet_1_blue_F","H_RacingHelmet_1_green_F","H_RacingHelmet_1_red_F","H_RacingHelmet_1_white_F","H_RacingHelmet_1_yellow_F","H_RacingHelmet_1_orange_F","H_Cap_marshal","Zasleh2","muzzle_snds_H","muzzle_snds_L","muzzle_snds_M","muzzle_snds_B","optic_Arco","optic_Hamr","optic_Aco","optic_ACO_grn","optic_Aco_smg","optic_ACO_grn_smg","optic_Holosight","optic_Holosight_smg","optic_SOS","acc_flashlight","acc_pointer_IR","optic_MRCO","muzzle_snds_acp","optic_NVS","optic_DMS","optic_Yorris","optic_MRD","optic_LRPS","B_UavTerminal","O_UavTerminal","I_UavTerminal","muzzle_snds_338_black","muzzle_snds_338_green","muzzle_snds_338_sand","muzzle_snds_93mmg","muzzle_snds_93mmg_tan","optic_AMS","optic_AMS_khk","optic_AMS_snd","optic_KHS_blk","optic_KHS_hex","optic_KHS_old","optic_KHS_tan","bipod_01_F_snd","bipod_01_F_blk","bipod_01_F_mtp","bipod_02_F_blk","bipod_02_F_tan","bipod_02_F_hex","bipod_03_F_blk","bipod_03_F_oli","srifle_DMR_01_DMS_BI_F","srifle_DMR_01_DMS_BI_F","srifle_DMR_01_DMS_snds_BI_F","srifle_DMR_01_DMS_snds_BI_F","srifle_DMR_01_DMS_snds_BI_F","srifle_DMR_02_ACO_F","srifle_DMR_02_MRCO_F","srifle_DMR_02_SOS_F","srifle_DMR_02_DMS_F","srifle_DMR_02_sniper_AMS_LP_S_F","srifle_DMR_02_sniper_AMS_LP_S_F","srifle_DMR_02_sniper_AMS_LP_S_F","srifle_DMR_02_sniper_AMS_LP_S_F","srifle_DMR_02_camo_AMS_LP_F","srifle_DMR_02_camo_AMS_LP_F","srifle_DMR_02_camo_AMS_LP_F","srifle_DMR_02_ARCO_F","srifle_DMR_03_ACO_F","srifle_DMR_03_MRCO_F","srifle_DMR_03_SOS_F","srifle_DMR_03_DMS_F","srifle_DMR_03_tan_AMS_LP_F","srifle_DMR_03_tan_AMS_LP_F","srifle_DMR_03_tan_AMS_LP_F","srifle_DMR_03_DMS_snds_F","srifle_DMR_03_DMS_snds_F","srifle_DMR_03_ARCO_F","srifle_DMR_03_AMS_F","srifle_DMR_04_ACO_F","srifle_DMR_04_MRCO_F","srifle_DMR_04_SOS_F","srifle_DMR_04_DMS_F","srifle_DMR_04_ARCO_F","srifle_DMR_04_NS_LP_F","srifle_DMR_04_NS_LP_F","srifle_DMR_04_NS_LP_F","srifle_DMR_05_ACO_F","srifle_DMR_05_MRCO_F","srifle_DMR_05_SOS_F","srifle_DMR_05_DMS_F","srifle_DMR_05_KHS_LP_F","srifle_DMR_05_KHS_LP_F","srifle_DMR_05_KHS_LP_F","srifle_DMR_05_DMS_snds_F","srifle_DMR_05_DMS_snds_F","srifle_DMR_05_ARCO_F","srifle_DMR_06_camo_khs_F","srifle_EBR_MRCO_LP_BI_F","srifle_EBR_MRCO_LP_BI_F","srifle_EBR_MRCO_LP_BI_F","LMG_Mk200_LP_BI_F","LMG_Mk200_LP_BI_F","LMG_Mk200_BI_F","MMG_01_hex_ARCO_LP_F","MMG_01_hex_ARCO_LP_F","MMG_01_hex_ARCO_LP_F","MMG_02_sand_RCO_LP_F","MMG_02_sand_RCO_LP_F","MMG_02_sand_RCO_LP_F","MMG_02_black_RCO_BI_F","MMG_02_black_RCO_BI_F","arifle_MXM_DMS_LP_BI_snds_F","arifle_MXM_DMS_LP_BI_snds_F","arifle_MXM_DMS_LP_BI_snds_F","arifle_MXM_DMS_LP_BI_snds_F","arifle_MXM_Hamr_LP_BI_F","arifle_MXM_Hamr_LP_BI_F","arifle_MXM_Hamr_LP_BI_F","rhs_weap_m4_grip","rhs_weap_m4_grip2","rhs_weap_m4_grip3","rhs_weap_m4_pmag_grip","rhs_weap_m4_pmag_grip2","rhs_weap_m4_pmag_grip3","rhs_weap_m4_mstock_grip","rhs_weap_m4_mstock_grip2","rhs_weap_m4_mstock_grip3","rhs_weap_m4_carryhandle_grip","rhs_weap_m4_carryhandle_grip2","rhs_weap_m4_carryhandle_grip3","rhs_weap_m4_carryhandle_pmag_grip","rhs_weap_m4_carryhandle_pmag_grip2","rhs_weap_m4_carryhandle_pmag_grip3","rhs_weap_m4_carryhandle_mstock_grip","rhs_weap_m4_carryhandle_mstock_grip2","rhs_weap_m4_carryhandle_mstock_grip3","rhs_weap_m4a1_grip","rhs_weap_m4a1_grip2","rhs_weap_m4a1_grip3","rhs_weap_m4a1_d_grip","rhs_weap_m4a1_d_grip2","rhs_weap_m4a1_d_grip3","rhs_weap_m4a1_pmag_grip","rhs_weap_m4a1_pmag_grip2","rhs_weap_m4a1_pmag_grip3","rhs_weap_m4a1_mstock_grip","rhs_weap_m4a1_mstock_grip2","rhs_weap_m4a1_mstock_grip3","rhs_weap_m4a1_d_mstock_grip","rhs_weap_m4a1_d_mstock_grip2","rhs_weap_m4a1_d_mstock_grip3","rhs_weap_m4a1_carryhandle_grip","rhs_weap_m4a1_carryhandle_grip2","rhs_weap_m4a1_carryhandle_grip3","rhs_weap_m4a1_carryhandle_pmag_grip","rhs_weap_m4a1_carryhandle_pmag_grip2","rhs_weap_m4a1_carryhandle_pmag_grip3","rhs_weap_m4a1_carryhandle_mstock_grip","rhs_weap_m4a1_carryhandle_mstock_grip2","rhs_weap_m4a1_carryhandle_mstock_grip3","rhs_weap_m4a1_blockII_grip","rhs_weap_m4a1_blockII_grip2","rhs_weap_m4a1_blockII_grip_bk","rhs_weap_m4a1_blockII_grip2_bk","rhs_weap_m4a1_blockII_grip_wd","rhs_weap_m4a1_blockII_grip2_wd","rhs_weap_m4a1_blockII_grip_d","rhs_weap_m4a1_blockII_grip2_d","rhs_weap_m4a1_blockII_grip_KAC","rhs_weap_m4a1_blockII_grip2_KAC","rhs_weap_m4a1_blockII_grip_KAC_bk","rhs_weap_m4a1_blockII_grip2_KAC_bk","rhs_weap_m4a1_blockII_grip_KAC_wd","rhs_weap_m4a1_blockII_grip2_KAC_wd","rhs_weap_m4a1_blockII_grip_KAC_d","rhs_weap_m4a1_blockII_grip2_KAC_d","rhs_weap_mk18_grip","rhs_weap_mk18_grip2","rhs_weap_mk18_grip_bk","rhs_weap_mk18_grip2_bk","rhs_weap_mk18_grip_wd","rhs_weap_mk18_grip2_wd","rhs_weap_mk18_grip_d","rhs_weap_mk18_grip2_d","rhs_weap_mk18_grip_KAC","rhs_weap_mk18_grip2_KAC","rhs_weap_mk18_grip_KAC_bk","rhs_weap_mk18_grip2_KAC_bk","rhs_weap_mk18_grip_KAC_wd","rhs_weap_mk18_grip2_KAC_wd","rhs_weap_mk18_grip_KAC_d","rhs_weap_mk18_grip2_KAC_d","rhs_weap_m16a4_grip","rhs_weap_m16a4_grip2","rhs_weap_m16a4_grip3","rhs_weap_m16a4_pmag_grip","rhs_weap_m16a4_pmag_grip2","rhs_weap_m16a4_pmag_grip3","rhs_weap_m16a4_carryhandle_grip","rhs_weap_m16a4_carryhandle_grip2","rhs_weap_m16a4_carryhandle_grip3","rhs_weap_m16a4_carryhandle_grip_pmag","rhs_weap_m16a4_carryhandle_grip2_pmag","rhs_weap_m16a4_carryhandle_grip3_pmag","rhs_weap_hk416d10_grip","rhs_weap_hk416d10_grip2","rhs_weap_hk416d10_grip3","rhs_weap_hk416d145_grip","rhs_weap_hk416d145_grip2","rhs_weap_hk416d145_grip3","rhs_weap_hk416d10_LMT_grip","rhs_weap_hk416d10_LMT_grip2","rhs_weap_hk416d10_LMT_grip3","rhs_weap_hk416d10_LMT_d_grip","rhs_weap_hk416d10_LMT_d_grip2","rhs_weap_hk416d10_LMT_d_grip3","rhs_weap_hk416d10_LMT_wd_grip","rhs_weap_hk416d10_LMT_wd_grip2","rhs_weap_hk416d10_LMT_wd_grip3","rhs_weap_m27iar_grip1","rhs_weap_m27iar_grip2","rhs_weap_m27iar_grip3","rhsusf_acc_harris_bipod","rhsusf_acc_harris_swivel","rhsusf_acc_grip1","rhsusf_acc_grip2","rhsusf_acc_grip2_tan","rhsusf_acc_grip3","rhsusf_acc_grip3_tan","rhsusf_acc_grip4","rhs_acc_at4_handler","rhsusf_acc_anpeq15A","rhsusf_acc_anpeq15","rhsusf_acc_anpeq15_bk","rhsusf_acc_anpeq15_light","rhsusf_acc_anpeq15_bk_light","rhsusf_acc_anpeq15_wmx","rhsusf_acc_anpeq15_wmx_light","rhsusf_acc_anpeq15_top","rhsusf_acc_anpeq15_bk_top","rhsusf_acc_anpeq15side","rhsusf_acc_anpeq15side_bk","rhsusf_acc_M952V","rhsusf_acc_wmx","rhsusf_acc_M2010S","rhsusf_acc_SR25S","rhsusf_acc_rotex5_grey","rhsusf_acc_rotex5_tan","rhsusf_acc_nt4_black","rhsusf_acc_nt4_tan","rhsusf_acc_omega9k","rhsusf_acc_rotex_mp7","rhsusf_acc_rotex_mp7_aor1","rhsusf_acc_rotex_mp7_winter","rhsusf_acc_rotex_mp7_desert","rhsusf_acc_muzzleFlash_SF3P556","rhsusf_acc_muzzleFlash_SFMB556","rhsusf_acc_muzzleFlash_ardec_m240","rhsusf_acc_SF3P556","rhsusf_acc_SFMB556","rhsusf_acc_ARDEC_M240","rhsusf_acc_compm4","rhsusf_acc_eotech_552","rhsusf_acc_eotech_552_d","rhsusf_acc_anpvs27","rhsusf_acc_anpas13gv1","rhsusf_acc_LEUPOLDMK4","rhsusf_acc_ELCAN","rhsusf_acc_ELCAN_ard","rhsusf_acc_SpecterDR","rhsusf_acc_SpecterDR_D","rhsusf_acc_SpecterDR_OD","rhsusf_acc_SpecterDR_A","rhsusf_acc_ACOG","rhsusf_acc_ACOG_wd","rhsusf_acc_ACOG_d","rhsusf_acc_ACOG2","rhsusf_acc_ACOG3","rhsusf_acc_ACOG_USMC","rhsusf_acc_ACOG2_USMC","rhsusf_acc_ACOG3_USMC","rhsusf_acc_ACOG_RMR","rhsusf_acc_ACOG_anpvs27","rhsusf_acc_LEUPOLDMK4_2","rhsusf_acc_LEUPOLDMK4_2_d","rhsusf_acc_premier","rhsusf_acc_premier_low","rhsusf_acc_premier_anpvs27","rhsusf_acc_M8541","rhsusf_acc_M8541_low","rhsusf_acc_M8541_low_d","rhsusf_acc_M8541_low_wd","rhsusf_acc_EOTECH","rhsusf_acc_M2A1","rhsusf_acc_eotech_xps3","rhsusf_acc_ACOG_MDO","rhs_weap_optic_smaw","rhs_weap_m4_bipod","rhs_weap_m4a1_bipod","rhs_weap_m4a1_carryhandle_bipod","rhs_weap_m16a4_bipod","rhs_weap_m16a4_carryhandle_bipod","rhs_m4_compm4","rhs_m4_acog","rhs_m4_grip_compm4","rhs_m4_grip_compm4","rhs_m4_m203_compm4","rhs_m4_m203_compm4","rhs_m4a1_compm4","rhs_m4a1_compm4","rhs_m4a1_grip_compm4","rhs_m4a1_grip_compm4","rhs_m4a1_acog","rhs_m4a1_acog","rhs_m4a1_acog2","rhs_m4a1_acog2","rhs_m4a1_acog3","rhs_m4a1_acog3","rhs_m4a1_grip_acog","rhs_m4a1_grip_acog","rhs_m4a1_grip_acog2","rhs_m4a1_grip_acog2","rhs_m4a1_m203s_ACOG","rhs_m4a1_m203s_ACOG","rhs_weap_m240b_elcan","rhs_weap_m249_pip_elcan","rhs_weap_XM2010_d_leu","rhs_weap_XM2010_d_leu","rhs_weap_XM2010_wd_leu","rhs_weap_XM2010_wd_leu","rhs_weap_m14ebrri_leu","rhs_weap_m14ebrri_leu","rhs_weap_M107_leu","rhs_weap_M107_d_leu","rhs_weap_M107_w_leu","rhs_weap_m24sws_leu","rhs_weap_m24sws_leu","rhs_weap_m24sws_blk_leu","rhs_weap_m24sws_blk_leu","rhs_weap_m16a4_acog_usmc","rhs_weap_m16a4_acog_usmc","rhs_weap_m16a4_m203_acog_usmc","rhs_weap_m16a4_m203_acog_usmc","rhs_weap_m16a4_grip_acog_usmc","rhs_weap_m16a4_grip_acog_usmc","rhs_weap_m16a4_grip_acog2_usmc","rhs_weap_m16a4_grip_acog2_usmc","rhs_m4_acog_usmc","rhs_m4_acog_usmc","rhs_m4_acog2_usmc","rhs_m4_acog2_usmc","rhs_m4_grip_acog_usmc","rhs_m4_grip_acog_usmc","rhs_m4_grip_acog3_usmc","rhs_m4_grip_acog3_usmc","rhs_m4_m203_acog_usmc","rhs_m4_m203_acog_usmc","rhs_m4_m203s_acog_usmc","rhs_m4_m203s_acog_usmc","rhs_m4a1_eotech","rhs_m4a1_eotech","rhs_m4a1_acog_usmc","rhs_m4a1_acog_usmc","rhs_m4a1_acog2_usmc","rhs_m4a1_acog2_usmc","rhs_m4a1_acog3_usmc","rhs_m4a1_acog3_usmc","rhs_m4a1_acog2_usmc_sup","rhs_m4a1_acog2_usmc_sup","rhs_m4a1_acog2_usmc_sup","rhs_m4a1_grip_eotech","rhs_m4a1_grip_eotech","rhs_m4a1_grip_acog_usmc","rhs_m4a1_grip_acog_usmc","rhs_m4a1_grip_acog2_usmc_sup","rhs_m4a1_grip_acog2_usmc_sup","rhs_m4a1_grip_acog2_usmc_sup","rhs_m4a1_grip_acog2_usmc_sup_tan","rhs_m4a1_grip_acog2_usmc_sup_tan","rhs_m4a1_grip_acog2_usmc_sup_tan","rhs_m4a1_grip_acog3_usmc_sup","rhs_m4a1_grip_acog3_usmc_sup","rhs_m4a1_grip_acog3_usmc_sup","rhs_m4a1_m203_acog3_usmc_sup","rhs_m4a1_m203_acog3_usmc_sup","rhs_m4a1_m203_acog3_usmc_sup","rhs_weap_m27iar_bipod_acog_usmc","rhs_weap_m27iar_bipod_acog_usmc","rhs_weap_m27iar_bipod_acog_usmc","rhs_weap_m27iar_bipod_acog_usmc_sup","rhs_weap_m27iar_bipod_acog_usmc_sup","rhs_weap_m27iar_bipod_acog_usmc_sup","rhs_weap_m27iar_bipod_acog_usmc_sup","rhs_weap_m27iar_bipod_acog_usmc_sup_tan","rhs_weap_m27iar_bipod_acog_usmc_sup_tan","rhs_weap_m27iar_bipod_acog_usmc_sup_tan","rhs_weap_m27iar_bipod_acog_usmc_sup_tan","rhs_weap_m39","rhs_weap_m39","rhs_weap_m240b_usmc","rhs_weap_m249_pip_usmc","rhs_weap_m249_para_usmc","rhs_weap_sr25_usmc","rhs_weap_sr25_usmc","rhs_weap_sr25_sup_usmc","rhs_weap_sr25_sup_usmc","rhs_weap_sr25_sup_usmc","rhs_weap_m40_wd_usmc","rhs_weap_m40_wd_usmc","rhs_weap_m40_d_usmc","rhs_weap_m40_d_usmc","rhs_weap_m32_usmc","rhs_weap_smaw_optic","rhs_weap_smaw_gr_optic","rhs_weap_M107_premier","rhs_weap_M107_d_premier","rhs_weap_M107_w_premier","rhs_m4a1_grip_eotech_soc","rhs_m4a1_grip_eotech_soc","rhs_weap_mk18_eotech","rhs_weap_mk18_eotech","rhs_weap_mk18_eotech_sup","rhs_weap_mk18_eotech_sup","rhs_weap_mk18_eotech_sup","rhs_weap_mk18_SU230","rhs_weap_mk18_SU230","rhs_weap_m4a1_blockII_KAC_SU230","rhs_weap_m4a1_blockII_KAC_SU230","rhs_weap_m4a1_blockII_M203_SU230","rhs_weap_m4a1_blockII_M203_SU230","rhs_weap_m4a1_blockII_KAC_SU230_sup","rhs_weap_m4a1_blockII_KAC_SU230_sup","rhs_weap_m4a1_blockII_KAC_SU230_sup","rhs_weap_m4a1_blockII_KAC_SU230_sup","rhs_weap_sr25_sup_marsoc","rhs_weap_sr25_sup_marsoc","rhs_weap_sr25_sup_marsoc","lerca_1200_black","lerca_1200_tan","Leupold_Mk4","O_NVGoggles_hex_F","O_NVGoggles_urb_F","O_NVGoggles_ghex_F","NVGoggles_tna_F","NVGogglesB_blk_F","NVGogglesB_grn_F","NVGogglesB_gry_F","Laserdesignator_01_khk_F","Laserdesignator_02_ghex_F","arifle_MX_khk_ACO_Pointer_F","arifle_MX_khk_ACO_Pointer_F","arifle_MX_khk_Holo_Pointer_F","arifle_MX_khk_Holo_Pointer_F","arifle_MX_khk_Hamr_Pointer_F","arifle_MX_khk_Hamr_Pointer_F","arifle_MX_khk_Hamr_Pointer_Snds_F","arifle_MX_khk_Hamr_Pointer_Snds_F","arifle_MX_khk_Hamr_Pointer_Snds_F","arifle_MX_khk_Pointer_F","arifle_MX_khk_ACO_Pointer_Snds_F","arifle_MX_khk_ACO_Pointer_Snds_F","arifle_MX_khk_ACO_Pointer_Snds_F","arifle_MX_GL_khk_ACO_F","arifle_MX_GL_khk_Hamr_Pointer_F","arifle_MX_GL_khk_Hamr_Pointer_F","arifle_MX_GL_khk_Holo_Pointer_Snds_F","arifle_MX_GL_khk_Holo_Pointer_Snds_F","arifle_MX_GL_khk_Holo_Pointer_Snds_F","arifle_MX_SW_khk_Pointer_F","arifle_MX_SW_khk_Pointer_F","arifle_MXC_khk_Holo_Pointer_F","arifle_MXC_khk_Holo_Pointer_F","arifle_MXC_khk_ACO_F","arifle_MXC_khk_ACO_Pointer_Snds_F","arifle_MXC_khk_ACO_Pointer_Snds_F","arifle_MXC_khk_ACO_Pointer_Snds_F","arifle_MXM_khk_MOS_Pointer_Bipod_F","arifle_MXM_khk_MOS_Pointer_Bipod_F","arifle_MXM_khk_MOS_Pointer_Bipod_F","arifle_MXM_khk_MOS_Pointer_Bipod_F","srifle_LRR_tna_LRPS_F","srifle_GM6_ghex_LRPS_F","muzzle_snds_H_khk_F","muzzle_snds_H_snd_F","muzzle_snds_m_khk_F","muzzle_snds_m_snd_F","muzzle_snds_58_blk_F","muzzle_snds_58_ghex_F","muzzle_snds_58_hex_F","muzzle_snds_B_khk_F","muzzle_snds_B_snd_F","muzzle_snds_65_TI_blk_F","muzzle_snds_65_TI_hex_F","muzzle_snds_65_TI_ghex_F","optic_Arco_blk_F","optic_Arco_ghex_F","optic_DMS_ghex_F","optic_Hamr_khk_F","optic_ERCO_blk_F","optic_ERCO_khk_F","optic_ERCO_snd_F","optic_SOS_khk_F","optic_LRPS_tna_F","optic_LRPS_ghex_F","optic_Holosight_blk_F","optic_Holosight_khk_F","optic_Holosight_smg_blk_F","bipod_01_F_khk","srifle_DMR_07_blk_DMS_F","srifle_DMR_07_blk_DMS_Snds_F","srifle_DMR_07_blk_DMS_Snds_F","arifle_CTAR_blk_ACO_Pointer_F","arifle_CTAR_blk_ACO_Pointer_F","arifle_CTAR_blk_Pointer_F","arifle_CTAR_blk_ACO_F","arifle_CTAR_GL_blk_ACO_F","arifle_CTAR_GL_blk_ARCO_Pointer_F","arifle_CTAR_GL_blk_ARCO_Pointer_F","arifle_CTAR_blk_ARCO_Pointer_F","arifle_CTAR_blk_ARCO_Pointer_F","arifle_CTAR_blk_ACO_Pointer_Snds_F","arifle_CTAR_blk_ACO_Pointer_Snds_F","arifle_CTAR_blk_ACO_Pointer_Snds_F","arifle_CTAR_GL_blk_ACO_Pointer_Snds_F","arifle_CTAR_GL_blk_ACO_Pointer_Snds_F","arifle_CTAR_GL_blk_ACO_Pointer_Snds_F","arifle_CTAR_blk_ARCO_Pointer_Snds_F","arifle_CTAR_blk_ARCO_Pointer_Snds_F","arifle_CTAR_blk_ARCO_Pointer_Snds_F","arifle_CTAR_blk_ARCO_F","arifle_CTARS_blk_Pointer_F","rhs_uniform_g3_mc","rhs_uniform_g3_m81","rhs_uniform_g3_tan","rhs_uniform_g3_rgr","rhs_uniform_g3_blk","rhs_uniform_cu_ocp","rhs_uniform_cu_ucp","rhs_uniform_cu_ocp_1stcav","rhs_uniform_cu_ucp_1stcav","rhs_uniform_cu_ocp_82nd","rhs_uniform_cu_ucp_82nd","rhs_uniform_cu_ocp_101st","rhs_uniform_cu_ucp_101st","rhs_uniform_cu_ocp_10th","rhs_uniform_cu_ucp_10th","rhs_uniform_FROG01_d","rhs_uniform_FROG01_wd","rhsusf_patrolcap_ocp","rhsusf_patrolcap_ucp","rhs_Booniehat_ocp","rhs_Booniehat_ucp","rhs_Booniehat_m81","rhs_booniehat2_marpatd","rhs_booniehat2_marpatwd","rhs_8point_marpatd","rhs_8point_marpatwd","rhsusf_ach_helmet_ocp","rhsusf_ach_helmet_ocp_norotos","rhsusf_ach_helmet_ucp","rhsusf_ach_helmet_ucp_norotos","rhsusf_ach_helmet_M81","rhsusf_ach_helmet_camo_ocp","rhsusf_ach_helmet_headset_ocp","rhsusf_ach_helmet_headset_ucp","rhsusf_ach_helmet_ESS_ocp","rhsusf_ach_helmet_ESS_ucp","rhsusf_ach_helmet_headset_ess_ocp","rhsusf_ach_helmet_headset_ess_ucp","rhsusf_ach_bare","rhsusf_ach_bare_ess","rhsusf_ach_bare_headset","rhsusf_ach_bare_headset_ess","rhsusf_ach_bare_tan","rhsusf_ach_bare_tan_ess","rhsusf_ach_bare_tan_headset","rhsusf_ach_bare_tan_headset_ess","rhsusf_ach_bare_wood","rhsusf_ach_bare_wood_ess","rhsusf_ach_bare_wood_headset","rhsusf_ach_bare_wood_headset_ess","rhsusf_ach_bare_des","rhsusf_ach_bare_des_ess","rhsusf_ach_bare_des_headset","rhsusf_ach_bare_des_headset_ess","rhsusf_ach_bare_semi","rhsusf_ach_bare_semi_ess","rhsusf_ach_bare_semi_headset","rhsusf_ach_bare_semi_headset_ess","rhsusf_opscore_fg","rhsusf_opscore_fg_pelt","rhsusf_opscore_fg_pelt_nsw","rhsusf_opscore_fg_pelt_cam","rhsusf_opscore_ut","rhsusf_opscore_ut_pelt","rhsusf_opscore_ut_pelt_cam","rhsusf_opscore_ut_pelt_nsw","rhsusf_opscore_ut_pelt_nsw_cam","rhsusf_opscore_bk","rhsusf_opscore_bk_pelt","rhsusf_opscore_mc","rhsusf_opscore_mc_pelt","rhsusf_opscore_mc_pelt_nsw","rhsusf_opscore_aor1","rhsusf_opscore_aor1_pelt","rhsusf_opscore_aor1_pelt_nsw","rhsusf_opscore_aor2","rhsusf_opscore_aor2_pelt","rhsusf_opscore_aor2_pelt_nsw","rhsusf_opscore_paint","rhsusf_opscore_paint_pelt","rhsusf_opscore_paint_pelt_nsw","rhsusf_opscore_paint_pelt_nsw_cam","rhsusf_opscore_mc_cover","rhsusf_opscore_mc_cover_pelt","rhsusf_opscore_mc_cover_pelt_nsw","rhsusf_opscore_mc_cover_pelt_cam","rhsusf_opscore_rg_cover","rhsusf_opscore_rg_cover_pelt","rhsusf_opscore_coy_cover","rhsusf_opscore_coy_cover_pelt","rhsusf_opscore_mar_ut","rhsusf_opscore_mar_ut_pelt","rhsusf_opscore_mar_fg","rhsusf_opscore_mar_fg_pelt","rhsusf_cvc_helmet","rhsusf_cvc_green_helmet","rhsusf_cvc_ess","rhsusf_cvc_green_ess","rhsusf_hgu56p","rhsusf_hgu56p_mask","rhsusf_ANPVS_14","rhsusf_ANPVS_15","rhsusf_Rhino","rhsusf_mich_helmet_marpatwd","rhsusf_mich_helmet_marpatwd_headset","rhsusf_mich_helmet_marpatd","rhsusf_mich_helmet_marpatd_headset","rhsusf_mich_helmet_marpatwd_alt","rhsusf_mich_helmet_marpatwd_alt_headset","rhsusf_mich_helmet_marpatd_alt","rhsusf_mich_helmet_marpatd_alt_headset","rhsusf_mich_helmet_marpatwd_norotos","rhsusf_mich_helmet_marpatwd_norotos_headset","rhsusf_mich_helmet_marpatd_norotos","rhsusf_mich_helmet_marpatd_norotos_headset","rhsusf_mich_helmet_marpatwd_norotos_arc","rhsusf_mich_helmet_marpatwd_norotos_arc_headset","rhsusf_mich_helmet_marpatd_norotos_arc","rhsusf_mich_helmet_marpatd_norotos_arc_headset","rhsusf_mich_bare","rhsusf_mich_bare_headset","rhsusf_mich_bare_alt","rhsusf_mich_bare_norotos","rhsusf_mich_bare_norotos_headset","rhsusf_mich_bare_norotos_alt","rhsusf_mich_bare_norotos_alt_headset","rhsusf_mich_bare_norotos_arc","rhsusf_mich_bare_norotos_arc_headset","rhsusf_mich_bare_norotos_arc_alt","rhsusf_mich_bare_norotos_arc_alt_headset","rhsusf_mich_bare_tan","rhsusf_mich_bare_tan_headset","rhsusf_mich_bare_alt_tan","rhsusf_mich_bare_norotos_tan","rhsusf_mich_bare_norotos_tan_headset","rhsusf_mich_bare_norotos_alt_tan","rhsusf_mich_bare_norotos_alt_tan_headset","rhsusf_mich_bare_norotos_arc_tan","rhsusf_mich_bare_norotos_arc_alt_tan","rhsusf_mich_bare_norotos_arc_alt_tan_headset","rhsusf_mich_bare_semi","rhsusf_mich_bare_semi_headset","rhsusf_mich_bare_alt_semi","rhsusf_mich_bare_norotos_semi","rhsusf_mich_bare_norotos_semi_headset","rhsusf_mich_bare_norotos_alt_semi","rhsusf_mich_bare_norotos_alt_semi_headset","rhsusf_mich_bare_norotos_arc_semi","rhsusf_mich_bare_norotos_arc_semi_headset","rhsusf_mich_bare_norotos_arc_alt_semi","rhsusf_mich_bare_norotos_arc_alt_semi_headset","rhsusf_lwh_helmet_marpatd","rhsusf_lwh_helmet_marpatd_ess","rhsusf_lwh_helmet_marpatd_headset","rhsusf_lwh_helmet_marpatwd","rhsusf_lwh_helmet_marpatwd_ess","rhsusf_lwh_helmet_marpatwd_blk_ess","rhsusf_lwh_helmet_marpatwd_headset","rhsusf_lwh_helmet_marpatwd_headset_blk","rhsusf_lwh_helmet_M1942","rhsusf_Bowman","rhsusf_bowman_cap","RHS_jetpilot_usaf","rhsusf_protech_helmet","rhsusf_protech_helmet_ess","rhsusf_protech_helmet_rhino","rhsusf_protech_helmet_rhino_ess","rhsusf_iotv_ocp","rhsusf_iotv_ocp_Grenadier","rhsusf_iotv_ocp_Medic","rhsusf_iotv_ocp_Repair","rhsusf_iotv_ocp_Rifleman","rhsusf_iotv_ocp_SAW","rhsusf_iotv_ocp_Squadleader","rhsusf_iotv_ocp_Teamleader","rhsusf_iotv_ucp","rhsusf_iotv_ucp_Grenadier","rhsusf_iotv_ucp_Medic","rhsusf_iotv_ucp_Repair","rhsusf_iotv_ucp_Rifleman","rhsusf_iotv_ucp_SAW","rhsusf_iotv_ucp_Squadleader","rhsusf_iotv_ucp_Teamleader","rhsusf_spc","rhsusf_spc_rifleman","rhsusf_spc_iar","rhsusf_spc_corpsman","rhsusf_spc_crewman","rhsusf_spc_light","rhsusf_spc_marksman","rhsusf_spc_mg","rhsusf_spc_squadleader","rhsusf_spc_teamleader","rhsusf_spc_patchless","rhsusf_spc_patchless_radio","rhsusf_spcs_ocp","rhsusf_spcs_ocp_rifleman","rhsusf_spcs_ucp","rhsusf_spcs_ucp_rifleman","U_B_T_Soldier_F","U_B_T_Soldier_AR_F","U_B_T_Soldier_SL_F","U_B_T_Sniper_F","U_B_T_FullGhillie_tna_F","U_B_CTRG_Soldier_F","U_B_CTRG_Soldier_2_F","U_B_CTRG_Soldier_3_F","U_B_GEN_Soldier_F","U_B_GEN_Commander_F","U_O_T_Soldier_F","U_O_T_Officer_F","U_O_T_Sniper_F","U_O_T_FullGhillie_tna_F","U_O_V_Soldier_Viper_F","U_O_V_Soldier_Viper_hex_F","U_I_C_Soldier_Para_1_F","U_I_C_Soldier_Para_2_F","U_I_C_Soldier_Para_3_F","U_I_C_Soldier_Para_4_F","U_I_C_Soldier_Para_5_F","U_I_C_Soldier_Bandit_1_F","U_I_C_Soldier_Bandit_2_F","U_I_C_Soldier_Bandit_3_F","U_I_C_Soldier_Bandit_4_F","U_I_C_Soldier_Bandit_5_F","U_I_C_Soldier_Camo_F","U_C_man_sport_1_F","U_C_man_sport_2_F","U_C_man_sport_3_F","U_C_Man_casual_1_F","U_C_Man_casual_2_F","U_C_Man_casual_3_F","U_C_Man_casual_4_F","U_C_Man_casual_5_F","U_C_Man_casual_6_F","U_B_CTRG_Soldier_urb_1_F","U_B_CTRG_Soldier_urb_2_F","U_B_CTRG_Soldier_urb_3_F","H_Helmet_Skate","H_HelmetB_TI_tna_F","H_HelmetO_ViperSP_hex_F","H_HelmetO_ViperSP_ghex_F","H_HelmetB_tna_F","H_HelmetB_Enh_tna_F","H_HelmetB_Light_tna_F","H_HelmetSpecO_ghex_F","H_HelmetLeaderO_ghex_F","H_HelmetO_ghex_F","H_HelmetCrew_O_ghex_F","H_MilCap_tna_F","H_MilCap_ghex_F","H_Booniehat_tna_F","H_Beret_gen_F","H_MilCap_gen_F","V_TacChestrig_grn_F","V_TacChestrig_oli_F","V_TacChestrig_cbr_F","V_PlateCarrier1_tna_F","V_PlateCarrier2_tna_F","V_PlateCarrierSpec_tna_F","V_PlateCarrierGL_tna_F","V_HarnessO_ghex_F","V_HarnessOGL_ghex_F","V_BandollierB_ghex_F","V_TacVest_gen_F","V_PlateCarrier1_rgr_noflag_F","V_PlateCarrier2_rgr_noflag_F","None","G_Spectacles","G_Spectacles_Tinted","G_Combat","G_Lowprofile","G_Shades_Black","G_Shades_Green","G_Shades_Red","G_Squares","G_Squares_Tinted","G_Sport_BlackWhite","G_Sport_Blackyellow","G_Sport_Greenblack","G_Sport_Checkered","G_Sport_Red","G_Tactical_Black","G_Aviator","G_Lady_Blue","G_Diving","G_B_Diving","G_O_Diving","G_I_Diving","G_Goggles_VR","G_Balaclava_blk","G_Balaclava_oli","G_Balaclava_combat","G_Balaclava_lowprofile","G_Bandanna_blk","G_Bandanna_oli","G_Bandanna_khk","G_Bandanna_tan","G_Bandanna_beast","G_Bandanna_shades","G_Bandanna_sport","G_Bandanna_aviator","G_Shades_Blue","G_Sport_Blackred","G_Tactical_Clear","rhs_googles_black","rhs_googles_clear","rhs_googles_yellow","rhs_googles_orange","rhs_ess_black","G_Balaclava_TI_blk_F","G_Balaclava_TI_tna_F","G_Balaclava_TI_G_blk_F","G_Balaclava_TI_G_tna_F","G_Combat_Goggles_tna_F","B_AssaultPack_khk","B_AssaultPack_dgtl","B_AssaultPack_rgr","B_AssaultPack_sgg","B_AssaultPack_blk","B_AssaultPack_cbr","B_AssaultPack_mcamo","B_AssaultPack_ocamo","B_Kitbag_rgr","B_Kitbag_mcamo","B_Kitbag_sgg","B_Kitbag_cbr","B_TacticalPack_rgr","B_TacticalPack_mcamo","B_TacticalPack_ocamo","B_TacticalPack_blk","B_TacticalPack_oli","B_FieldPack_khk","B_FieldPack_ocamo","B_FieldPack_oucamo","B_FieldPack_cbr","B_FieldPack_blk","B_Carryall_ocamo","B_Carryall_oucamo","B_Carryall_mcamo","B_Carryall_khk","B_Carryall_cbr","B_Parachute","B_FieldPack_oli","B_Carryall_oli","B_AssaultPack_Kerry","rhsusf_assault_eagleaiii_ocp","B_rhsusf_B_BACKPACK","B_Static_Designator_01_weapon_F","O_Static_Designator_02_weapon_F","B_Bergen_mcamo_F","B_Bergen_dgtl_F","B_Bergen_hex_F","B_Bergen_tna_F","B_AssaultPack_tna_F","B_Carryall_ghex_F","B_FieldPack_ghex_F","B_ViperHarness_blk_F","B_ViperHarness_ghex_F","B_ViperHarness_hex_F","B_ViperHarness_khk_F","B_ViperHarness_oli_F","B_ViperLightHarness_blk_F","B_ViperLightHarness_ghex_F","B_ViperLightHarness_hex_F","B_ViperLightHarness_khk_F","B_ViperLightHarness_oli_F","rhsusf_assault_eagleaiii_ucp","rhsusf_assault_eagleaiii_coy","rhsusf_falconii","rhsusf_falconii_coy","rhsusf_falconii_mc","RHS_M2_Gun_Bag","RHS_M2_Tripod_Bag","RHS_M2_MiniTripod_Bag","RHS_Mk19_Gun_Bag","RHS_Mk19_Tripod_Bag","rhs_Tow_Gun_Bag","rhs_TOW_Tripod_Bag","rhs_M252_Gun_Bag","rhs_M252_Bipod_Bag","ItemRadioAcreFlagged"]


GCC 14.1, 13.3, 12.4

Activation part of https://github.com/conda-forge/ctng-compilers-feedstock/pull/133

As this is a trivial version bump (4 lines changed under recipe/), I'll merge in 48h unless there are comments.

Please don't. Me or @beckermr will have a look first

Ping @conda-forge/ctng-compiler-activation
This now also takes over #98, as discussed in https://github.com/conda-forge/clang-compiler-activation-feedstock/pull/112


Tapo P100 connection issue

Hi, I tried running the your code with my username, password and IP.
Device Type: Tapo P100
Hardware version: 2.0
Firmware Version: 1.2.1
I am getting below response:
Traceback (most recent call last):
File "C:\Users\xviewla\OneDrive - Konecranes Plc\Desktop\CodeBase\TapoP100-main\power_control.py", line 7, in
p100.handshake()  # Creates the cookies required for further methods
^^^^^^^^^^^^^^^^
File "C:\Users\xviewla\OneDrive - Konecranes Plc\Desktop\CodeBase\TapoP100-main\PyP100\PyP100.py", line 136, in handshake
encryptedKey = r.json()["result"]["key"]
~~~~~~~~^^^^^^^^^^
KeyError: 'result'
Session:  <bound method Response.json of <Response [200]>>
Session:  {'error_code': 1003}
Process finished with exit code 1

Hello,
Could you make sure your credentials are correct using the official website:
https://tapo.tplinkcloud.com/tapo_web/#/login/signIn


When a connection fails, debug() should provide error details

This line https://github.com/staltz/ssb-conn-hub/blob/cce2231f7fdb5be9e34dc01a51842d02b597ffcf/src/index.ts#L236 should also include err

Done in conn-hub 1.2.0 and released in<EMAIL_ADDRESS>


Needs a better instruction as it gives no example of bootstrap button format

Challenge Create a Bootstrap Button has an issue.
User Agent is: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0.
Please describe how to reproduce this issue, and include links to screenshots if possible.
My code:
<link href="http://fonts.googleapis.com/css?family=Lobster" rel="stylesheet" type="text/css">

CatPhotoApp

Click here for cat photos.

  <button type="button" class="btn btn-primary">Like</button>

Things cats love:

cat nip

laser pointers

lasagna

Top 3 things cats hate:

flea treatment

thunder

other cats

  <form action="/submit-cat-photo">
    <input type="radio" name="indoor-outdoor"> Indoor
    <input type="radio" name="indoor-outdoor"> Outdoor
    <input type="checkbox" name="personality"> Loving
    <input type="checkbox" name="personality"> Lazy
    <input type="checkbox" name="personality"> Crazy
    <input type="text" placeholder="cat photo URL" required>
    <button type="submit">Submit</button>
  </form>

The instructions say:

Create a new button element below your large kitten photo. Give it the class btn and the text of "Like".

That is the entirety of what is needed to do this:
<button class="btn">Like</button>
If you have been paying attention to the lessons before you should know how to:

Create a button element
Add a given class to it
Put text inside it

Do you feel that you were inadequately prepared to any of the 3 items above?

I am fine I was saying others may be confused~

Not really.  That's why we have the help rooms.
Thanks for your concern and Happy Coding!

I do see Carlskeels point, since I was confused. And not because I didn't pay attention, I remembered exactly how to make a button starting with <button.., but that was HTML... The instructions said specifically that "Bootstrap has its OWN (caps mine) styles for button elements..". Logiclly following that what was covered previously is NOT what was being asked for...

I agree..it is actually quite confusing

I agree that this is confusing. It doesn't logically follow from the previous lessons and isn't quite clear. I think better instruction should be given. The fact that several people have an issue with this lesson should be onus enough to change ir.

I found it a bit confusing but I knew memory played a part unfortunately I didnt remember.

It is confusing.  Don't assume that a beginner knows that when switching from one language (HTML5) to another (Bootstrap), assuming they are different languages (I have no idea) that the commands can remain the same, specifically when you say, in the directions: "Bootstrap has its OWN (caps mine) styles for button elements..".  I had no idea, and the help room didn't, there were enough other people looking for help that my requests went unanswered, so I found myself here.
Freecodecamp is fantastic, I'm really enjoying the process, but it's imperfect.  Having other resources should be celebrated, not derided, SaintPeter.

I also ran into this challenge, the lesson hasn't followed the flow of its predecessors.

I feel that the challenge is, for a novice, easy enough to complete with a little research but that, as was mentioned above, the bluntness (if you will) of the need for research was not expected. That being said, I had no issue with finding the proper solution to the challenge.

Do you feel that you were inadequately prepared to any of the 3 items above?
Yes, I was. The question was poorly worded and the flow was inconsistent. Also, Saint Peter, you think of other people's opinions first before you deride and belittle others.
Otherwise, I have enjoyed Freecodecamp so far.

I agree with what most people her say. It is poorly worded for beginners and should sought change.


add ability to remove table rows

closes https://github.com/dobtco/screendoor-v2/issues/1485

Great. Still need to style this in Screendoor, though...

We already have a pattern for this, more or less, with fa-minus-sign.


Update readme

Update readme and key file description with information found on this issue

Add information about each key used on the project
Add information on readme about how the user need to update his API privileges at twitter developer portal

Thanks for taking your time to do this!


[6.0] [SymbolGraphGen] Handle cxx module imports in swift-symbolgraph-extract

Explanation: Updates swift-symbolgraph-extract to parse "-cxx-interoperability-mode" flags and updates the underlying compiler invocation. This fixes a bug where were are unable to extract the symbol graph from swiftmodules with transitive cxx modules because we parsed cxx headers as c headers.
Scope: Documentation generation
Issue: rdar://128888548 (Add support for parsing cxx headers)
Original PR: #73963
Risk: Very low, purely additive.
Testing: CI & at desk usage directly and via SwiftPM
Reviewer: @bnbarham  @egorzhdan @d-ronnqvist

@swift-ci test

FYI I didn't review the original PR

FYI I didn't review the original PR

Oops sorry, I didn't pay enough attention to GitHub autocomplete


LabelSizeFontToFit decreasing font

Need help - maybe it's my own fault:
When I use LabelSizeFontToFit with static text for label everything is just fine.
When label text is changing (for example in for loop) font size is smaller and smaller in every iteration and converge to one pixel.
Bug
Version Number of Plugin: version="<IP_ADDRESS>-beta"
Device Tested On: Alcatel Pixi
Simulator Tested On: Android emulator API 21
Expected Behavior
to change (decrease) font size once
Actual Behavior
decreasing font size in for/next loop in every iteration
Steps to reproduce the Behavior
Label, XAML definition
<Label x:Name="pbText" Text=" " HorizontalOptions="StartAndExpand" VerticalOptions="Center"
	Font="{StaticResource fontAccNoCases}" LineBreakMode="NoWrap"
	IsVisible="{Binding Source={x:Reference pgMain}, Path=IsBusy}" >
        <Label.Effects>
               <effects:LabelSizeFontToFit />
         </Label.Effects>
</Label>

C#:
for (int i = 0; i < nCasesToUpdate; i++)
{
	await some_func();
        pbText.Text = $"Working on " {i + 1} / {nCasesToUpdate}";
}

I am seeing the same behavior. Any ideas what is causing this?

@aneshad I was able to copy the source and find the root of the problem.. Since there is hard coded threshold of 0.5 pixels every time the layout changes (e.g your text changes).. The loop which determines the new size only goes until it is within 0.5 and then set the new size.. which is always going to be smaller by less then 0.5.. but greater then 0.. hence the small increments of being smaller!
As far as the fix for this as it exists, since I only care about the line fitting only if the text doesn't fit because its too big, I simply check if its the first time through the loop, and if it is considered too small (which I want, I break the loop)
       public void OnLayoutChange(Android.Views.View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom)
        {
            if (_textView.Width <= 0 || _textView.Height <= 0) return;

            var hi = ConvertSpToPixels(_textView.TextSize, _textView.Context);
            var lo = 1f;

            var paint = new Paint(_textView.Paint);
            var bounds = new Rect();
            **bool isFirst = true;**
            while ((hi - lo) > Threshold)
            {
                float size = (hi + lo) / 2;
                paint.TextSize = size;
                paint.GetTextBounds(TextMeasure, 0, TextMeasure.Length, bounds);

                if (paint.MeasureText(_textView.Text) >= _textView.Width || bounds.Height() >= _textView.Height)
                    hi = size; // too big
                else
                {
                    **// If the text is too small, we are good we only wanna make sure it fits, not fits exactly
                    if (isFirst)
                    {
                        lo = hi;
                        break;
                    }**
                    lo = size; // too small
                }
                **isFirst = false;**
            }

            _textView.SetTextSize(ComplexUnitType.Px, lo);
        }

@bowman-jm Nice work, this helped me out, might be worth doing a pull request for?

Hi @berlamont ,
This did seem to help me for a while too, but then I started seeing the same issue again in some cases in my App, even though it appears to be less common. I haven't had the time to dig in and figure it out yet though.
If I can find some time, and do manage to determine the solution, I will create a PR.
Regards,
-Jeff

Any news on this issue?

It seems Android now has this feature for TextViews, so enabling it on the OnAttached method might be enough. Couldn't get it to work quite yet though.

So it's not exactly a fix, but a workaround that for now is doing the job for me:
` if (textView.Width <= 0 || textView.Height <= 0)
return;
        textView.TextSize = 28f;

        var hi = ConvertSpToPixels(textView.TextSize, textView.Context);
        var lo = 2f;

        var paint = new Paint(textView.Paint);
        var bounds = new Rect();

        if (paint.MeasureText(textView.Text) <= textView.Width)
            return;

        while ((hi - lo) > threshold)
        {
            var size = (hi + lo) / 2;
            paint.TextSize = size;
            paint.GetTextBounds(textMeasure, 0, textMeasure.Length, bounds);

            if (paint.MeasureText(textView.Text) >= textView.Width || bounds.Height() >= textView.Height)
                hi = size; // too big
            else
                lo = size; // too small
        }

       textView.SetTextSize(ComplexUnitType.Px, lo);`

Relevant lines are the one resetting the TextSize property to a default 28f and the one returning if the measured text already fits.
The problem seems to be a mix of two things: first, the TextView's actual size is changed when you SetTextSize, for whatever reason. So the next time it runs, it'll check against a much smaller textView.Width than the original, creating a cascading effect until the fontSize is set to a nice 0.
Second is similar: when the code is run the second time around it uses the smaller font from the time before, as in it doesn't reset to the Label's chosen fontsize. Makes sense, but in the case of changing something through a ViewModel Binding it just doesn't work.
So, as a workaround I put the Label inside a Grid with a set row height and added those lines. I've already spent way too long on this to try thinking of an actual fix, so for now it'll do.

I think there is a PR for this to be pulled into Forms by default, so this bug will hopefully become irrelevant soon
https://github.com/xamarin/Xamarin.Forms/pull/7981


Any plans to update repo to align with latest Issac Sim version and Replicator YAML migration?

Hello,
Based on the content you have worked on, I was able to obtain a custom dataset, including valuable amodal annotations. Thank you for sharing the results.
As you may know, the latest version of Issac Sim has been upgraded to 2023.1.1, and the Replicator Composer used by this repo has been deprecated and migrated to Replicator YAML after that.
I am curious to know whether you intend to update this repo to align with the latest version of Issac Sim. If you have any plans, please let me know!

We may be updating the repo to migrate the replicator YAML. We will update again if we do so


Additional fix for PR#2972 (case of missing import)

It is an additional fix for #2972 as mentioned by @apivovarov .
@merrymercy ,
Can review confirm please ?

I'm not sure we want to import relay if user decided to use nnvm.compiler.build.
Can we use string comparison here? e.g.
if F.__name__ == 'tvm.relay.op':

I'm not sure we want to import relay if user decided to use nnvm.compiler.build.
Can we use string comparison here? e.g.
if F.__name__ == 'tvm.relay.op':

Did it. Ditto, in case of F == sym for consistency, idea is to remove import.

@apivovarov , @tqchen
Thank you all !


Restrict CORS to whitelisted domains

This will prevent requests from external sources from materializing

This was resolved https://github.com/njyjn/sg-vaccine-tracker/pull/8


ISideEstimator / DefaultSideEstimator

This is my suggestion for the issue addressed by @payne911 in https://github.com/earlygrey/shapedrawer/issues/11 + https://github.com/earlygrey/shapedrawer/pull/46
Regarding AbstractShapeDrawer#estimateSidesRequired() there are different needs for different projects.

Some projects might use this library to draw a lot of small circles. They might need to reduce the number of sides for drawn elements
Some projects for sure are for mobile and also support low or medium hardware. There performance is any issue. They might need to reduce the number of sides for drawn elements
Some projects might want to intentionally go for a non-smooth look
Some projects might go for a really super-smooth look
Some projects might want to have a setting in the preferences to adjust the level-of-detail of the drawn elements
Some projects might want to draw elements super smooth while staying low-poly on others
There are more possibilities for sure...

I guess what we all can agree on is that there needs to be a way to specify estimateSidesRequired(radiusX, radiusY) more precise or to offer ways to access different presets out of the box for different needs.
My suggestion is to have an ISideEstimator interface and have the possibility to easily change this in AbstractShapeDrawer.
By default the DefaultSideEstimator is set. This can be easily replaced (even between render calls) or injected in the constructor. There's a lot of people who will not deep-dive into a library to adjust it to their needs. And having this might make everything easier to understand.
If somebody has a good proposal for other ISideEstimators they can also just directly be included here in this project without affecting any existing implementations.
(If this would get merged it should be a squash-merge, sorry for the amount of commits)

Interesting implementation. It's nice to provide more flexibility while still maintaining backward compatibility.
Nonetheless, I would still advocate for more sides by default. Unless the "4x" is proven to have significant performance impact, I don't see why we would refrain from providing circles as circles by default.
The current heuristic just doesn't fulfill the contract of drawing a circle: it draws a polygon that resembles a circle.

@payne911 Are you calling drawer.update() after setting the projection matrix on the batch or setting the pixel size? I don't think I've ever had a problem with the roundness of circles in various projects, and in the demo it looks fine to me. If it's really not working for you perhaps it's to do with the calculation not working well with your world unit/pixel ratio, in which case it would make more sense to adjust that part of the calculation rather than uniformly multiply the total by a constant, which might inadvertently affect performance on existing projects.
I'm in general fine with this PR, though I'm not a fan of the "I" prefix on interfaces and "multiplicator" should probably be "multiplier".

@earlygrey Your feedback is implemented.
@payne911 May I ask what your usecase and setup is? Because I do not have a problem with the "roundness" of the circles. Maybe we can find the root of the artefact you are experiencing and solve it. My monitor is 2560x1440 and everything looks great in fullscreen. My world units are 3840x2160 and I'm drawing circles from about 200-4200 world units radius (400-8400 diameter). That is about 133-2800 pixels radius. I do not rotate the circles.

I've been testing my library a bit more to try to showcase this "lack of roundness" and was unable to reproduce it in any meaningful way. I think my comment and PR should pretty much be disregarded.
It had some effects on a very specific shape when increasing the amount of estimated sides. The circles barely saw any changes.
I think what I had in mind was actually more related to pixels being pixels, since it's tweaking the antialiasing samples number that made the arcs look smoother.

@TCreutzenberg would you still like to see this merged? If so it looks fine to me, though I'm not sure what problem it's solving now!

Hm, I guess it's up to you if you want this merged or not, I'm fine with closing this PR or merging it.
If closed: I can just implement this or similar functionality myself by overriding estimateSidesRequired(float radiusX, float radiusY).
If merged: This functionality is configurable out of the box.

Oh good point, it allows changing the estimated sides calculation on an existing ShapeDrawer instance which actually does add functionality.
Thanks for the work!


TSC Meeting 2022-01-12

Please add topics for the agenda as comments on this issue.
The standing agenda items are:

Review TSC issue backlog
Review TSC-tagged issues (toggle to "open" after checking for recently "closed" items)

@ampproject/tsc

We are cancelling this since there are no items on the agenda.


Failed run after installation

[hodi@localhost dist-git-to-source-git]$ pipenv shell
Creating a virtualenv for this project…
Pipfile: /tmp/playground/dist-git-to-source-git/Pipfile
Using /usr/bin/python3 (3.7.4) to create virtualenv…
⠼ Creating virtual environment...Already using interpreter /usr/bin/python3
Using base prefix '/usr'
New python executable in /home/hodi/.local/share/virtualenvs/dist-git-to-source-git-ADR4-AYb/bin/python3
Also creating executable in /home/hodi/.local/share/virtualenvs/dist-git-to-source-git-ADR4-AYb/bin/python
Installing setuptools, pip, wheel...done.

✔ Successfully created virtual environment!
Virtualenv location: /home/hodi/.local/share/virtualenvs/dist-git-to-source-git-ADR4-AYb
Launching subshell in virtual environment…
 . /home/hodi/.local/share/virtualenvs/dist-git-to-source-git-ADR4-AYb/bin/activate
[hodi@localhost dist-git-to-source-git]$  . /home/hodi/.local/share/virtualenvs/dist-git-to-source-git-ADR4-AYb/bin/activate
(dist-git-to-source-git) [hodi@localhost dist-git-to-source-git]$ pipenv install
Installing dependencies from Pipfile.lock (349f6f)…
  🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 48/48 — 00:02:08
(dist-git-to-source-git) [hodi@localhost dist-git-to-source-git]$ ./dist2src.py --help
Traceback (most recent call last):
  File "./dist2src.py", line 13, in <module>
    import sh
ModuleNotFoundError: No module named 'sh'

Workaround:
Install deps manually, including get_source.sh script

dnf install python3-{sh,click,GitPython,packit}
https://wiki.centos.org/Sources#get_sources.sh_script

Why we use pipenv here? Don't we want to use the same tooling across all the projects?
Why agreed on not using Pipenv some time ago..;)

The missing sh should have been fixed in #6 already.
Although the installation of get_sources.sh is not explicitly mentioned, but the README does call out its usage. Should this be made more explicit?

The log is from yesterday on master. Could you please verify that it is really fixed?

 ~/src/github.com/packit-service/dist-git-to-source-git (master u= origin/master)
🐝 pipenv --rm
Removing virtualenv (/home/hcsomort/.virtualenvs/dist-git-to-source-git-00p6mKAy)…
 ~/src/github.com/packit-service/dist-git-to-source-git (master u= origin/master)
🐝 pipenv install
Creating a virtualenv for this project…
Pipfile: /home/hcsomort/src/github.com/packit-service/dist-git-to-source-git/Pipfile
Using /usr/bin/python3.7m (3.7.7) to create virtualenv…
⠏ Creating virtual environment...Already using interpreter /usr/bin/python3.7m
Using base prefix '/usr'
New python executable in /home/hcsomort/.virtualenvs/dist-git-to-source-git-00p6mKAy/bin/python3.7m
Also creating executable in /home/hcsomort/.virtualenvs/dist-git-to-source-git-00p6mKAy/bin/python
Installing setuptools, pip, wheel...
done.
Running virtualenv with interpreter /usr/bin/python3.7m

✔ Successfully created virtual environment!
Virtualenv location: /home/hcsomort/.virtualenvs/dist-git-to-source-git-00p6mKAy
Installing dependencies from Pipfile.lock (349f6f)…
  🐍   ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 48/48 — 00:00:58
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.
 ~/src/github.com/packit-service/dist-git-to-source-git (master u= origin/master)
🐝 pipenv shell
Launching subshell in virtual environment…
 . /home/hcsomort/.virtualenvs/dist-git-to-source-git-00p6mKAy/bin/activate
 ~/src/github.com/packit-service/dist-git-to-source-git (master u= origin/master)
🐝  . /home/hcsomort/.virtualenvs/dist-git-to-source-git-00p6mKAy/bin/activate
(dist-git-to-source-git-00p6mKAy)  ~/src/github.com/packit-service/dist-git-to-source-git (master u= origin/master)
🐝 ./dist2src.py --help
Usage: dist2src.py [OPTIONS] COMMAND [ARGS]...

  Script to convert the tip of a branch from a dist-git repository into a
  commit on a branch in a source-git repository.

...

Maybe try pipenv sync (or pipenv --rm and then pipenv install again)?

That's really weird. On the system from yesterday, I had pipenv freshly installed. But since this is only my and not blocking problem I am closing, Thanks :)


404 response for a global API having the same context name as the requesting resource path name

Description:
Create a Cell with a HTTP API deployed on the global gateway with the context set to 'reviews'.
Now invoking a resource named 'reviews' similar to below https://wso2-apim-gateway/review-inst/reviews/0.1/reviews would give a 404.
This same API would work as expected with a different context such as 'reviewsctx'.
Suggested Labels:

Suggested Assignees:

Affected Product Version:
0.4
OS, DB, other environment details and versions:
Steps to reproduce:
Related Issues:

Here you have configured the global context inside globalPublisher as 'reviews'. Hence you have to invoke  https://wso2-apim-gateway/reviews/reviews/0.1/reviews as mentioned in the API versioning doc.
Here, the First review is coming from globalPublisher, second is from cellery:HttpApiIngress and the third is from path under the cellery:HttpApiIngress, resources.

Hi Madusha,
I haven't added the global publisher configuration as mentioned in the provided doc. Attaching the bal  file content for reference.
product-review.txt

Hi Himasha,
I couldn't reproduce this with available samples. Can you please provide the sample that you are trying?

I also tried with the above-mentioned scenario, I also could not reproduce the issue.


Rightclick error when right clickin on a group

When right clicking on a group, we get errors.

Fixed in 3753a4d9aaa5c758f20513c7c6d36427fab386b5


Topic request: SegWit and Seggregated Witness

https://bitcoinops.org/en/topics/#s doesn't have SegWit or Seggregated Witness.

I agree that we should have a topic for this.  Thanks for the suggestion!


Unable to build MathCATForC

The latest commit, c27598af6, is giving the following error:
Compiling mathcat_c v0.2.0 (C:\src\MathCATForC)
error[E0425]: cannot find value `s` in this scope
   --> src\lib.rs:117:13
    |
117 |         if !s.is_null() {
    |             ^ not found in this scope

error[E0317]: `if` may be missing an `else` clause
   --> src\lib.rs:117:9
    |
117 | /         if !s.is_null() {
118 | |             CString::from_raw(str)
    | |             ---------------------- found here
119 | |         };
    | |_________^ expected `CString`, found `()`
    |
    = note: `if` expressions without `else` evaluate to `()`
    = help: consider adding an `else` block that evaluates to the expected type

Some errors have detailed explanations: E0317, E0425.
For more information about an error, try `rustc --explain E0317`.
error: could not compile `mathcat_c` (lib) due to 2 previous errors

I'm a Rust idiot, so if I'm missing something simple, please let me know. It does build if I roll back to before that commit.

I noticed in something I read that I should do a null check when freeing a C string in Rust. I thought it was so simple, I didn't even do a build :-(


Required Fields in Collection model

The only required field for creating a collection should be Title. Currently, Creator is also required in the Valkyrie testing environment.

no longer an issue


Insufficient fee on Bitcoin testnet

I'm trying to do a reverse swap on Bitcoin testnet but can't claim the on-chain coins. Here's the log:
INFO : 2021/06/05 11:00:18 Paid invoice of Reverse Swap m1Ipaf with fee of 0.000 satoshis
INFO : 2021/06/05 11:00:20 Reverse Swap m1Ipaf status update: transaction.mempool
INFO : 2021/06/05 11:00:20 Constructing claim transaction for Reverse Swap m1Ipaf with output: 1fd891c868c6781fed76afab2bbe87eaeef864281ae68c5b5d5e1ea6cc8e8638:0
INFO : 2021/06/05 11:00:20 Using fee of 0 sat/vbyte for claim transaction
INFO : 2021/06/05 11:00:20 Constructed claim transaction: ab7394756904bb02d04f2902cb5f4f69586e2f110fb00d18c0303a531283e725
ERROR: 2021/06/05 11:00:20 Could not finalize claim transaction: could not broadcast transaction: min relay fee not met, 0 < 136
INFO : 2021/06/05 11:03:04 Reverse Swap m1Ipaf status update: transaction.confirmed
INFO : 2021/06/05 11:03:04 Constructing claim transaction for Reverse Swap m1Ipaf with output: 1fd891c868c6781fed76afab2bbe87eaeef864281ae68c5b5d5e1ea6cc8e8638:0
INFO : 2021/06/05 11:03:04 Using fee of 0 sat/vbyte for claim transaction
INFO : 2021/06/05 11:03:04 Constructed claim transaction: ab7394756904bb02d04f2902cb5f4f69586e2f110fb00d18c0303a531283e725
ERROR: 2021/06/05 11:03:04 Could not finalize claim transaction: could not broadcast transaction: min relay fee not met, 0 < 136

I don't see a way to specify fee in boltzd and boltzcli.

The fee is fetched from our API. Seems like our testnet API was down at the time of your swap :thinking:
That shouldn't have happened in the first place, so I'll investigate that. And I think that adding a fallback for the fee estimation from the API would make sense too. Let's say try fetching a fee from the API and if that fails, take the fee estimation from LND
Thank you for reporting the issue @rkfg!

Closed by #50


Storage Explorer GPU Error

Storage Explorer Version:  latest version
Bug Description
when using storage explorer the following error is displayed first launching storage explorer

Tried running the  "--disable-gpu" switch.  However, when the application ran it crashed with the following error:

System info:

can we have a setting that can set disable-gpu to true instead of running with --disbale-gpu everything launch it, vs code recently added this feature ~

@eosho Are you by chance trying to run Storage Explorer on a VM, or are you remoting into the machine that has Storage Explorer? Can you give us some info about the system and GPU running Storage Explorer? Knowing more about your system may help us test a proper fix.
Very possible the cause is explained by electron/electron#5297.

Hi all, we have made a fix based on @craxal's finding and produced a private build. Could you please try it to see if the problem is solved?

Windows - https://aka.ms/gpu-crash/windows
macOS - https://aka.ms/gpu-crash/macOS
Linux - https://aka.ms/gpu-crash/linux

You can pass the --diable-gpu from the command when starting Storage Explorer (we internally call the function for you). If you wish to save this option, you can access the appState.json file under the appData folder and add "disableGpu": true after the "lastWindowState" property.

Windows - %APPDATA% (usually C:\Users\<your user name>\AppData\Roaming\StorageExplorer)
macOS - ~/Library/Application Support/StorageExplorer
Linux - $XDG_CONFIG_HOME or ~/.config

Once it is set, Storage Explorer will disable gpu every time it starts.

Hey I am still getting this in the newest version:

Should I open a new issue, or was there some explanation for this one about what's going on? It only happens when I try to move an Azure Storage Explorer from one monitor to another.

@Meekohi I think it would be best to open a new issue, as this one has been closed for a while, and it sounds like you have more details to add. Be sure to give us details about your system and steps you followed to reproduce the problem.