Arbitrary qreg naming

quantum registers can now be declared in multiple lines, for example:
qreg a[1]
qreg b[1]

instead of
qreg c[2]

I have a few more suggestions after reading this part of the code:
commit 7dc9592ec051b50cd44d9708d0982b131c2bbea3
Author: Kartik Singhal<EMAIL_ADDRESS>Date:   Wed Jan 31 10:44:17 2024 -0600

    fix: renaming for understanding

diff --git a/pytket/phir/sharding/shards2ops.py b/pytket/phir/sharding/shards2ops.py
index 9dbffe4..fee6105 100644
--- a/pytket/phir/sharding/shards2ops.py
+++ b/pytket/phir/sharding/shards2ops.py
@@ -24,7 +24,7 @@ def parse_shards_naive(
     shards_in_layer: list[ShardLayer] = []
     scheduled: set[int] = set()
     num_shards: int = len(shards)
-    qubit_id: int = 0
+    qid_count: int = 0
     qubits2ids: dict["UnitID", int] = {}

     while len(scheduled) < num_shards:
@@ -47,16 +47,12 @@ def parse_shards_naive(
             # map all the qubits to a unique id to prevent duplicates in placement
             if len(shard.qubits_used) != 2:  # noqa: PLR2004
                 for qubit in shard.qubits_used:
-                    qid, qubits2ids, qubit_id = assign_qubit_id(
-                        qubit, qubits2ids, qubit_id
-                    )
+                    qid, qid_count = get_qid(qubit, qubits2ids, qid_count)
                     op = [qid]
                     layer.append(op)
             else:
                 for qubit in shard.qubits_used:
-                    qid, qubits2ids, qubit_id = assign_qubit_id(
-                        qubit, qubits2ids, qubit_id
-                    )
+                    qid, qid_count = get_qid(qubit, qubits2ids, qid_count)
                     op.append(qid)
                 layer.append(op)

@@ -67,12 +63,11 @@ def parse_shards_naive(
     return layers, shards_in_layer

-def assign_qubit_id(
-    qubit: "UnitID", qubits2ids: dict["UnitID", int], qubit_id: int
-) -> tuple[int, dict["UnitID", int], int]:
-    """A helper function for managing qubit ids."""
-    if qubit not in qubits2ids:
-        qubits2ids[qubit] = qubit_id
-        qubit_id += 1
-    qid = qubits2ids[qubit]
-    return qid, qubits2ids, qubit_id
+def get_qid(
+    qubit: "UnitID", qubits2ids: dict["UnitID", int], qid_count: int
+) -> tuple[int, int]:
+    """Get qubit ID even if doesn't exist in the dict."""
+    qid = qubits2ids.setdefault(qubit, qid_count)
+    if qid == qid_count:
+        qid_count += 1
+    return qid, qid_count

If this looks okay @Asa-Kosto-QTM, I can push my commit here on this PR.

@qartik looks smoother than the one I wrote. let's do it.


slideToClickedSlide not working in coverflow mode

Swiper Version: Swiper 6.5.0
Platform/Target and Browser Versions: macOS, tested with Firefox 86.0 and Chrome 89.0

What You Did
Set slideToClickedSlide to true in coverflow mode
https://codesandbox.io/s/swiper-effect-coverflow-forked-0rt8h?file=/index.html

Expected Behavior
Clicking on a .swiper-slide element, swiper should change the active slide.
Actual Behavior
Clicking on a .swiper-slide element does not change the active slide. Nothing happens.

Works totally fine in Chrome:
https://user-images.githubusercontent.com/999588/110774438-da92cf80-826e-11eb-896d-27e412396896.mov
In FF I see issues, but it is a FF bug then, it doesn't capture clicks on elements translated backwards


Rounding for long values

Originally reported on Google Code with ID 151
What steps will reproduce the problem?
1. Any dummy service that returns long values such as<PHONE_NUMBER>906464256,<PHONE_NUMBER>802034688

What is the expected output? What do you see instead?
Expected output:<PHONE_NUMBER>802034688. Actual:<PHONE_NUMBER>802034700
Expected output:<PHONE_NUMBER>906464256. Actual:<PHONE_NUMBER>906464300

On what operating system, browser and browser version?
WIn 7 x64, Chrome Version 24.0.1312.56 m

Please provide any additional information below.

Reported by hkpanda on 2013-01-29 04:23:48

 * *Attachment: Advanced Rest Client Rounding.png![Advanced Rest Client Rounding.png](https://storage.googleapis.com/google-code-attachments/chrome-rest-client/issue-151/comment-0/Advanced Rest Client Rounding.png)*
 * *Attachment: jQuery Ajax Showing correct Return value.png![jQuery Ajax Showing correct Return value.png](https://storage.googleapis.com/google-code-attachments/chrome-rest-client/issue-151/comment-0/jQuery Ajax Showing correct Return value.png)*

Fixed in https://github.com/jarrodek/ChromeRestClient/commit/8cb10bce71e751d42709f35affb1292a2d1d4f94


hiccup-dom status?

Hi there!
hiccup-dom looking neat, was missing something like that after jumping cljs -> jsx.
Is the project still to be considered alpha?
Would be a great thing to add that to the README.
Cheers - Victor

Thanks, @vemv - good idea! Alas, I always have a hard time classifying things as alpha, beta etc. where do you draw the line? Personally, I'd say it's a beta. The module is used in at least four projects in production and together they use pretty much all current features and we haven't run into any probs so far. However, a lot more documentation and examples are needed in order for public consumption to pick up. There's also work underway on a support module with customizable components, but not yet on GH (hoping tocheck in the more complete ones on weekend). Another blog post about the more advanced features & usage patterns is in the works too. If you have any other recommendations, please share! :)

Thanks much for the clarification + commit!
And apologies for the absence I had been busy.
Looking forward to try out the package when the opportunity arises!

No worries! :)


[ENH] console::displayTable method

I am working in this issue https://github.com/yiisoft/yii2/issues/1763, i am needing anything to display routes in a table, for example Console::displayTable().
Usage :
Console::displayTable(['URI', 'Action'], [
           ['GET /admin/configuration ', 'ConfigurationController/index '],
           ['POST /admin/configuration ', 'ConfigurationController/update']
], $colspan = '+', $separator = '-', $conector = '|');

// Output :
// +----------------------------------+----------------------------------------+
// | URI                              | Action                                 |
// +----------------------------------+----------------------------------------+
// | 'GET /admin/configuration        | ConfigurationController/index          |
// +-----------------------------------+---------------------------------------+
// | 'Post/admin/configuration         | ConfigurationController/update        |
// +-----------------------------------+---------------------------------------+

I think to this feature is useful in other cases.
what do you think about it? can i send pr with this feature?

http://symfony.com/doc/current/cookbook/console/style.html#content-methods

what do you think about it? can i send pr with this feature?

would be a great addition, go ahead :)

@cebe @lynicidn can you check my pr?

Question.  Why does Yii2 re-implement many of these same features from symfony/console instead of just using it (or at least creating a wrapper for it)?
symfony/console is install most times anyways, since codeception depends on it.

@Sarke we've started nearly the same time Symfony did. Symfony console architecture is very different. You will have totally different style of web / console controllers which is uniform in case of Yii.


Add parity between protobuf specification and json/xml specification

I am writing some functionality within our system which uses protobuf to send data, and wanted to use the protobuf schemas defined here, but the schema is quite different than the json schema.
This means that when I read a CycloneDX bom file and try to serialize it to the protobuf schema, it is completely incompatible. It works when serializing to the Bom struct defined in https://github.com/CycloneDX/cyclonedx-go/blob/v0.7.0/example_test.go, but there is not protobuf equivalent for that Bom struct that I can use to define and transport the data within our system.
Is there any recommendation from the team at CycloneDX on how to deal with this currently, and if not, are there plans to improve the protobuf specification to match the actual Bom files?

Per this thread in Slack, this appears to be an issue with the golang implementation, not the spec.
Closing
If you do find defects in the spec, please let us know.


feat: add github cli instruction to first-time.md

Thank you for your contribution to the KodaDot - One Stop Shop for Polkadot NFTs.
👇 __ Let's make a quick check before the contribution.
PR Type

[ ] Bugfix
[x] Feature
[ ] Refactoring

Context

[x] Closes #6967
[ ] Requires deployment <snek/rubick/worker>

Before submitting pull request, please make sure:

[x] My contribution builds clean without any errors or warnings
[x] I've merged recent default branch -- main and I've no conflicts
[x] I've tried to respect high code quality standards
[x] I've didn't break any original functionality

Optional

[ ] I've tested it at </ksm/collection>
[ ] I've tested PR on mobile
[ ] I've written unit tests 🧪
[ ] I've found edge cases

Did your issue had any of the "$" label on it?

[x] Fill up your DOT address: Payout

Community participation

[x] Are you at KodaDot Ecosystem Telegram?

Screenshot 📸

[ ] My fix has changed something on UI; a screenshot is best to understand changes for others.

Copilot Summary

🤖 Generated by Copilot at e6a1481
Added a new section on how to use GitHub CLI to create pull requests to first-time.md blog post. This change helps first-time contributors follow the project's contribution guidelines and templates.

🤖 Generated by Copilot at e6a1481

first-time.md changed
Learn to use GitHub CLI
Autumn of coding

wait, mobile has a small problem:

maybe use formatting similar to the other parts of the article to avoid it?

pay 20 usd

😍 Perfect, I’ve sent the payout
💵 $20 @ 4.5 USD/DOT ~ 4.444 $DOT
🧗 123PCJXhjb15i6JwVVRGd7KvN2sSNZrtPjr5doJq9oWctoTt
🔗 0xf1a1084823b2c12eae3a2ce6e80012a19a91d19309f9d4b95fe9cd4a624b6a67
🪅 Let’s grab another issue and get rewarded!
🪄 github.com/kodadot/nft-gallery/issues


Update to Parquet 1.10.1

Depends on https://github.com/prestosql/presto-hive-apache/pull/4

cc @ryanrupp


Fixing Cronjob Documentation for 1.6.0

Fixing #931

Current coverage is 77.28% (diff: 100%)

Merging #932 into master will decrease coverage by 0.01%

@@             master       #932   diff @@
==========================================
  Files           131        131
  Lines          7005       7005
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
- Hits           5415       5414     -1
- Misses         1590       1591     +1
  Partials          0          0

Powered by Codecov. Last update bb29fb6...7ef26ec

Thank you.


Change add_on translation to added_on and include placeholder for the date

Very similar to #24550

The correct thing to do is to translate the entire phrase into a single string. The previous translation assumed all languages have a space between the "added on" and the date (and that "added on" comes before the date).
Some languages, like Hebrew, have no space between the "added on" and the date. For example:
added_on=נוסף ב-%s

("added" becomes נוסף, "on" is ב and when paired with a date we use a dash to connect ב with the date)

@yardenshoham please fix the merge conflicts. :tea:

I did, thanks bot


Change SPicklerUnpickler to a type alias

This is so that any "SPickler with Unpickler" will count as
an SPicklerUnpickler.
Alternatives could be:

make all provided picklers in the cake traits implement
SPicklerUnpickler
add implicit conversion from the pickler/unpickler pair
to an SPicklerUnpickler

What problem are we trying to solve here?   Looking at this in isolation, I don't see what it actually helps.

I pointed out the problem on chat. All the "SPickler with Unpickler" in the default cake traits do not extend SPicklerUnpickler, so people can't really use the SPicklerUnpickler type without causing problems for themselves. To see the problem imagine any method foo[T:SPicklerUnpickler].

Updated to simply drop the trait

Cool, LGTM.


Theming tutorial

I've tried to customize generated files and have found it very nontrivial. It will be very nice have some example/tutorial/howtos about adding stuff into templates.
Some simple like adding ribbon for a start.

@sebastian-lenz  this is closed but I still couldn't found a tutorial for theming or an example custom theme?

@harunurhan Here's the updated link to the themes guide:
http://typedoc.org/guides/themes/
You can find the default themes here:
https://github.com/TypeStrong/typedoc-default-themes

In case it's useful to anyone, I wrote a small how-to guide to customize a Typedoc theme.


Generating C++ bindings crashes due to syntax errors among others

Building the C++ bindings on Windows with self-generated as well as default api.json gives back syntax errors. This was done using self-generated api.json's for both stable Godot v3.1 and v3.1.1
as well as using the supplied api.json present in the godot-cpp repository itself.
Branches for godot-cpp and godot-headers were the 3.1 ones.
command (with or without the use_custom_api_file-flag):
scons platform=windows bits=64 generate_bindings=yes use_custom_api_file=yes custom_api_file=../api.json
Crash for self-generated api's:
cl /Fosrc\gen\AudioEffectSpectrumAnalyzer.obj /c src\gen\AudioEffectSpectrumAnalyzer.cpp /TP /nologo /EHsc /D_DEBUG /MDd /I. /Igodot_headers /Iinclude /Iinclude\gen /Iinclude\core AudioEffectSpectrumAnalyzer.cpp c:\users\default\native-test\godot-cpp\include\gen\AudioEffectSpectrumAnalyzer.hpp(35): error C3646: 'get_fft_size': unknown override specifier c:\users\default\native-test\godot-cpp\include\gen\AudioEffectSpectrumAnalyzer.hpp(35): error C2059: syntax error: '(' c:\users\default\native-test\godot-cpp\include\gen\AudioEffectSpectrumAnalyzer.hpp(35): error C2238: unexpected token(s) preceding ';' src\gen\AudioEffectSpectrumAnalyzer.cpp(61): error C2039: 'FFT_Size': is not a member of 'godot::AudioEffectSpectrumAnalyzer' c:\users\default\native-test\godot-cpp\include\gen\AudioEffectSpectrumAnalyzer.hpp(16): note: see declaration of 'godot::AudioEffectSpectrumAnalyzer' src\gen\AudioEffectSpectrumAnalyzer.cpp(61): error C2039: 'get_fft_size': is not a member of 'godot::AudioEffectSpectrumAnalyzer' c:\users\default\native-test\godot-cpp\include\gen\AudioEffectSpectrumAnalyzer.hpp(16): note: see declaration of 'godot::AudioEffectSpectrumAnalyzer' src\gen\AudioEffectSpectrumAnalyzer.cpp(61): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int src\gen\AudioEffectSpectrumAnalyzer.cpp(61): error C2146: syntax error: missing ';' before identifier 'get_fft_size' src\gen\AudioEffectSpectrumAnalyzer.cpp(61): error C2143: syntax error: missing ';' before '{' src\gen\AudioEffectSpectrumAnalyzer.cpp(61): error C2447: '{': missing function header (old-style formal list?) scons: *** [src\gen\AudioEffectSpectrumAnalyzer.obj] Error 2 scons: building terminated because of errors.
Crash when using the default api.json:
src\gen\__init_method_bindings.cpp(683): error C2039: '___init_method_bindings': is not a member of 'godot::AudioEffectEQ6' include\gen\AudioEffectEQ6.hpp(15): note: see declaration of 'godot::AudioEffectEQ6' src\gen\__init_method_bindings.cpp(684): error C2039: '___init_method_bindings': is not a member of 'godot::AudioEffectDistortion' c:\users\piet.bronders\documents\gitkraken\gloominc\godot-sqlite-dev\godot-cpp\include\gen\AudioEffectDistortion.hpp(16): note: see declaration of 'godot::AudioEffectDistortion' src\gen\__init_method_bindings.cpp(685): error C2039: '___init_method_bindings': is not a member of 'godot::AudioEffectHighShelfFilter' include\gen\AudioEffectHighShelfFilter.hpp(15): note: see declaration of 'godot::AudioEffectHighShelfFilter' src\gen\__init_method_bindings.cpp(686): error C2039: '___init_method_bindings': is not a member of 'godot::AudioEffectPanner' include\gen\AudioEffectPanner.hpp(15): note: see declaration of 'godot::AudioEffectPanner' src\gen\__init_method_bindings.cpp(687): error C2039: '___init_method_bindings': is not a member of 'godot::AudioEffectBandPassFilter' include\gen\AudioEffectBandPassFilter.hpp(15): note: see declaration of 'godot::AudioEffectBandPassFilter' src\gen\__init_method_bindings.cpp(688): error C2039: '___init_method_bindings': is not a member of 'godot::AudioEffectNotchFilter' include\gen\AudioEffectNotchFilter.hpp(15): note: see declaration of 'godot::AudioEffectNotchFilter' src\gen\__init_method_bindings.cpp(689): error C2039: '___init_method_bindings': is not a member of 'godot::AudioEffectBandLimitFilter' include\gen\AudioEffectBandLimitFilter.hpp(15): note: see declaration of 'godot::AudioEffectBandLimitFilter' src\gen\__init_method_bindings.cpp(690): error C2039: '___init_method_bindings': is not a member of 'godot::AudioEffectStereoEnhance' include\gen\AudioEffectStereoEnhance.hpp(15): note: see declaration of 'godot::AudioEffectStereoEnhance' src\gen\__init_method_bindings.cpp(691): error C2039: '___init_method_bindings': is not a member of 'godot::AudioEffectEQ10' include\gen\AudioEffectEQ10.hpp(15): note: see declaration of 'godot::AudioEffectEQ10' src\gen\__init_method_bindings.cpp(692): error C2039: '___init_method_bindings': is not a member of 'godot::AudioEffectLowShelfFilter' include\gen\AudioEffectLowShelfFilter.hpp(15): note: see declaration of 'godot::AudioEffectLowShelfFilter' src\gen\__init_method_bindings.cpp(693): error C2039: '___init_method_bindings': is not a member of 'godot::AudioEffectChorus' include\gen\AudioEffectChorus.hpp(15): note: see declaration of 'godot::AudioEffectChorus' src\gen\__init_method_bindings.cpp(694): error C2039: '___init_method_bindings': is not a member of 'godot::AudioEffectDelay' include\gen\AudioEffectDelay.hpp(15): note: see declaration of 'godot::AudioEffectDelay' src\gen\__init_method_bindings.cpp(694): fatal error C1003: error count exceeds 100; stopping compilation scons: *** [src\gen\__init_method_bindings.obj] Error 2 scons: building terminated because of errors.
Seemingly the __init_method_bindings can't be found among other things...
Does anyone know what to do?

Seems that this is an issue of the godot-cpp 3.1 branch as the latest master branch doesn't have this issue.

Godot 3.1 and 3.1.1 don't have fix for AudioEffectSpectrumAnalyzer's enums, so you have to wait for new stable's release.

Oh well...
As this seems to be a known problem then, I'll close the issue.


Add boot call functionality to index.html

@cskaandorp This PR changes the behavior of the emailConfig variable. I wasn't able to test it completely yet. Hopefully, we can look into this together later. First it might be good to change some other things (in other PRs) as well.


Rename ChannelHandlerContext user event argument to make the IDE happy

Rename ChannelHandlerContext#fireUserEventTriggered() argument from event to evt so it matches the ChannelInboundHandler#userEventTriggered() argument's name.
Motivation
When I override ChannelHandler methods I usually (always) refire events myself via
ChannelHandlerContext instead of relieing on calling the super method (say
super.write(ctx, ...)). This works great and the IDE actually auto completes/generates
the right code for it except #fireUserEventTriggered() and #userEventTriggered()
which have a mismatching argument names and I have to manually "intervene".
Modification
Rename ChannelHandlerContext#fireUserEventTriggered() argument from event to evt
to match its handler counterpart.
Result
The IDE's auto generated code will reference the correct variable.
Please see this Screenshot for a visual explanation.

@rkapsi thanks!

Cherry-picked into 4.1 (02850da4808bd64bf131a083ddedb8856189dd20) and 4.0 (17b6ae949a493502ac1c57071dbb325151fa4e4f)


"Copy CSS" and "Copy HTML" buttons don't work

On hover over any of the copy buttons[1] on http://refills.bourbon.io/ I get the following:
Uncaught TypeError: Cannot read property 'style' of undefined
    at p.reposition (all.js:1436)
    at p.setCurrent (all.js:1436)
    at HTMLAnchorElement.d (all.js:1436)

I've yet to look into where this code is generated to troubleshoot further.
[1] e.g. these

We've decided to deprecate this project, as we've not found the time to keep it maintained and updated.


[CLI]: "wandb login" leads to a invalid server address "gttp://wandb.ai/home"

Describe the bug

After installation, I performed the first step wandb login in terminal and got the following error. It seems my login was led to a invalid server address "gttp://wandb.ai/home". Can you help me take a look and see if I need some additional settings on my local machine?
Full traceback is appended here:

File "/data/yavana/anaconda3/envs/Cycle/lib/python3.8/site-packages/wandb/cli/cli.py", line 102, in wrapper
   return func(*args, **kwargs)
File "/data/yavana/anaconda3/envs/Cycle/lib/python3.8/site-packages/wandb/cli/cli.py", line 241, in login
   wandb.setup(settings=login_settings)
 File "/data/yavana/anaconda3/envs/Cycle/lib/python3.8/site-packages/wandb/sdk/wandb_setup.py", line 327, in setup
   ret = _setup(settings=settings)
 File "/data/yavana/anaconda3/envs/Cycle/lib/python3.8/site-packages/wandb/sdk/wandb_setup.py", line 320, in _setup
   wl = _WandbSetup(settings=settings)
 File "/data/yavana/anaconda3/envs/Cycle/lib/python3.8/site-packages/wandb/sdk/wandb_setup.py", line 303, in __init__
   _WandbSetup._instance = _WandbSetup__WandbSetup(settings=settings, pid=pid)
 File "/data/yavana/anaconda3/envs/Cycle/lib/python3.8/site-packages/wandb/sdk/wandb_setup.py", line 108, in __init__
   self._settings = self._settings_setup(settings, self._early_logger)
 File "/data/yavana/anaconda3/envs/Cycle/lib/python3.8/site-packages/wandb/sdk/wandb_setup.py", line 127, in _settings_setup
   s._apply_config_files(_logger=early_logger)
 File "/data/yavana/anaconda3/envs/Cycle/lib/python3.8/site-packages/wandb/sdk/wandb_settings.py", line 1626, in _apply_config_files
   self.update(
 File "/data/yavana/anaconda3/envs/Cycle/lib/python3.8/site-packages/wandb/sdk/wandb_settings.py", line 1502, in update
   self.__dict__[key].update(settings.pop(key), source=source)
 File "/data/yavana/anaconda3/envs/Cycle/lib/python3.8/site-packages/wandb/sdk/wandb_settings.py", line 583, in update
   self._value = self._validate(self._preprocess(value))
 File "/data/yavana/anaconda3/envs/Cycle/lib/python3.8/site-packages/wandb/sdk/wandb_settings.py", line 553, in _validate
   if not v(value):
 File "/data/yavana/anaconda3/envs/Cycle/lib/python3.8/site-packages/wandb/sdk/wandb_settings.py", line 1124, in _validate_base_url
   raise UsageError(
wandb.errors.UsageError: gttp://wandb.ai/home is not a valid server address, did you mean https://api.wandb.ai?

Additional Files
No response
Environment
WandB version: 0.15.4
OS: Ubuntu 20.04
Python version: 3.8
Versions of relevant libraries:
Additional Context
No response

Hi @Szy-Young, there appears to be a configuration in your environment that updates http paths. Running wandb login will result in the following output

Could you setup a new environment and update to latest version of wandb pip install wandb --upgrade

hI @Szy-Young , since we have not heard back from you we are going to close this request. If you would like to re-open the conversation, please let us know!

hi @MBakirWB, many thanks for your kind help!
Now I've successfully discovered the specific configuration about http path in my environment and updated it. "wandb login" works well for me now!

I have encountered the same issue. Could you please advise on how to address it? @MBakirWB @Szy-Young

I have encountered the same issue. Could you please advise on how to address it? @MBakirWB @Szy-Young

I have setup a new conda environment, but it didnot work.


Update release name for PostgreSQL repo

The actual repository name is mirrored as:
http://apt.publishing.service.gov.uk/postgresql/dists/trusty-pgdg/main/binary-amd64/Packages
This updates the apt source to correctly add it.

Merge when green.


Update documentation for 6.0.0-preview6.3

In preview6.3 we introduce a native xaml application object that needs to be registered.

@ocalvo : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@ocalvo : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Per internal discussion with Oscar, this workaround is no longer necessary now that the preview6.4 NuGet packages for WPF and Windows Forms are available. I updated the current aritcle and related configuration guidance in this article with the latest info to use the preview6.4 packages. This also means that the maxversiontested element is no longer necessary in these projects. Closing this PR because the doc updates have been addressed separately.


[$250] IOU - On creating manual request, "receipt required over" error displayed under thumbnail

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: <IP_ADDRESS>
**Reproducible in staging?:**Y
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:

Go to https://staging.new.expensify.com/
Tap fab ---- request money --- Manual
Enter an amount and tap next
Select a user
Tap request money
Tap in newly created request to open IOU detail page
Note "receipt required over" error message displayed under thumbnail.
Tap plus on thumbnail and upload an image
Note even after receipt added error is displayed

Expected Result:
On creating manual request, "receipt required over" error message must not be displayed under thumbnail
Actual Result:
On creating manual request, "receipt required over" error message displayed under thumbnail. Even after adding receipt, error is shown
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/78819774/e99d1b22-f1eb-4e7b-9ca0-a5da2a4c9828
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0166535ae538f22ce3
Upwork Job ID:<PHONE_NUMBER>539268096
Last Price Increase: 2024-01-15

I cannot reproduce this

You have to be in the violations beta to see the violations, and I added several email addresses that belong to Situ to the beta.
This will all improve as we continue implementing violations, so I'm closing this for now


Workaround for mock_open not supporting iteration in Python 3.6

In Python 3.6 mock_open does not support iteration around text
files. This is causing test failures in test_secure_mount.py
which is using mock_open. We workaround the issue by not using
iterator.
For more details see:
https://code-examples.net/en/q/17a1c75
https://bugs.python.org/issue21258
Signed-off-by: Karel Srot<EMAIL_ADDRESS>

There are alternatives:

implement workaround described at https://code-examples.net/en/q/17a1c75 into individual test cases
do not run failing tests on CentOS Stream 8
do not run whole test suite on CentOS Stream 8

I have tried various patches from https://bugs.python.org/issue32933 and https://bugs.python.org/issue21750
but it didn't fix the problem so fixing the issue in mock directly may not be possible, at least in a short term.


Increment version for core releases

Increment package version after release of azure-core

Nice! Do we wait to check this in until after the services release next week?

We don't need to wait.

/check-enforcer override


Async Branch

@orchetect The previous dev created Async to add and support asynchronous functions. I am not entirely sure of it function and purpose. Feel free to delete the branch, if it is not needed. Thank you.

I saw that, but I've already worked through substantial refactors and have started implementing concurrency.

This is actually redundant. Async is concurrency and I opened an issue for that already.


GEODE-8140: scope field in gfsh create RR regions.

* create region now includes a new field called scope to set the scope
* This field is only valid for Replicated Regions.
* describe region for replicated regions will now display the scope too.

Thank you for submitting a contribution to Apache Geode.
In order to streamline the review of the contribution we ask you
to ensure the following steps have been taken:
For all changes:

[ ] Is there a JIRA ticket associated with this PR? Is it referenced in the commit message?

[ ] Has your PR been rebased against the latest commit within the target branch (typically develop)?

[ ] Is your initial contribution a single, squashed commit?

[ ] Does gradlew build run cleanly?

[ ] Have you written or updated unit tests to verify your changes?

[ ] If adding new dependencies to the code, are these dependencies licensed in a way that is compatible for inclusion under ASF 2.0?

Note:
Please ensure that once the PR is submitted, check Concourse for build issues and
submit an update to your PR as soon as possible. If you need help, please send an
email to<EMAIL_ADDRESS>

If I'm reading the code correctly, this feature affects two gfsh commands, create region and describe region. It will impact the user guide, at minimum, in the descriptions of those two commands, and possible in a gfsh usage section. Please address these documentation tasks -- if not in this JIRA/PR pair, then in a separate JIRA/PR pair. Thank you.

this PR appears to be abandoned, can it be closed?

closed due to lack of activity


proton-mail-bridge-np: Add version 2.1.3

Closes ScoopInstaller/Extras#7139

[X] I have read the Contributing Guide.

/verify

Thanks for the PR, but it seems that this app can be installed in the portable way.
The installer is made with AdvancedInstaller, and can be extracted using /extract:(TARGET) command.
I just made a PR in Extras (https://github.com/ScoopInstaller/Extras/pull/8702), would you like to help test the package?

Added in Extras

Thanks for the PR, but it seems that this app can be installed in the portable way. The installer is made with AdvancedInstaller, and can be extracted using /extract:(TARGET) command.
I just made a PR in Extras (ScoopInstaller/Extras#8702), would you like to help test the package?

Everything works as expected. Thanks.


Loss suddenly  increase extremely high in only one step in sentiment notebook

The sentiment ppo training is normal and the loss is decreasing. The reward mean is increasing slowly.
In 40th step, the loss suddenly increase to 1e+10，which cause the reward decrease a lot.
I want to know why the peak is happened.
Every thing is not changed compare to the  sentiment example.

WE have experienced this a few times when the generation is very short (only 1-2 tokens). One way to force the model to always generate tokens is to set the eos_token_id=-1 as done in the T5 example:
generation_kwargs = {"top_k": 0.0, "top_p": 1.0, "do_sample": True, "eos_token_id": -1}

Thanks! @lvwerra
The generation_kwargs has min_length parameter, can this parameter help?
generation_kwargs = {    "min_length": 40}
Another question is why short generated text cause loss compute anomaly.

Haven't had time to investigate this, yet, but it's tracked in #101. Yes, the min_length can lead to negative KL. The difference between this and the eos_token_id=-1 is that with the min_lengh the eos token is suppressed while in the latter it can be generated but the generation just continues.

Closing for now, feel free to re-open if there's an update.


How to label negative samples (without any object)?

Hi everyone,
I have two questions about negative samples, which are defined as images without any objects.
My task involves many negative samples, and I need to determine whether the output is negative or not.
Question 1: Despite related issues before ( #38 ), I still can't figure out how DINO classifies negative samples.
Question 2: If DINO can classify negative samples, how should these samples be labeled ? Should all values be zero (e.g., label = 0, bbox = [0,0,0,0]) ?
Thanks a lot!

I have the same problem, I wonder if you have solved it. If possible, can we discuss it?


Process output refactor

Move process output writer to dedicated class
Write process output to STDERR
Add colored output to process and legend
Move event representation out of the event class itself

Please fix project itself ;)

:+1:

Thank you @SpacePossum.

Thanks @keradus, nice to see this made it :)

I am really interesting in that output-classes (xml, json, etc.) @SpacePossum ;)


Tag support for Kafka output writer, use tag instead of field for _jmx_port influxdb output writer

Support for adding arbitrary tags to the JSON output generated by the Kafka output writer.  Operates in similar fashion to the OpenTSDB output writer.
Also updating InfluxDB writer to set _jmx_port as a tag instead of field, per [open issue #371] (https://github.com/jmxtrans/jmxtrans/issues/371).

[ ]   File: jmxtrans-output/jmxtrans-output-kafka/src/main/java/com/googlecode/jmxtrans/model/output/kafka/KafkaWriter.java:L142-153
<img border=0 src='https://avatars.githubusercontent.com/u/1415765?v=3' height=16 width=16'> We're missing a unit test for this additional feature.

This pull request is now managed with CodeReviewHub. Refresh.

Looks good. Failing unit test should be fixed and an additional test on the Kafka writer should be written.
Would you have time to send the fixes?

:+1:


Added ability to read from the generation meter web interface and pri…

Added ability to read from the generation meter web interface and print to logs
Added logging structure
Added elastic stub

no commit signing, closing.


Only Index page loads while trying to use nextjs with express as an express router

I am trying to use nextjs with express by loading the nextjs app as an express router. I am mostly following the express example in the example folder but when the server starts up, I can only access the index page. All the other pages aren't loaded into the build folder. Not sure why that's happening as everything works perfectly if I load the next app directly rather than loading it as an express router.

[X] I have searched the issues of this repository and believe that this is not a duplicate.

Expected & Current Behavior
I expected all the pages to load normally but that's not happening as only the index page loads
Steps to Reproduce (for bugs)
The project can be access here. It's very similar to the express example in the nextjs repo other than splitting out the rendering into an express router file, which is what I am trying to accomplish
index.js(main project entry)
import express from 'express'
import next from 'next'

import { apiRouter, nextRouter, app } from './server/router'

const start = async () => {
  const server = express()
  await app.prepare()

  server.use('/api', apiRouter)

  server.use('*', nextRouter)

  server.listen(3000, (err) => {
    if (err) throw err
    console.log('> Ready on http://localhost:3000')
  })
}

start()

nextRouter.js
import express from 'express'
import next from 'next'

import conf from '../../client/next.config'

const dev = process.env.NODE_ENV !== 'production'
const app = next({ dev, dir: './client', conf})
const handle = app.getRequestHandler()
const nextRouter = express.Router()

nextRouter.get('*', (req, res) => {
  return handle(req, res)
})

export {
  app,
  nextRouter
}

Context
I am trying to use nextjs with backpackjs and I have been mostly successful. I am trying to separate out the nextjs app rendering into a separate express router file as that would allow me to better define route rendering on the server side
Your Environment

Tech
Version

next
latest

node
8.2.1

OS
macOS 10.12.5

browser
chrome

Based on your code I don't see any issues. But it might be caused by app.prepare being imported from the router module.


refactor: move test network string to shared constant

Minor refactoring to use the same network for all tests.

:tada: This PR is included in version 4.4.1 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


In-guest storage for container images

With peer pods, we currently have no way to share image layers downloaded on the worker node. Consequently, we only support the in-guest image pull approach. This creates some challenges regarding container rootfs storage inside the guest. The challenge has increased manifold with the size of AI runtime and model images running into multiple GBs (10+).
Let's understand how we handle container rootfs storage inside the guest.
For packer-created guest (pod VM) images, the container rootfs storage is the guest's root disk. We mount the /kata-containers folder on the guest's root disk to /run/kata-containers/image during boot.
The container image layers are downloaded and extracted under /run/kata-containers/image/layers. The overlay (rw) layer is under /run/kata-containers/image/overlay
If using an unencrypted root disk, this approach violates the CoCo threat model, as a privileged infra admin can easily tamper with the root disk contents or read the contents of the container image (which you don't want when using an encrypted container image).
For mkosi-created guest images, the guest root disk is read-only and dm-verity protected. The container rootfs storage is the guest memory. Using memory for container rootfs is safest as the memory is encrypted. However this approach introduces a new problem. Guest memory is limited, and downloading and extracting huge container images in memory may not be the best use of the available memory. Also, there is no easy way to automatically determine the guest memory requirement based on the container images used in the pod specs.
So how can we improve the container rootfs storage handling in peer-pods? This issue is to share some ideas and kickstart the discussion.
Proposal-1

Create a LUKS encrypted guest root disk partition with a dynamically generated key during boot
Use the LUKS encrypted guest root disk partition as the container rootfs store

Recently, CDH introduced support for encrypted (ephemeral) block devices. We can explore whether it will be feasible to reuse this: https://github.com/ChengyuZhu6/guest-components/blob/main/confidential-data-hub/docs/use-cases/secure-mount-with-block-device.md.
Proposal-2

For extremely large  (unencrypted) container images, embed the layers in the guest root disk. Ensure the root disk is ro and dm-verity protected
Mount the overlay layer as a tmpfs volume during boot so any writes are on the memory.

cc @mkulke @stevenhorsman @genjuro214 @huoqifeng @snir911

I have a POC for Proposal 1 working.
The ephemeral key is stored in ram (handled pretty much transparently by systemd). The scratch volume is an auto-extending partition. i.e. you can specify at VM launch how big /run/kata-container should be. we have to figure out how to expose that, maybe using a container annotation or a CAA-wide configmap setting.
$ journalctl -u systemd-repart --no-pager
...
Dec 14 13:28:11 fedora systemd-repart[461]:  ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░
Dec 14 13:28:11 fedora systemd-repart[461]:  ├─ root-x86-64-verity
Dec 14 13:28:11 fedora systemd-repart[461]:  ├─ root-x86-64
Dec 14 13:28:11 fedora systemd-repart[461]:  ├─ esp
Dec 14 13:28:11 fedora systemd-repart[461]:  └─ 30-scratch.conf
Dec 14 13:28:11 fedora systemd-repart[461]: Applying changes to /dev/sda.
Dec 14 13:28:11 fedora systemd-repart[461]: Successfully wiped file system signatures from future partition 3.
Dec 14 13:28:11 fedora systemd-repart[461]: Successfully discarded data from future partition 3.
Dec 14 13:28:11 fedora systemd-repart[461]: Successfully discarded gap after partition 3.
Dec 14 13:28:11 fedora systemd-repart[461]: Encrypting future partition 3...
Dec 14 13:28:21 fedora systemd-repart[461]: Successfully encrypted future partition 3.
Dec 14 13:28:21 fedora systemd-repart[461]: Formatting future partition 3.
...
$ journalctl -u<EMAIL_ADDRESS>--no-pager
Dec 14 13:28:25 fedora systemd[1]: Starting<EMAIL_ADDRESS>- Cryptography Setup for scratch...
Dec 14 13:28:25 fedora systemd-cryptsetup[829]: Set cipher aes, mode xts-plain64, key size 512 bits for device /dev/disk/by-label/scratch.
Dec 14 13:28:27 fedora systemd[1]: Finished<EMAIL_ADDRESS>- Cryptography Setup for scratch.

This is on the tenserflow/tensorflow container on a 64gb disk (no gpu, that's too large to pull for me):
$ df -h | grep scratch
/dev/mapper/scratch   63G  2.3G   60G   4% /run/kata-containers

The CVM has 8gb of memory, we can allocate 6GB in a container process:
$ python
Python 3.11.0rc1 (main, Aug 12 2022, 10:02:14) [GCC 11.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> memory = bytearray(6 * 1024 * 1024 * 1024)  # 6GB

$ free -h
               total        used        free      shared  buff/cache   available
Mem:           7.3Gi       6.5Gi       905Mi        16Mi       157Mi       843Mi
Swap:             0B          0B          0B

We can write large-ish files in the container:
$ head -c 10G /dev/urandom > random-file

The scratch space is growing accordingly
# df -h | grep scratch
/dev/mapper/scratch   63G   13G   50G  20% /run/kata-containers

The overhead for handling an encrypted partition is surprisingly small:
$ systemd-analyze critical-chain kata-agent.service
The time when unit became active or started is printed after the "@" character.
The time the unit took to start is printed after the "+" character.

kata-agent.service +3ms
└─basic.target @20.867s
  └─dbus-broker.service @20.941s +261ms
    └─dbus.socket @20.863s
      └─sysinit.target @20.841s
        └─cryptsetup.target @20.839s
<EMAIL_ADDRESS>@18.783s +2.050s
            └─dev-disk-by\x2dlabel-scratch.device @18.770s

The overhead for handling an encrypted partition is surprisingly small:
$ systemd-analyze critical-chain kata-agent.service
The time when unit became active or started is printed after the "@" character.
The time the unit took to start is printed after the "+" character.

kata-agent.service +3ms
└─basic.target @20.867s
  └─dbus-broker.service @20.941s +261ms
    └─dbus.socket @20.863s
      └─sysinit.target @20.841s
        └─cryptsetup.target @20.839s
<EMAIL_ADDRESS>@18.783s +2.050s
            └─dev-disk-by\x2dlabel-scratch.device @18.770s

Wow, this is sweet...


quasar dev -m cordova hangs with icon-factory installed

Hi,
MacOS, "quasar dev -m cordova -T ios".
Sorry for not detailing more because of time constraints. Logging here so it doesn't gets lost. I may get to fixing this if time will allow. Feel free to take a crack at it.
-Razvan

Cordova is on my radar. I’ll look into it.

This is no longer an issue. Dev works as does build. The hang is gone.


The database is read only

hi everyone, I can't start streama 1.8.2 as an ubuntu server service, on 1.8.0 it worked.
if I start from command* it works but not from service, it gives me this error:
Apr 13 18:29:03 streama streama-1.8.2.jar[1745]: INFO streama.Application - Starting Application on streama with PID 1771 (/data/streama/streama-1.8.2.jar started by manhast in /data/streama) Apr 13 18:29:03 streama streama-1.8.2.jar[1745]: DEBUG streama.Application - Running with Spring Boot v1.4.4.RELEASE, Spring v4.3.6.RELEASE Apr 13 18:29:03 streama streama-1.8.2.jar[1745]: INFO streama.Application - The following profiles are active: production Apr 13 18:29:47 streama streama-1.8.2.jar[1745]: Configuring Spring Security Core ... Apr 13 18:29:48 streama streama-1.8.2.jar[1745]: ... finished configuring Spring Security Core Apr 13 18:29:49 streama streama-1.8.2.jar[1745]: Configuring Spring Security LDAP ... Apr 13 18:29:49 streama streama-1.8.2.jar[1745]: ... finished configuring Spring Security LDAP Apr 13 18:31:56 streama streama-1.8.2.jar[1745]: ERROR org.hibernate.engine.jdbc.spi.SqlExceptionHelper - The database is read only; SQL statement: Apr 13 18:31:56 streama streama-1.8.2.jar[1745]: insert into genre (version, api_id, name) values (?, ?, ?) [90097-193] Apr 13 18:31:56 streama streama-1.8.2.jar[1745]: ERROR org.springframework.boot.SpringApplication - Application startup failed Apr 13 18:31:56 streama streama-1.8.2.jar[1745]: org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: could not execute statement; uncategorized SQLException for SQL [n/a]; SQL state [90097]; error code [90097]; The database is read only; SQL statement: Apr 13 18:31:56 streama streama-1.8.2.jar[1745]: insert into genre (version, api_id, name) values (?, ?, ?) [90097-193]; nested exception is org.h2.jdbc.JdbcSQLException: The database is read only; SQL statement: Apr 13 18:31:56 streama streama-1.8.2.jar[1745]: insert into genre (version, api_id, name) values (?, ?, ?) [90097-193] Apr 13 18:31:56 streama streama-1.8.2.jar[1745]:         at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84) Apr 13 18:31:56 streama streama-1.8.2.jar[1745]:         at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) Apr 13 18:31:56 streama streama-1.8.2.jar[1745]:         at org.grails.orm.hibernate.GrailsHibernateTemplate.convertJdbcAccessException(GrailsHibernateTemplate.java:711) Apr 13 18:31:56 streama streama-1.8.2.jar[1745]:         at org.grails.orm.hibernate.GrailsHibernateTemplate.convertHibernateAccessException(GrailsHibernateTemplate.java:699) . . . a long list goes on
Environment Information

Operating System: Ubuntu server 18.04.4 LTS
Streama version: 1.8.2

I applied streama as a service from like this guide: https://dzone.com/articles/run-your-java-application-as-a-service-on-ubuntu
*if I start streama with sudo ./streama-1.8.2.jar , it works
streama is allocated in /data/streama and i have:
media  serviziostreama.sh(this is bash for service)  streama-1.8.2.jar  streama.mv.db  streama.trace.db
serviziostreama.sh:
#!/bin/sh
sudo chmod o+x /usr/bin/java -jar streama-1.8.2.jar

I don't know if you need anything else? thanks for help

maybe this helps https://stackoverflow.com/questions/46842586/tomcat-error-embedded-h2-db-read-only
Seems like the user executing your service  (if you followed the guide, then User=ubuntu) doesnt have write permission on streama.mv.db or  streama.trace.db. Weird tho, why would the 1.8.2 update cause this? 🤔
I'll look at it more, but a screenshot or similar of your permission structure within /data/streama would be helpful

structure: /data/streama/files and folder media
DATA: drwxr-xr-x   3 root root       4096 Apr 11 15:49 data
STREAMA: drwxr-xr-x 3 root root 4096 Apr 13 19:03 streama
drwxr-xr-x 3 root root     4096 Apr 11 16:27 media (folder)
-rwxr-xr-x 1 root root       62 Apr 12 23:27 serviziostreama.sh
-rwxrwxrwx 1 root root 98439076 Apr 12 15:40 streama-1.8.2.jar
-rw-r--r-- 1 root root   172032 Apr 12 23:15 streama.mv.db
-rw-r--r-- 1 root root    36722 Apr 12 23:11 streama.trace.db
now I try to check with the link you gave me.

all right, well the string -rw-r--r-- says, that only the owner (root) may write on this file. So if your server is configured to use ANY other use than root, it wont be able to write to the database.

it works!
Thank you so muchhhhhh

nice :)


[Vue] Allow passing multiple contexts

Q
A

Bug fix?
no

New feature?
no

License
MIT

Currently only one context can be passed and registered.
This way it is not possible to use proper code splitting and the generated Javascript will always contain all Vue components though they might not be needed on the page displayed.
Also in the current version the context is passed with deep: true but this is not used, the component name needs to be passed with the sub directory as a prefix.
This pull requests allows either passing the context as a string
registerVueControllerComponents(require.context('./vue/controllers/', true, /\.vue$/))
or as an array
registerVueControllerComponents([
        require.context('./vue/controllers/common', true, /\.vue$/),
        require.context('./vue/controllers/profile/', true, /\.vue$/),
        require.context('./vue/controllers/search/', true, /\.vue$/)
]);

This would then not be possible or just very hacky with the way require context works.
I personally think that a project should never have 2 components with the same name and besides the component names should always be very explicit and not as generic as just Menu. (https://vuejs.org/style-guide/rules-essential.html)
But if this should be possible, I think we can close the pull request for now?

Can you explain the problem to me a bit more? What exactly is the problem with require.context that means we should close this PR? Thanks :)

Wow, that was a fast reply :) I moved the other reply to the comments while you were replying, sorry for this.
The keys function of require.context returns the components scoped to the path eg ./HeaderMenu.vue and not including the path.
One hacky way I can think of is using default.__file which has the full path to the component
            const component = r(key).default.__file
            vueControllers[component] = r(key).default

but I think the __file property is not exposed by the Typescript interface so would fail in the test
Or passing the contexts in a more explicit way
{
        header: require.context('./vue/controllers/header', true, /\.vue$/),
        search: require.context('./vue/controllers/search', true, /\.vue$/)
}

and then using the object key to generate the component entry

That's an excellent clarification!
I am ok with the fact that we only have access to the short name - e.g. Hello.vue. If you decide to import from 2 different contexts, and you have a Hello.vue from both, then that's your mistake (in probably the 2nd one would take precedence over the first). WDYT?

I think the behavior you describe is the expected one as right now this is already not possible without aliasing an import of the component and using different html tags.
If the script detects more than one component I would throw an error that more than one component with the same name was found.
Unfortunately I am very busy until next week so can not send an updated commit yet.

If the script detects more than one component I would throw an error that more than one component with the same name was found.

That sounds very reasonable 👍

Unfortunately I am very busy until next week so can not send an updated commit yet.

No worries, I look forward to when you have some time :). #482 will likely be merged soon, which will require some changes to your PR. A lot of code changes in #482, but I still think multiple contexts will work fine with those changes.
Cheers!

Hello !
I recently installed symfony ux vue in one of my company project, it is working fine (and it is amazing by the way) but i need to register vue components from different bundles.
Is this PR still relevant today?


Better way of picking region in eco_run

Would be nice to get ahold of the regions shapefile (if there is one) and use the sf package to detect the region.

Update: with the new data, users can view the money dataset which has a region code column and a region name column

Closing this, I'll either find a shapefile and automate the region part or users can check the codes in the money dataset.


display of box properties

Box properties should be displayed using the pred2Label if one is supplied. Only use pred2 if pred2Label is not available. For example, with Alligator sinensis box b0, the timeRetrieve property should be displayed as "timeRetrieve", not the full URI.

The latest version of demo2.html I added around 15 minutes ago should address and fix this issue

Looks good.


feat: added typehint to the trigger method

closes #415

Do we need tsd tests? This is a pretty nice PR. I'm looking forward to having type hints for events.

Do we need tsd tests? This is a pretty nice PR. I'm looking forward to having type hints for events.

What is there to test? The return value doesn't change depending on the argument.

I think there are 3 options:

we do not care about user defined events, remove this support, and change the signature to accept only DomEventName (and we can a tsd test to check that a simple string is not accepted)
we want to keep the support but improve the typechecking, and we might want to split the signature to have two overloads (and maybe deprecate the one with string only?)
we want to keep the support and not change much to the typechecking, and we merge as is (as DomEventName | string is accepted, TS can't really help).

I just realized this is the signature in the base wrapper!
So maybe user defined events are useful when you want to trigger a custom event of a child component (VueWrapper), but not on a DOM event (DomWrapper).
Maybe we should have different trigger signatures in both wrappers then:

one which accepts only DomEventName in DomWrapper
one which accepts strings (or even better, only the events defined in emits by the component) on the VueWrapper

That would be great actually (maybe stick an abstract signature into the base wrapper too).
However, It's a valid thing to do to emit your own event so dom wrapper should probably still be DomeEventName | string no?
As for the vueWrapper I'm not entirely sure how to get the emits: [] type information into the trigger method.

I still think t would be better with overloads:
async trigger(eventString: DomEventName, options?: TriggerOptions): Promise<void>
async trigger(eventString: string, options?: TriggerOptions): Promise<void>
async trigger(eventString: DomEventName | string, options?: TriggerOptions): Promise<void> {

because then TS will pick the first signature when typing trigger('cli and offer click as the autocomplete.
But it will still allow a custom event as the signature falls back to string.
So that would be great for the DOMWrapper (and maybe for both)
For the VueWrapper, I think it's doable to get the emits and fall back to string as well, but I don't know exactly how of the top of my head. It's one of the generic parameters of ComponentPublicInstance. It's not a big deal if we don't do this, I just thought it would be ideal 😉

I personally don't mind what we go for, I have never had a problem with the existing typings, but always good to have better IDE hints. This sounds pretty good to me:

one which accepts only DomEventName in DomWrapper
one which accepts strings (or even better, only the events defined in emits by the component) on the VueWrapper

Are we planning to make any of these changes here, or shall we merge this and think about it more?

Please carefully consider the latest commit https://github.com/vuejs/vue-test-utils-next/pull/551/commits/9bba3822e3ad334a5ae08b9a625852407f081a62
To get the vue triggers to only accept the emits: [] events I had to update couple of tests so it uses the dom wrapper
I imagine this could also be the case in the wild. If I were to add | string to the vue wrapper it seems my ide cannot type hint anymore.
Also The vue wrapper typehinting only seems to work when using the defineComponent otherwise the trigger method accepts anything
Currently in summary:
DOMWrapper takes DomEventName | string
VueWrapper takes the event defined in the emits only if defineComponent is used otherwise anything

I have not kept up with this thread - I was away for a few days.
I will leave the review/decisions to @nandi95 and @cexbrayat 🙏

This is starting to look good now 👍
One last thing: as both trigger methods are the same, can't we move it back to the BaseWrapper?
Once that's solved, I think we should merge and cut a release to give it a try.

I could move the one from dom wrapper, but not the vue wrapper one as the base wrapper doesn't have access to T extends ComponentPublicInstance generic type

@nandi95 for the signatures, I agree. but I'm talking about the body of the methods. You can keep the overloaded signatures in both wrappers and simply do super.trigger(eventString, options); with all the code in the base trigger method no?

Ah! didn't think of that 😅
Once this is merged, I'll create an issue for the modifiers

👍 Did you try pikax suggestion for emits? https://github.com/vuejs/vue-test-utils-next/pull/551/files#r626442106

It was resolved, responded now


Stale transit gateway ID

Hello --
After modifying the network configuration, the transient gateway was reprovisioned, and now I am getting the following error in one of the accounts.  The attachm) ent id is indeed is old.  But where does this stale ID is coming from? (I checked, and it is not the SSM parameter in the XXX account.  Assistance would be greatly appreciated; I hope to force the correct attachment ID to the LZA to complete the update.
AWSAccelerator-NetworkVpcStack-XXX-us-east-2 | 8:27:26 PM | UPDATE_FAILED        | AWS::EC2::TransitGatewayVpcAttachment | CustomersMainVpcTransitGatewayAttachment (CustomersMainVpcTransitGatewayAttachment58A1C7E8) Resource handler returned message: "Transit Gateway Attachment tgw-attach-0c1877472ff48523e was deleted or does not exist. (Service: Ec2, Status Code: 400, Request ID: 66694516-44d6-4e1f-b24c-d7c82a84a282)" (RequestToken: bcccd3b9-08c4-0aef-3800-e5a082b53cb6, HandlerErrorCode: NotFound)
    new TransitGatewayAttachment (/codebuild/output/src2132/src/s3/00/source/packages/@aws-accelerator/constructs/lib/aws-ec2/transit-gateway.ts:326:20)
    \_ TgwResources.createTgwAttachments (/codebuild/output/src2132/src/s3/00/source/packages/@aws-accelerator/accelerator/lib/stacks/network-stacks/network-vpc-stack/tgw-resources.ts:202:24)
    \_ new TgwResources (/codebuild/output/src2132/src/s3/00/source/packages/@aws-accelerator/accelerator/lib/stacks/network-stacks/network-vpc-stack/tgw-resources.ts:58:34)
    \_ new NetworkVpcStack (/codebuild/output/src2132/src/s3/00/source/packages/@aws-accelerator/accelerator/lib/stacks/network-stacks/network-vpc-stack/network-vpc-stack.ts:79:26)
    \_ createNetworkVpcStacks (/codebuild/output/src2132/src/s3/00/source/packages/@aws-accelerator/accelerator/utils/stack-utils.ts:923:22)
    \_ createMultiAccountMultiRegionStacks (/codebuild/output/src2132/src/s3/00/source/packages/@aws-accelerator/accelerator/bin/app.ts:182:29)
    \_ main (/codebuild/output/src2132/src/s3/00/source/packages/@aws-accelerator/accelerator/bin/app.ts:243:5)
    \_ processTicksAndRejections (node:internal/process/task_queues:96:5)
    \_ async /codebuild/output/src2132/src/s3/00/source/packages/@aws-accelerator/accelerator/bin/app.ts:251:5

Hi @bo1984  -
The attachment does not exist anymore.
The change that   caused this was actually in global config, just added
tags:
 - key: "map-migrated"
   value: "migXXXX"

But a while back, Removed and since readded transit gateway attachment:

The vpcTemplate looks like the following now
- name: Customers-templated-VPC
    region: *HOME_REGION
    internetGateway: true
    enableDnsHostnames: true
    enableDnsSupport: true
    deploymentTargets:
      organizationalUnits:
        - Customers
    instanceTenancy: default
    ipamAllocations:
      - ipamPoolName: home-region-customers-pool
        netmaskLength: 18

    routeTables:
      - name: Customers-Private-Attachment-route
        routes:
        - name: TgwRoute
          destination: <IP_ADDRESS>/16 #central vpc
          type: transitGateway
          target: Network-Main-TGW

      - name: Customers-Private-RT-A
        routes:
          - name: TgwRoute
            destination: <IP_ADDRESS>/16 #central vpc
            type: transitGateway
            target: Network-Main-TGW
          - name: S3Gateway
            type: gatewayEndpoint
            target: s3
          - name: DynamoDBGateway
            type: gatewayEndpoint
            target: dynamodb
          - name: NatRoute
            destination: <IP_ADDRESS>/0
            type: natGateway
            target: Nat-Network-Customers-A
      - name: Customers-Private-RT-B
        routes:
          - name: TgwRoute
            destination: <IP_ADDRESS>/16 #central vpc
            type: transitGateway
            target: Network-Main-TGW
          - name: S3Gateway
            type: gatewayEndpoint
            target: s3
          - name: DynamoDBGateway
            type: gatewayEndpoint
            target: dynamodb
          - name: NatRoute
            destination: <IP_ADDRESS>/0
            type: natGateway
            target: Nat-Network-Customers-B
      - name: Customers-Public-RT
        routes:
          - name: IgwRoute
            destination: <IP_ADDRESS>/0
            type: internetGateway
            target: IGW
          - name: TgwRoute
            destination:  <IP_ADDRESS>/16
            type: transitGateway
            target: Network-Main-TGW
          - name: S3Gateway
            type: gatewayEndpoint
            target: s3
          - name: DynamoDBGateway
            type: gatewayEndpoint
            target: dynamodb

    subnets:
      - name: Customers-Public-A
        availabilityZone: a
        routeTable: Customers-Public-RT
        ipamAllocation:
          ipamPoolName: home-region-customers-pool
          netmaskLength: 22
      - name: Customers-Public-B
        availabilityZone: b
        routeTable: Customers-Public-RT
        ipamAllocation:
          ipamPoolName: home-region-customers-pool
          netmaskLength: 22
      - name: Customers-Private-A
        availabilityZone: a
        routeTable: Customers-Private-RT-A
        ipamAllocation:
          ipamPoolName: home-region-customers-pool
          netmaskLength: 20
      - name: Customers-Private-B
        availabilityZone: b
        routeTable: Customers-Private-RT-B
        ipamAllocation:
          ipamPoolName: home-region-customers-pool
          netmaskLength: 20

      - name: Customers-MainTgwAttach-A
        availabilityZone: a
        routeTable: Customers-Private-Attachment-route
        ipamAllocation:
          ipamPoolName: home-region-customers-pool
          netmaskLength: 25
      - name: Customers-MainTgwAttach-B
        availabilityZone: b
        routeTable: Customers-Private-Attachment-route
        ipamAllocation:
          ipamPoolName: home-region-customers-pool
          netmaskLength: 25
    natGateways:
      - name: Nat-Network-Customers-A
        subnet: Customers-Public-A
      - name: Nat-Network-Customers-B
        subnet: Customers-Public-B

    transitGatewayAttachments:
      - name: Customers-Main
        transitGateway:
          name: Network-Main-TGW
          account: Network
        routeTableAssociations:
          - Network-Main-Segregated
        routeTablePropagations:
        #DO NOT PROPOGATE ROUTES, NOT ADDRESSABLE FROM OTHER NETWORKS
           # - Network-Main-Core
           - Network-Main-Shared
        subnets:
          - Customers-MainTgwAttach-A
          - Customers-MainTgwAttach-B
    gatewayEndpoints:
      defaultPolicy: Default
      endpoints:
        - service: s3
        - service: dynamodb

    useCentralEndpoints: false
    resolverRules:


Add new ion token for 1.49 release

This replaces the 6 month beta token (which will be revoked on Oct 1st).
We'll rotate demo tokens so that a new ion token gets added just before every release.
Each demo token is valid for 2 months before it is revoked.

Thanks for the pull request @mramato!

:heavy_check_mark: Signed CLA found.
:grey_question: CHANGES.md was not updated.

If this change updates the public API in any way, please add a bullet point to CHANGES.md.

Reviewers, don't forget to make sure that:

[ ] Cesium Viewer works.
[ ] Works in 2D/CV.
[ ] Works (or fails gracefully) in IE11.

I am a bot who helps you make Cesium awesome! Contributions to my configuration are welcome.
:earth_africa: :earth_americas: :earth_asia:

@mramato Is this process something that should get added to the Release Guide?

@mramato Is this process something that should get added to the Release Guide?

Maybe? I was on the fence about it because it seems bad to wait until the last minute to make this change, but I guess it makes sense.  Also, whomever does the release would need access to the official CesiumJS ion account.

Let's add it now just to check in an make sure it gets done.
I think ideally we should have a "two weeks before the release" anyway, like to check on the status of priority PR's, but that change can be made later.

I don't think doing this 2 weeks before makes much sense either.  Either way the release guide is in the wki and wouldn't be part of this PR anyway.  Let's work on that as a separate effort.

OK, just wanted to make sure it's documented somewhere.


Rework Send-MailMessage cmdlet with MailKit

PR Summary
This PR will fix the underlying architecture of the Send-MailMessage cmdlet using the actively maintained MailKit SMTP client.
Note: System.Net.Mail.SmtpClient receives no further development and only supports STARTTLS secure connections.
Enhancements

Fix #7591: Pipelining into the cmdlet is now supported
SMTPS is now supported

Benefits of MailKit

Modern actively maintained dependency (would fix #10015)
Secure connection upgrades from insecure connections using STARTTLS is supported implicitly (no parameter has to be specified)
Secure connections over SSL/TLS is supported (Gmail, Yahoo, ... see #8987)
MailKit and MimeKit allow easier implementation of missing functionality (see #9191)

Backward compatibility and breaking changes
All parameters are left as they are, BUT

Credential parameter is the only way to provide credentials right now. System.Net.Mail.SmtpClient has the ability to get the default credentials from Windows.
-> Requires change in documentation; X-plat credential provider solution for PowerShell 7 might be the solution to that.

DeliverNotificationOption is implemented, but the functionality should be reviewed as all tested platforms either don't support Delivery Status Notfication (DSN) (e.g. Gmail, GMX, Yahoo) or ignore the setting (Outlook.com - btw the only SMTP server I've came accross which reports DSN capability).
-> Subject to discuss in RFC to deprecate this parameter.

Encoding parameter no longer has any influence on subject/body encoding as this is handled by MimeKit
-> Requires further research, but may be subject to deprecate.

UseSsl is no longer mandatory to allow STARTTLS upgrade from an insecure connection. The parameter is now used to explicitly state the the entire connection should be wrapped in a SSL/TLS connections, also known as SMTPS. -> Using Port 0 (default - automatic port selection will use Port 465 for UseSsl but can of course be overridden with any other port number; If UseSsl is not specified the default port 25 for SMTP is used, although most STARTTLS endpoints use port 587).
-> Critical breaking change for automated scripts; Subject to discuss
Possible workaround: Use another parameter for SMTPS functionality and keep UseSsl parameter for STARTTLS (though it wouldn't have any relevance in the code and would be a non-functional parameter like Encoding, though not breaking any scripts)

Test infrastructure
The Pester tests use netDumbster which only supports insecure connections.
STARTTLS and SMTPS functionality have been tested interactively against:

Outlook.com (STARTTLS 587)
Gmail.com (SMTPS 465)
Yahoo.com (SMTPS 465 and STARTTLS 587)

PR Context
As of #9178 is marked as obsolete and an RFC PR PowerShell/PowerShell-RFC#160 was opened to discuess the future of the cmdlet.
PR Checklist

[x] PR has a meaningful title

Use the present tense and imperative mood when describing your changes

[x] Summarized changes
[x] Make sure all .h, .cpp, .cs, .ps1 and .psm1 files have the correct copyright header
[ ] This PR is ready to merge and is not Work in Progress.

If the PR is work in progress, please add the prefix WIP: or [ WIP ] to the beginning of the title (the WIP bot will keep its status check at Pending while the prefix is present) and remove the prefix when the PR is ready.

Breaking changes

[ ] None
OR
[ ] Experimental feature(s) needed

[ ] Experimental feature name(s):

User-facing changes

[ ] Not Applicable
OR
[x] Documentation needed

[ ] Issue filed:

Testing - New and feature

[ ] N/A or can only be tested interactively
OR
[x] Make sure you've added a new test if existing tests do not effectively test the code changed

Tooling

[ ] I have considered the user experience from a tooling perspective and don't believe tooling will be impacted.
OR
[ ] I have considered the user experience from a tooling perspective and enumerated concerns in the summary. This may include:

Impact on PowerShell Editor Services which is used in the PowerShell extension for VSCode (which runs in a different PS Host).
Impact on Completions (both in the console and in editors) - one of PowerShell's most powerful features.
Impact on PSScriptAnalyzer (which provides linting & formatting in the editor extensions).
Impact on EditorSyntax (which provides syntax highlighting with in VSCode, GitHub, and many other editors).

@TravisEz13 Tests for Remoting are failing for Windows ElevatedPesterTests due to missing dependencies:
New-PSSession : [localhost] Processing data from remote server localhost failed with the following error message: Could not load file or assembly 'MailKit, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=4e064fe7c44a8f1b'. The system cannot find the file specified. For more information, see the about_Remote_Troubleshooting Help topic.
Could you please point me in the right direction how to resolve this dependency issue? Thank you very much.

cc @SteveL-MSFT  about if this is the right place for this

We have a list of Assemblies trusted for remoting here https://github.com/PowerShell/PowerShell-Native/blob/534965cb5f5657a019815216a09de419dc6eec91/src/powershell-native/nativemsh/pwrshcommon/pwrshcommon.cpp#L671
Work with @adityapatwardhan  on how you can progress.  My proposal would be that we publish a pre-release of PowerShell-Native with your changes and you can work off of that.

@PowerShell/powershell-committee reviewed this, we appreciate this work, but ask that this be a module published to PSGallery.  A decision whether this ships in PowerShell will be decided later.

We have concerns about potential for breaking changes (types, functionality)
Size concerns bringing in another assembly
In general, our direction is to have more modules/cmdlets validated via PSGallery before deciding it should be shipped with PowerShell

I don't agree that existing functionality should be moved to a separate module.  It's too bad SMTPClient was deprecated, but this seems like a punishment to the community to remove a builtin feature and put it elsewhere.


Add dependencies to environment.yml

wradlib
pyart
etc.

first batch here: #14

Seems like this is done now. Adding new dependencies when notebooks need them.


Updated location of Eigen sources

Updated Eigen source location to gitlab

Hi @ductng, thanks for this! Just to keep track of use cases, is there some particular reason that this newer Eigen version is preferred? (obviously it's a good idea to update anyway)

Hi @dguest , no there was no particular reason, I just thought the latest should have all the fixes.
I also looked up the locations of the previous versions, if you feel more comfortable with it:
3.2.9 (from the gitlab repo):
https://gitlab.com/libeigen/eigen/-/archive/3.2.9/eigen-3.2.9.tar.bz2 MD5: 545b4e84f2a6e8abd14ca4d86c63c3d8
3.2.10 (which is advertised as the latest 3.2.x version on the webpage):
https://gitlab.com/libeigen/eigen/-/archive/3.2.10/eigen-3.2.10.tar.bz2 MD5: c12a617f4ef12e8eafdf97941c47a7e5
Btw. I have created the MD5 sums myself, I did not find any mentioning of the checksums on the webpage.
Let me know, which version you prefer and I can change the code accordingly for this pull request.

Hi @ductng, I think keeping everything up to date if we can is a good enough reason. Thanks!


[Android|iOS][Accessibility] Input Validation Accessibility issues in Voice Over

All platforms

.NET HTML
.NET WPF
Android
iOS
JavaScript
UWP

Host
Microsoft Teams
Version of SDK
SDK version 2.1.0 (ACv1.3)
Details

When the user goes into the card and selects/shifts focus to an input field, the field label is not called out which results in user being unable to identify what they are supposed to fill in the particular field.

Fix: Call out input label as well while emphasis is on field.

When there are errors on the cards after pressing submit, failure to submit due to errors is not called to users. User also not aware if there are multiple errors on the card.

Fix: Call out "There are errors within the card"

@sowrabh-msft is there guidance around localizing the voice over text here at all to reconcile with the user locale settings?
@paulcam206 / @almedina-ms  is this something that we are aware of with voiceover/narrator?

Adding video links for easy access:
Item #1: Video
Item #2: Video

possible 20.10 if it's P0

@shalinijoshi19 this is a ring blocker on all platforms for us. Hopefully this can be picked up for desktop too?

I am not able to repro this in Edge or Chrome on Windows with Narrator. All the appropriate From the first video (I don't have access to the other two) it looks like the problem happens in WebChat on iOS, is that correct?
I am not able to repro this in Edge or Chrome on Windows with Narrator. All the appropriate aria properties are set, and narration is as expected.
I suspect this is a case of WebChat not being updated to use the latest AC SDK in which a number of accessibility bugs were fixed.

@shiladityasaha we have split the bug you've filed, as it had two separate issues. The second part has been moved to #4912 (and related #4913 ). So, I think you are referring to that second part for desktop?
This issue now only tracks the first part, which should only be on mobile. Please confirm if that's correct.

For Android, likely fixed by #4930. Need to test.

Pending validation for Android - @golddove ;
iOS in code review- @jwoo-msft

@shalinijoshi19 This issue will be taken together with #4912

Validated on Android. Works on v1.3/Tests/InputValidationTestCard.json as expected (reads the associated label for each EditText).


Add the workspace/foldingRange/refresh method

Relating to #1306
server.ts has onFoldingRanges already which I've left alone for backwards compatibility but this PR also adds languages.foldingRange.on which should be identical.

@c-claeys very nice work. Thanks a lot. One minor thing. Can you mark the @since 3.18 as proposed as well. This will allow me to ship it  with 3.17.4 as a preview.
And are you working on a PR for the spec as well?

Added the proposed tag.

And are you working on a PR for the spec as well?

Yeah it should be out for review shortly. I figured I'd ensure this goes smoothly first.


[guide] anyone give me a guide to translate mxnet model to caffe model

please give some tip let me know where to start

You can get weight from python, then you'd better ask help from caffe developer how to pack into caffe proto.

@antinucleon thx


Using HTTP on HTTPS endpoint returns a 200 Status

I have a simple server setup to use a JKS keystore in Java 8:
import fi.iki.elonen.NanoHTTPD;

import javax.net.ssl.KeyManagerFactory;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.security.KeyStore;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.UnrecoverableKeyException;
import java.security.cert.CertificateException;

public class MySimpleServer extends NanoHTTPD {
    public static void main(String[] args) {
        try {
            int port = Integer.parseInt(args[0]);
            String keystoreFile = args[1];
            String keystorePassword = args[2];

            KeyStore keyStore = KeyStore.getInstance("JKS");
            try (InputStream in = new FileInputStream(keystoreFile)) {
                keyStore.load(in, null);
            }
            KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
            keyManagerFactory.init(keyStore, keystorePassword.toCharArray());

            MySimpleServer server = new MySimpleServer(port);
            server.makeSecure(NanoHTTPD.makeSSLSocketFactory(keyStore, keyManagerFactory), null);
            server.start(NanoHTTPD.SOCKET_READ_TIMEOUT, false);

        } catch (IOException e) {
            System.err.println("Couldn't start server:\n" + e);
        } catch (NumberFormatException e) {
            System.err.println("Invalid port specified: " + args[0]);
        } catch (CertificateException | KeyStoreException | UnrecoverableKeyException | NoSuchAlgorithmException e) {
            System.err.println("HTTPS certificate error:\n " + e);
        }
    }

    public MySimpleServer(int port) {
        super(port);
    }

    @Override
    public Response serve(IHTTPSession session) {
        if (!session.getUri().equalsIgnoreCase("/info"))
            return newFixedLengthResponse(Response.Status.NOT_FOUND, "text/plain", "Resource not found.");

        if (!session.getMethod().equals(Method.GET))
            return newFixedLengthResponse(Response.Status.METHOD_NOT_ALLOWED, "text/plain", "Method not allowed.");

        String response = "{\"working\":{}}";
        return newFixedLengthResponse(NanoHTTPD.Response.Status.OK, "application/json", response);
    }
}

MySimpleServer is a class that extends NanoHTTPD and has a single endpoint /info that returns some json.
This works fine and if I go to https://localhost:8443/info, I get the expected result.
However, if I go to anything on the http protocol (ie, http://localhost:8443/<anything>), Postman tells me I get a 200 OK response, which isn't great.
So that is the gist of my issue, I have spent some time trying to figure out if I can fix it or why it is doing what it is doing, so please disregard everything below this point if its wrong or confusing.
Debugging through the code, I get to line 782 in NanoHTTPD.java which catches this exception
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?

and then does this
throw new SocketException("NanoHttpd Shutdown");

Which then goes down to line 859 and throws it again.
Outside the execute method, in the run method, there is this interesting bit of code
catch (Exception e) {
    // When the socket is closed by the client,
    // we throw our own SocketException
    // to break the "keep alive" loop above. If
    // the exception was anything other
    // than the expected SocketException OR a
    // SocketTimeoutException, print the
    // stacktrace
    if (!(e instanceof SocketException && "NanoHttpd Shutdown".equals(e.getMessage())) && !(e instanceof SocketTimeoutException)) {
    NanoHTTPD.LOG.log(Level.FINE, "Communication with the client broken", e);
}

This is false (as its a SocketException with the message NanoHtttpd Shutdown) and therefore doesn't log anything.
That's as far as I've gotten.

Should be better now, can you try it with the current snapshot?

You'll have to excuse my inexperience, I'm using maven to get 2.2.0 in intellij,
I've tried changing the version to SNAPSHOT, 2.3-SNAPSHOT and 2.3.0 (based ont he 2.3.0 milestone).
If I put in LATEST I get version 2.2.1 (I was using  2.2.0 before), is this the correct version I should be trying? Because it still has the problem.

Also, I believe this to be a bug not an enhancement, returning a 200 OK response when the server raises an exception is broken.

to use a snapshot see https://github.com/NanoHttpd/nanohttpd#living-on-the-edge
(you need the snapshot repository entry in your pom)

Using the snapshot repository and version  LATEST (which resolves to 2.2.1-SNAPSHOT), I still have the issue, doing a GET to http://localhost:8443 using postman returns a 200 OK status code.
The debug output is
Dec 23, 2015 10:17:12 AM fi.iki.elonen.NanoHTTPD$Response send
SEVERE: Could not send response to the client
javax.net.ssl.SSLException: Connection has been shutdown: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
	at sun.security.ssl.SSLSocketImpl.checkEOF(SSLSocketImpl.java:1541)
	at sun.security.ssl.SSLSocketImpl.checkWrite(SSLSocketImpl.java:1553)
	at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:71)
	at fi.iki.elonen.NanoHTTPD$Response.sendBody(NanoHTTPD.java:1543)
	at fi.iki.elonen.NanoHTTPD$Response.sendBodyWithCorrectEncoding(NanoHTTPD.java:1516)
	at fi.iki.elonen.NanoHTTPD$Response.sendBodyWithCorrectTransferAndEncoding(NanoHTTPD.java:1506)
	at fi.iki.elonen.NanoHTTPD$Response.send(NanoHTTPD.java:1474)
	at fi.iki.elonen.NanoHTTPD$HTTPSession.execute(NanoHTTPD.java:878)
	at fi.iki.elonen.NanoHTTPD$ClientHandler.run(NanoHTTPD.java:191)
	at java.lang.Thread.run(Thread.java:745)
Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
	at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:710)
	at sun.security.ssl.InputRecord.read(InputRecord.java:527)
	at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
	at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
	at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:928)
	at sun.security.ssl.AppInputStream.read(AppInputStream.java:105)
	at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
	at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
	at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
	at fi.iki.elonen.NanoHTTPD$HTTPSession.execute(NanoHTTPD.java:787)
	... 2 more

the log is as expected but the client should not get an  200/OK, could you please adapt the unit test fi.iki.elonen.HttpSSLServerTest.testHttpOnSSLConnection() so that it fails with an 200/OK
thanks!

I have checked out the code and made the following change, however I wanted to check if I am right...
    @Test
    public void testHttpOnSSLConnection() throws IOException {
        DefaultHttpClient httpclient = new DefaultHttpClient();
        HttpTrace httphead = new HttpTrace("http://localhost:9043/index.html");
        HttpResponse response = httpclient.execute(httphead);

        Assert.assertEquals(response.getStatusLine().getStatusCode(), NanoHTTPD.Response.Status.INTERNAL_ERROR);
    }

Currently, the test is expecting a ClientProtocolException, which has an inner exception ProtocolException with the message The server failed to respond with a valid HTTP response
Is the exception it was expecting before correct? In which case I'm not sure why I'm getting a 200/OK in postman in my application.

the exception is correct, because the data comming back ober the ssl connection can not be interpreted as a http response (for http it's just rubbish). maybe the postman try's to be "inteligent" and detects it as a SSL response and ......
So I think the problem is in the postman.

moved this to after the refactoring (if it can be fixed earlier I will move this back), it is just no show stopper for 2.3.0


pkg: return directly without ifs where possible

- What I did
I've modified the packages under pkg/ to return directly where that's possible.
- Description for the changelog
pkg: return directly without ifs where possible

LGTM


wrong HTTP header in downloading file

first, sorry for my poor english. :(
I wanted to download a file with original name by only id string.
so I followed official download doc and found out that if send GET request to download URL, recieved with 302, the response header has Content-Disposition and it contains file name (!!!).
but I found two bugs.

double escaped name

example : Content-Disposition: attachment; filename*=UTF-8''%5b%25EC%2588%2598%25EC%25A0%2595%5d%2520vol.5.mp3

I think it's minor but... it actually means [수정] vol.5.mp3 in korean. but as you can try (online URL decoder/encoder), example is double escaped.
I guess that this caused by name saving mechanism. but if Onedrive should send single escaped name, it would be very convenient to non-ASCII people...

totally wrong name

example : Content-Disposition: attachment; filename*=UTF-8''%252f..txt

I this it's major bug. original name is %2f%2e.txt. I know this is very rare case, but server treat the name as non-ASCII despite full ASCII string. and even though it could consider as non-ASCII, server gives totally wrong string.
finally I decided to get name and download URL from getting metadata. but I wish these were fixed.
thanks!

Hi @isac322 - are you still seeing this behavior. I tried to repro and was unable, and there's definitely been some work going on in this area that could have inadvertently fixed the issue. Let me know if you're still having problems and we can try to drill in further.

thanks @ificator ! but nothing has changed. :(

Thanks for following up. I have a few questions to help try and narrow down what's going on:

Is this for the Consumer or Business endpoint? I'm guessing consumer but I want to make sure.
Can you confirm the name in the metadata is name=[수정] vol.5.mp3?
A dump of the request / response headers would allow me to make sure my repro attempt was equivalent. You do not have to provide the actual URL being hit, the headers will be sufficient.

consumer

Response of Getting metadata of item request contains "name":"[\uc218\uc815] vol.5.mp3" (which is same as [수정] vol.5.mp3 if decoded (online Unicode converter))

first request

GET https://api.onedrive.com/v1.0/drive/items/{Item-ID}/content HTTP/1.1
host: api.onedrive.com
accept-encoding: gzip
authorization: bearer EwAYA61DBAAUGCCXc8wU....

first response

HTTP/1.1 302 Found
Content-Length: 0
Location: https://public-bn1305.files.1drv.com/y3mptgQ3ZRYDAQz2PVfKL5hIfaGlNDV7C2JANIklzqntZKxoGBN2DXINAkT4fQ8sZPYoRXjUH3Tx-H13UByIcBEiC2uCacXPO25boiWtRcWcLRhJ7hPVPJA-iH0jRmOenHkEIeUInryLVNFlcHN5kIGyrbqjOcMP-OTsF6HDlJ0k0aToLxf3gsG96Drr_antZvjpRRXw5cfm9SSuCyYkH9gOpiJkBWtLGQ1TXIP5r0WY8dtCkpHI3npOnXz1zU83iYw/[%EC%88%98%EC%A0%95]%20vol.5.mp3
Server: Microsoft-IIS/8.5
P3P: CP="BUS CUR CONo FIN IVDo ONL OUR PHY SAMo TELo"
X-MSNSERVER: BN2BAP98358D9CC
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-AsmVersion: UNKNOWN; <IP_ADDRESS>
X-MSEdge-Ref: Ref A: 373ED98A746C4E77B15270685D378BB8 Ref B: B97A886E9182DF299ABE55CBD18E61F9 Ref C: Fri Dec 16 01:48:53 2016 PST
Date: Fri, 16 Dec 2016 09:48:52 GMT

second request

GET https://public-bn1305.files.1drv.com/y3mIEW5v_Wcmm33qIyr9wI8BcL_2xmNyrMrQdM0i11Ae1d8Xd9_BAKuT4-nIXKoGZCPxMtYfKKy4GP-k1wbjxylerA9rc1GGKe_U6bp4NgaXRAYyDmGJ-YsGdsWCy_LQm3MwFw721O-HoPUgSM5vnM0FU2GYv0zq_Gi4Ev5dK0ZekDrLqPvm6MjFIVICitJCpRu56-KDNhCMajpH-sFYMcYGlTYtSy-rOPewh3wwFOZlMOaungvAN68C2RJ83j-cd2S/%5B%25EC%2588%2598%25EC%25A0%2595%5D%2520vol.5.mp3 HTTP/1.1
host: public-bn1305.files.1drv.com
accept-encoding: gzip

second response

HTTP/1.1 200 OK
Cache-Control: public
Content-Length: 59254808
Content-Type: audio/mpeg
Content-Location: https://public-bn1305.files.1drv.com/y3m__vhVBcNYu3QbHC3v8WKZpfGOnZaIVKr67cXLkzAceY0vsfTSYQcicYorR0Oh4eDTcqHSVanfVkcowjtxg3_XW6Bei8lY4DCr-VsOPDV4TDXs7MIRrRCz1fFSjQiutvCQx7D0HlfZUN0Hd2R8S3gjhQeqotpeNXeHTfBK2fGWDX1z0aKh_vDVq0VaJLheaGUaHueTwkhujO9gUGhJnnpfNV5TeJjsvMWZnBlObCTI7Y
Expires: Thu, 16 Mar 2017 09:59:26 GMT
Last-Modified: Sun, 24 Jul 2016 04:25:59 GMT
Accept-Ranges: bytes
ETag: aRDRGRDgyQ0E2REY5NkE0NyEyNDk5OC4x
Server: Microsoft-IIS/8.5
P3P: CP="BUS CUR CONo FIN IVDo ONL OUR PHY SAMo TELo"
X-MSNSERVER: BN2BAP64238E8BE
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-SqlDataOrigin: S
CTag: aYzpENEZEODJDQTZERjk2QTQ3ITI0OTk4LjI1Nw
X-PreAuthInfo: rv;poba;
Content-Disposition: attachment; filename*=UTF-8''%5b%25EC%2588%2598%25EC%25A0%2595%5d%2520vol.5.mp3
X-Content-Type-Options: nosniff
X-StreamOrigin: X
X-AsmVersion: UNKNOWN; <IP_ADDRESS>
X-MSEdge-Ref: Ref A: D0094296968F482C9822EF32CD394651 Ref B: 0D99FE6BF2058BE0806F072AA7FF1DCC Ref C: Fri Dec 16 01:59:26 2016 PST
Date: Fri, 16 Dec 2016 09:59:26 GMT

I have a question. In first response, [ and ] are included in Location. is that valid URL? I just wondered because JAVA's URI api throws Exception while constructing instance with the URL.

Thanks @isac322! I'll investigate further today and see what I find

Actually I can see something strange already. The location header return from the request against /content was:

https://public-bn1305.files.1drv.com/y3mptgQ3ZRYDAQz2PVfKL5hIfaGlNDV7C2JANIklzqntZKxoGBN2DXINAkT4fQ8sZPYoRXjUH3Tx-H13UByIcBEiC2uCacXPO25boiWtRcWcLRhJ7hPVPJA-iH0jRmOenHkEIeUInryLVNFlcHN5kIGyrbqjOcMP-OTsF6HDlJ0k0aToLxf3gsG96Drr_antZvjpRRXw5cfm9SSuCyYkH9gOpiJkBWtLGQ1TXIP5r0WY8dtCkpHI3npOnXz1zU83iYw/[수정] vol.5.mp3

While the request made to fetch the binary data was to:

https://public-bn1305.files.1drv.com/y3mIEW5v_Wcmm33qIyr9wI8BcL_2xmNyrMrQdM0i11Ae1d8Xd9_BAKuT4-nIXKoGZCPxMtYfKKy4GP-k1wbjxylerA9rc1GGKe_U6bp4NgaXRAYyDmGJ-YsGdsWCy_LQm3MwFw721O-HoPUgSM5vnM0FU2GYv0zq_Gi4Ev5dK0ZekDrLqPvm6MjFIVICitJCpRu56-KDNhCMajpH-sFYMcYGlTYtSy-rOPewh3wwFOZlMOaungvAN68C2RJ83j-cd2S/[%25EC%2588%2598%25EC%25A0%2595]%2520vol.5.mp3

So it looks like something on the client is encoding the URL while handling the redirect. Can you check your code and see if you can spot what's doing that?

Oh the difference actually because I translated.
I'm using netty and netty's default http request/response decoder. And I menually redirected (extract the Location from first response and send another request to it) because netty doesn't support auto redirect. In that extract processing, because the Location contains invalid character [, ] (according to java URI api) I had to encode that part. That's why those two are different.
By the way, I think you could right. Let me check raw request/response not filtered by any library.

You are right @ificator !

first request command

curl -vH "authorization: bearer EwAYA61DBAAUGCCXc8wU..." https://api.onedrive.com/v1.0/drive/items/{Item-ID}/content

first response

HTTP/1.1 302 Found
Content-Length: 0
Location: https://public-bn1305.files.1drv.com/y3mZ66G6CWqJfk-P-bmracBJpFHLDH9UHeD9J4dFKxgcyENwDvc28mJyYW1TYQ0y9rDIZCHtmrrsLqBaCawKao1_7nmTThNnv2oDKQSllODgsLihL3JMe3NdB7EWeoj1c86zKlacdLPjcqYpAC4xQqmDkpiOUixMUwkXowBzzfMx5FEZ0EE64Vz6pvHkOXliCH8jRHj_m72xchAe1Ps3ac1t462pWoZBwgwSB8sFKMBurqe5Hd4ZhBMql4qf2fNrciM/[%EC%88%98%EC%A0%95]%20vol.5.mp3
Server: Microsoft-IIS/8.5
P3P: CP="BUS CUR CONo FIN IVDo ONL OUR PHY SAMo TELo"
X-MSNSERVER: BN2BAP00130A298
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-AsmVersion: UNKNOWN; <IP_ADDRESS>
X-MSEdge-Ref: Ref A: 9AC17865F0F44CDEAE31D5564E1C1AB7 Ref B: F3334BA5711E499FFBF9CD682D09A7AE Ref C: Fri Dec 16 11:46:19 2016 PST
Date: Fri, 16 Dec 2016 19:46:19 GMT

second request command

replace [ to %5B, ] to %5D from Location of first request

curl -vH "accept-encoding: gzip" https://public-bn1305.files.1drv.com/y3mVi8GNYO0615urrD5h6mXfb6w6HdFp9mo4kRJKgFcgCPeNvrLnDa0ekpV3p3lekz8FYzBQt4D7KIFmfg9W7aqEBqVSBAtcP14klx4siwyendLwx4OFvr0clvcjrs55k-sel8DlbNh7KcU_9YZDwhZ30R4HXOlkonYeuBDDT9TOIqx35aYTnK8ca3Z_GR2AAnNCGu7NIFvotygkbFu_4IxW7b7W0oXva_GAXLATqJ2DGFcFCyOESjIZM2UoJAiBZ3P/%5B%EC%88%98%EC%A0%95%5D%20vol.5.mp3

second response

HTTP/1.1 200 OK
Cache-Control: public
Content-Length: 59254808
Content-Type: audio/mpeg
Content-Location: https://public-bn1305.files.1drv.com/y3mo2qeq7UEKYd1sCweaNc1HsYuZF8sVANAiVTqDDIP9dl_Veg9R-7Jst17pBSPxav_sJElheoaL6uwNgbCRGOLNj9-NjJUoJPi24UqYrmvrltu2NTY1tmD49nfSdRAJkHwEyoqmFNwqvDsbChGbquF52hlf1JBC9xQatYN9ffTlQ0LXpt68C5XQBLvP-AqasSLwMvQM6JXuCmOpRtSOwCGSVszrk8qXnc51eiv9MzYsLw
Expires: Thu, 16 Mar 2017 19:44:25 GMT
Last-Modified: Sun, 24 Jul 2016 04:25:59 GMT
Accept-Ranges: bytes
ETag: aRDRGRDgyQ0E2REY5NkE0NyEyNDk5OC4x
Server: Microsoft-IIS/8.5
P3P: CP="BUS CUR CONo FIN IVDo ONL OUR PHY SAMo TELo"
X-MSNSERVER: BN2BAP00130A298
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-SqlDataOrigin: S
CTag: aYzpENEZEODJDQTZERjk2QTQ3ITI0OTk4LjI1Nw
X-PreAuthInfo: rv;poba;
Content-Disposition: attachment; filename*=UTF-8''%5b%ec%88%98%ec%a0%95%5d%20vol.5.mp3
X-Content-Type-Options: nosniff
X-StreamOrigin: X
X-AsmVersion: UNKNOWN; <IP_ADDRESS>
Date: Fri, 16 Dec 2016 19:44:24 GMT

%5b%ec%88%98%ec%a0%95%5d%20vol.5.mp3 in Content-Disposition is [수정] vol.5.mp3 and it's encoded only once.
Sorry @ificator double encoded string is my fault.. TT

But the second bug that I firstly mentioned ("2. totally wrong name") is still going on.

first request command

the item that named %2f%2e.txt

curl -vH "authorization: bearer EwAYA61DBAAUGCCXc8wU..." https://api.onedrive.com/v1.0/drive/items/{Item-ID}/content

first response

HTTP/1.1 302 Found
Content-Length: 0
Location: https://public-bn1305.files.1drv.com/y3miLlUqjxEyL_nMKj6hMv4LQEQQC1ZSeDVlmcaVRV496W6tQmQRbPpHgQzhtgtpD3KETDo5MoJyavcvOIlyeq1xVIJ5tG-W6clOpkPDUWtyFce_EyJMiIf02uJTVXAtz9PRA4_9F43JkOVBSP3b1_9oy7CV3KZuvwLWVGDVQ47Pt3EQkwbHUhQVR-38Lb8myeH0g45blBWLYXzL2V9j3zZIkYN0inEE4JUO6eHmeAzq6SxA_D1B77Zcxug6YQlAqcw/%2f..txt
Server: Microsoft-IIS/8.5
P3P: CP="BUS CUR CONo FIN IVDo ONL OUR PHY SAMo TELo"
X-MSNSERVER: BN2BAPC8903DF2B
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-AsmVersion: UNKNOWN; <IP_ADDRESS>
X-MSEdge-Ref: Ref A: 42C98B2FA1CA45B99525AEB91D9CE65B Ref B: B1C1A8F2D99ECE6127A305C95BAE5E46 Ref C: Fri Dec 16 12:03:46 2016 PST
Date: Fri, 16 Dec 2016 20:03:45 GMT

second request command

curl -v https://public-bn1305.files.1drv.com/y3mU3WWXk3WuB56bmMayuqFt7iAN2-Ku4zdkf2MOSB6Lc5nMy4wEfgWae-QWzz9G_EKRYKB0Pbc4CcjGcstPKhjz1Ja6-bHmkH86PLajq4rf7QL18xs8iuej4Uq4aRHEIL7W4NLsw2a_Ai3F7wMDfXlYlS_iipkuJmrIh9DTyL7XmcIRG-u-AM4dRkhC0B8TVwLATop8P9sIAa36ZtP1d7hiEzo2FlCyZyLGSiIxh_rFjrkYbF8iqacdY8HDm9b2dsk/%2f..txt

second response

HTTP/1.1 200 OK
Cache-Control: public
Content-Type: text/plain
Content-Location: https://public-bn1305.files.1drv.com/y3mNmuFFeoitGMtilBrK_Fgnn5ijOYoREsnxWldig9tCbCdoVF-_IGexJXLhNtYz2N2_7uo9ulgeR8_C7kJvcL-2nws4lheapLVr0Emz0JzUqwe-OAO18fI4L51khpj418mhOXVaqkt2fc4ejgXfxj2vyHiQsYwqzna1pGlIZ0OeY7m7F8PFdgzLoHuUWUvi_WEVrNouRys5uGSX324ClLC5DYufQjRySe_EMhEE_-d6A8
Expires: Thu, 16 Mar 2017 19:46:55 GMT
Last-Modified: Sat, 03 Dec 2016 14:34:01 GMT
Accept-Ranges: bytes
ETag: aRDRGRDgyQ0E2REY5NkE0NyEyNjAzNy4y
Server: Microsoft-IIS/8.5
P3P: CP="BUS CUR CONo FIN IVDo ONL OUR PHY SAMo TELo"
X-MSNSERVER: BN2BAP4C5955DD3
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-SqlDataOrigin: S
CTag: aYzpENEZEODJDQTZERjk2QTQ3ITI2MDM3LjI1OA
X-PreAuthInfo: rv;poba;
Content-Disposition: attachment; filename="..txt"
X-Content-Type-Options: nosniff
X-StreamOrigin: X
X-AsmVersion: UNKNOWN; <IP_ADDRESS>
Date: Fri, 16 Dec 2016 19:46:54 GMT
Content-Length: 6

Content-Disposition of second response represent that filename="..txt"

Great news for your first issue!
Also for the second - I can reproduce that one :). We'll work on a fix.

I just wanted to quickly follow up to let you know that the fix is checked in, but due to the holiday season it'll take longer than normal to ship. I'll update this thread once it's out.

This fix has now been deployed. Please reactivate the issue if you're still seeing issues.


Added optional property activeOpacity

zekchan - thanks for this. Any chance I could get you to move the defaultValue (0.92) down to the bottom where other default values are defined (for consistency and slightly cleaner code)?


direct scanout on invisible workspaces

Description
I enable direct scanout (misc:no_direct_scanout=false) to improve battery life when playing videos with mpv in fullscreen. This works well for me. But direct scanout is stopped when I switch to other workspaces, as shown in Hyprland log and intel_gpu_top, and my battery drains noticeably faster.
Is it possible to keep scanout on for the fullscreened mpv when it is invisible? Or, more generally, is it possible to inhibit some rendering activities for the fullscreened mpv in this case?

direct scanout can only work when there is a single surface visible on screen.

A bit letdown, but understandable.
Regardless of direct scanout, I have the following observation.
When mpv is moved to an off-screen workspace while still playing, either fullscreened or not, Sway (Gnome as well) stops its render activity, (intel_gpu_top shows 'Render/3D' load is down to almost zero), but Hyprland still keeps render work load (not much different from when mpv is visible).
So I guess there might be some room for optimization in this case.
Thanks for creating Hyprland.


Remove HipChat

Fix #1930
Signed-off-by: Julien Pivotto<EMAIL_ADDRESS>

you'd need to regenerate the front-end code (e.g. make assets). I'm fine with including this in v0.21 since we've almost reached the EOL date.


assert download, f'ShapeNet Images are not found, and download is set to False'

Hi,
Once i've installed kaolin pkg (without errors), and try to import kaolin, i get the following assert error:

My Setup:

conda env w/ Python 3.5.6
tensorRT 5.0

Do you have any idea to solve this problem?
Thanks for your great work!

Hi, please upgrade to Python 3.6 or above. I see you're using Anaconda, you can upgrade your python version by running conda install python=3.6.
F-strings (used in that line) are not supported in python < 3.5.

I could not make it work with Python 3.7. So make sure that you environment is using python 3.6.9


Add PinMAME mech component.

This PR adds a Unity component that allows easily configuring a PinMAME custom mech handler.
It works by implementing a IMechHandler which contains a OnMechUpdate event that is triggered when new mech updated are received by PinMAME.
So we have a component that produces speed and positions. In order for the cannon to rotate, we need to convert this into an angle, and then rotate the geometry. I will document this more in detail in the main repo's PR, but in short there is a new CannonComponent that takes in the mech data and outputs the angle to the already existing RotatorComponent.
TODO

[ ] Create inspectors
[ ] Create icons
[ ] Finish documentation (shots with UI and some adaptions)

Sorry, there were many whitespace changes due to my IDE trimming lines on save. Check this diff to ignore them.

@freezy Just watching the dev of this and am amazed. Love it. Curious, how are you finding out about these pinmame specifications?

Also, the most mechs we can support is 5, so thats why I added _pinMame.GetMaxMechs().
Not sure if you can implement this some how. _pinMame.SetMech will throw an exception if trying to set mech no >= 5.
https://github.com/vpinball/pinmame-dotnet/blob/master/src/PinMame/PinMame.cs#L722
https://github.com/vpinball/pinmame/blob/master/src/libpinmame/libpinmame.cpp#L809

@jsm174 Yes, that's what I wanted to do actually but finally forgot.
@xantari I spent a couple of evenings looking at table scripts, PinMAME code and forum posts. Also @jsm174 took the time to explain a few things :)