fix: fix near-contract-standards event emission

Pre-flight checklist

[V] I have read the Contributing Guidelines on pull requests.
[V] Commit messages follow the conventional commits spec
[ ] If this is a code change: I have written unit tests.
[ ] If this is a new API or substantial change: the PR has an accompanying issue (closes #0000) and the maintainers have approved on my working plan.

Motivation
fungible token, non fungible token contracts in near-contract-standards folder doesn't emit nep141 & nep171 event.

It seems that the code found in the near-contract-standards folder attempts to directly convert near-sdk-rs contracts to TypeScript. However, since it disregards Rust's serde tags and related annotations, there is an issue when emitting events through this contract code, as it doesn't properly track them as nep141 or nep171 events.

Test Plan

Related issues/PRs

@nujabes403 ci task failed, pls update it if you have time

Hi @nujabes403, I create a MR which contains your commits: https://github.com/near/near-sdk-js/pull/384

the related MR merged, so I will close this MR

the related MR merged, so I will close this MR

Great, thanks!


How can I prevent duplicate entries

Several devices appear twice (see image)

I have added the following as an exclude filter
- name: entity_id
value: plus
operator: contains
What I would like to see (and will add a feature request for) is to have an exclude by integration option. The auto-entities card has the ability for it.


feat: add Ark: Survival Ascended support

Closes #194.
WIP, description to be filled with stuff eventually.

Ah, i see the issue its due to the tls feature. If epic only works with tls should we exclude it unless tls is enabled as otherwise its just a bad request?

I think we include it by default for the cli, maybe not for the lib. Although it is very easy to disable default features. I left it disabled originally because very few of the current games use http.

We should also probably feature gate creating EpicApis to tls only: because we use from_url instead of new we don't get the type system checking that Https exists and it just falls back to http.

We should also probably feature gate creating EpicApis to tls only

this is what i was thinking.
Although im not too clued up on the http impl yet, I have only briefly looked

I was looking and possibly some form of http builder would help (Probs best for another pr), it would clean up some stuff and we can structure it where it helps us define it in a way that make it easy on our side.
eg
       let client = HttpClientBuilder::new()
            .protocol(HttpProtocol::Https)
            .base_url(EPIC_API_ENDPOINT)
            .timeout_settings(timeout_settings)
            .build()?;

client can then be passed up and defined with headers and path etc

Seems like we can't do cfg stuff on phf?

Proc macro thing I think. Looks like we can either add a build script that works around it or stop using phf for games and use something like HashMap (or any other map type that doesn't need codegen to be built).

I've decided to merge this without adding asa to the games definitions, as the problem of conditional entries for PHF should be decided in another discussion.


lagging

I using aws s3 link
So lag
how to fix
I tested other player is fine
https://github.com/media-kit/media-kit/assets/112307287/d92babc3-1701-425c-b431-ecf3c3ad6f23

I using aws s3 link So lag how to fix I tested other player is fine
video_2023-12-20_13-55-53.mp4

are you sure its not an internet problem? looks like it from my side, please check same link with other players and let us know,

Now working
Changed buffer size 32MB to 5MB


fix fix miss used global variables in index testcases

Proposed changes
Issue Number: close #xxx

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run buildall

run buildall

run buildall


Feature/msvc discovery

It's finished !! Now, it fully support MSVC from 9.0 to 14.0, and all theses standalone distributions:

Microsoft Visual C++ Compiler for Python 2.7 (MSVC++9.0, x86, amd64)
Microsoft Windows SDK 6.1 (MSVC++9.0, x86, x64, ia64)
Microsoft Windows SDK 7.0 (MSVC++9.0, x86, x64, ia64)
Microsoft Windows SDK 7.1 (MSVC++10.0, x86, x64, ia64)
Microsoft Visual C++ Build Tools 2015 (MSVC++14.0, x86, x64, arm)

Next step:

Code review.
Test it with some MSVC versions/Architectures/Python versions combinations.

I have also some comments on the global implementation:

I think msvc9_find_vcvarsall can now be deleted.
Maybe rename the file, by example "msvc_support.py".

Looks like tests are failing due to import six. Since Setuptools doesn't have dependencies, you have to import six from the extern package. Search for six in the package for other examples.

Fixed Six import. But still fail, but with "No environment variables set' error, because tests are on Linux.

We can work out the issues with the tests on Linux later. Thanks for sharing this. I will review as time permits.


Create djot-writer.lua

restoring model custom writer example, with upgrading code snippet.
The current (06/01/2023) documentation link on pandoc's users' guide points to a broken link for an example of a custom writer; while the custom writers link provides a code snippet to upgrade old style custom writers (< v3.0) into new style ones without examples. This file restores the example of an old style custom writer with an incorporated code snippet to upgrade it.

How does this relate to the scripts in https://github.com/jgm/djot.lua ? The pandoc end may be what needs updating.

Thanks!

How does this relate to the scripts in https://github.com/jgm/djot.lua ? The pandoc end may be what needs updating.

Vaguely related: /djot describes the general aim of the project, and /djot.lua  the original lua implementation, which has been displaced by /djot.js; here I simply proposed to restore the upgraded old style writer as the original example of a custom filter in lua. It might help to migrate older markdown files to the new djot format.

Oh, I missed that this was djot and not djot.lua. Well, I don't think this really belongs here.
We could think about replacing djot-writer.lua in the jgm/djot.lua repository with this one (which just adds a few things).
And then changing the link from the pandoc documentation to point to that repo...

Oh, I missed that this was djot and not djot.lua. Well, I don't think this really belongs here. We could think about replacing djot-writer.lua in the jgm/djot.lua repository with this one (which just adds a few things). And then changing the link from the pandoc documentation to point to that repo...

I for once think this is not a good idea: iiuc, djot is a moving target; maybe renaming it to oldjot-writer.lua and placing somewhere in either tree would be enough; but pointing to the right repo would be certainly welcome.
You decide.

Sorry, I don't follow. Which part of what I said isn't a good idea?  And which trees do you mean by "either tree"?

I meant to say that merging this lua filter with the main djot-writer.lua in /djot.lua seemed to me like a bad idea, for I fear it may break something in the /djot.lua program, and it may continuously fall way behind the upgrades on /jdot.js, which you say is the main development branch.
So I thought renaming this filter (to oldjot-writer.lua for instance) and installing it in any other project (what I meant by "tree", as if each project/branch was a directory tree containing many files), such as /djot would avoid the versioning conflict. In any event, /pandoc/manual.txt needs updating.
My apologies.

de hecho, creo que el lugar correcto para oldjot-writer.lua sería en pandoc/data, (i.e. jgm/pandoc/tree/main/data), junto a creole.lua.


Added Elasticsearch Curator chart

This PR adds the elasticsearch curator Helm chart.
After installing this chart, a CronJob will be created which runs the curator according to a schedule and configuration you can set.

/assign @gianrubio

/lgtm

/ok-to-test

/lgtm too

/assign @linki

/assign

/lgtm
/ok-to-test

/lgtm

PullRequest got merged!  Thanks for the reviews @gianrubio @timstoop @unguiculus


Add support for elasticsearch 6.5

Hi,
It would be great to add support for Elasticsearch 6.5 !

Fess 12.4 will be released in this week...

Great news !
Fabien

Le 18 nov. 2018 à 03:39, Shinsuke Sugaya<EMAIL_ADDRESS>a écrit :
Fess 12.4 will be released in this week...
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.


Words and helpers

The Pull Request resolves Issue #51
Description:

Added helper script which generates JSON files given the starting letter/s of a word
Added words starting from Y.

PS: Its a simple script to get started and there is obviously scope for adding more functionality and  improvements.

Hey @hegde5
Thanks for this contribution. Can you add all the parts of speech in the helper and update the PR?

@Showndarya No problem at all! :+1:  As far as I could find, datamuse API didn't return other parts of speech for some reason. So, I added only those which I know for sure exists in the API.

@hegde5
Okay cool! I'll merge it for now. Thanks!


Debug is adding extra white space/carriage returns

Issue Type: Bug
I can't figure out why I'm getting extra white space between my output. If I code for a space with " ", I get a line break. No idea how to find a solution.
VS Code version: Code 1.33.1 (51b0b28134d51361cf996d2f0a1c698247aeabd8, 2019-04-11T08:22:55.268Z)
OS version: Darwin x64 18.5.0

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-4650U CPU @ 1.70GHz (4 x 1700)

GPU Status
2d_canvas: enabledchecker_imaging: disabled_offflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: enabledrasterization: enabledsurface_synchronization: enabled_onvideo_decode: enabledwebgl: enabledwebgl2: enabled

Load (avg)
1, 2, 2

Memory (System)
8.00GB (0.15GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (3)

Extension
Author (truncated)
Version

anaconda-extension-pack
ms-
1.0.1

python
ms-
2019.4.12954

vscode-yaml
red
0.4.0

Please give exact steps for how to reproduce this issue. What language, what is a code snippet that shows the issue, etc.

It's python. I've attached a screen shot, but any sort of code that should
produce ouptut like:
1
2
3
Produces output instead like:
1
2
3
(With an extra return)
On Thu, May 16, 2019 at 12:55 PM Rob Lourens<EMAIL_ADDRESS>wrote:

Please give exact steps for how to reproduce this issue. What language,
what is a code snippet that shows the issue, etc.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/vscode/issues/73689?email_source=notifications&email_token=AHHRK57GD3D6DE27WGZXS7DPVWGYDA5CNFSM4HMSVBS2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODVSNMOA#issuecomment-493147704,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AHHRK53ACMOLOPZ36IJTRRTPVWGYDANCNFSM4HMSVBSQ
.

Please file this on the python extension's repo. Also you need to use github.com to include your screenshot, I can't see an email attachment.

It would be helpful if you could provide me a link to the python extension's repo.

https://github.com/microsoft/vscode-python/issues

Thanks!


Didn't get how to add/change emoji

It's a doc issue or I'm dumb 😄

This is currently not clearly documented. I will try to improve that in the future.
The support for arbitrarily changing emojis is limited. The wwwassets/scripts/data.js file contains the full layout configuration.
This file is generated by the PHP scripts in the res folder (PHP is used because it doesn't require any additional dependency for these small scripts).
The config.json file defines how the file is generated, see config.schema.json for the exact layout.
The image files (svg) are stored in wwwassets/img. They are copied from the twemoji repo. They are used in function of the defined fallback rules.
Now, concretely:

To update to a newer emoji version, update the numbers in forceVersion or remove the section to use the latest version (iirc, launching the build script will show you the latest versions)
To add an arbitrary emoji, add it in the addon section, the group+subgroup pair must be present somewhere in the keyboards list otherwise you won't see it
To remove a subgroup, remove it in the keyboards section
Eventually, you will have to update the fallback rules and add newer twemoji images

After that, you have to rebuild the data file, see the README in the res folder.

Thank you!
I'll do that tomorrow.


[WIP] Enhancement and Fixes in GPU Tsit5

Hi,
Wrt the previous discussion on speed-up issues with DiffEqGPU API with the new GPU solvers, I set to bridge the performance gap (46 µs to 10.5 ms 😱) between raw GPU solutions and using the Ensemble DiffEqGPU API.  (The u0 and p hcat was only needed by previous solving techniques).
Pros: It is now faster than EnsembleGPUArray and EnsembleCPUArray.
Before:
julia> @benchmark sol = solve(monteprob, GPUTsit5(), EnsembleGPUAutonomous(), trajectories = 1000,
                              adaptive = false, dt = dt)

BenchmarkTools.Trial: 386 samples with 1 evaluation.
 Range (min … max):   8.805 ms … 40.638 ms  ┊ GC (min … max): 0.00% … 23.29%
 Time  (median):     10.538 ms              ┊ GC (median):    0.00%
 Time  (mean ± σ):   12.962 ms ±  5.690 ms  ┊ GC (mean ± σ):  8.49% ± 10.88%

  ▄▂▁▄█▄▂ ▁                                    ▁
  █████████▇▇▇▇▄▇▇▇▄▄▄▆▁▅▁▁▁▁▅▄▁▅▄▁▁▁▁▁▄▆▅▁▄▅▆▇██▅▅▆▁▁▄▁▁▄▅▁▅ ▆
  8.81 ms      Histogram: log(frequency) by time      30.3 ms <

 Memory estimate: 13.86 MiB, allocs estimate: 88075.

After:
julia> @benchmark sol = solve(monteprob, GPUTsit5(), EnsembleGPUAutonomous(), trajectories = 1000,
                              adaptive = false, dt = dt)
BenchmarkTools.Trial: 497 samples with 1 evaluation.
 Range (min … max):   7.095 ms … 74.585 ms  ┊ GC (min … max): 0.00% … 24.81%
 Time  (median):      8.108 ms              ┊ GC (median):    0.00%
 Time  (mean ± σ):   10.051 ms ±  7.866 ms  ┊ GC (mean ± σ):  8.66% ±  9.01%

  ▂█▅ ▁
  ███▄█▅▁▁▁▄▁▁▁▁▁▁▁▄▁▄▁▁▁▁▁▁▄▁▁▄▁▁▁▁▁▄▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▅▄▁▄▅▁▇▇ ▆
  7.09 ms      Histogram: log(frequency) by time      43.3 ms <

 Memory estimate: 5.88 MiB, allocs estimate: 76811.

With some profiling and tracking allocations (attached in the next comment), I was able to lower these issues:

[x] remove u0 and p build from EnsembleGPUAutonomous
[ ] Search for better alternatives for building u0 and p in EnsembleGPUArray
[ ] Check for @assert necessity
[ ] Transforming GPU us arrays to CPU arrays
[ ] Possibility of building Vector{ODESolution} with better speed and lower allocations

@ChrisRackauckas, have a look.

I am not able to upload `.mem` file here, I can share it on slack, maybe.

Do we need these assertion checks here?: https://github.com/SciML/DiffEqGPU.jl/blob/master/src/DiffEqGPU.jl#L311-L312

Why does that allocate? Is there a way using Fix2 to make it not allocate?

Made a fix with Fix2. It is now reduced to 2 allocations.
Some speed-ups as well:
Before:
julia> @benchmark sol = solve(monteprob, GPUTsit5(), EnsembleGPUAutonomous(), trajectories = 1000,
                              adaptive = false, dt = dt)
BenchmarkTools.Trial: 497 samples with 1 evaluation.
 Range (min … max):   7.095 ms … 74.585 ms  ┊ GC (min … max): 0.00% … 24.81%
 Time  (median):      8.108 ms              ┊ GC (median):    0.00%
 Time  (mean ± σ):   10.051 ms ±  7.866 ms  ┊ GC (mean ± σ):  8.66% ±  9.01%

  ▂█▅ ▁
  ███▄█▅▁▁▁▄▁▁▁▁▁▁▁▄▁▄▁▁▁▁▁▁▄▁▁▄▁▁▁▁▁▄▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▅▄▁▄▅▁▇▇ ▆
  7.09 ms      Histogram: log(frequency) by time      43.3 ms <

 Memory estimate: 5.88 MiB, allocs estimate: 76811.

After:
julia> @benchmark solve(monteprob, GPUTsit5(), EnsembleGPUAutonomous(), trajectories = 1000,
                   adaptive = false, dt = 0.1f0)
BenchmarkTools.Trial: 3789 samples with 1 evaluation.
 Range (min … max):  802.894 μs … 44.251 ms  ┊ GC (min … max):  0.00% … 61.15%
 Time  (median):     875.493 μs              ┊ GC (median):     0.00%
 Time  (mean ± σ):     1.311 ms ±  2.630 ms  ┊ GC (mean ± σ):  26.85% ± 14.05%

  █▄▂▁
  ████▅▄▃▁▁▁▁▁▁▁▁▁▁▁▁▃▁▁▁▁▃▁▁▁▁▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▄█▇▆▄▅▁▄ █
  803 μs        Histogram: log(frequency) by time      12.7 ms <

 Memory estimate: 3.86 MiB, allocs estimate: 34400.

We are now 43x faster than EnsembleGPUArray and 14x faster than EnsembleCPUArray .
Moreover, now the current implementation supports parameter parallelism across u0 as well instead of p.

And what's the overhead vs the most direct form, and the current reason for the overhead?

And what's the overhead vs. the most direct form, and the current reason for the overhead?

The major overhead is converting back to CPU Arrays, probs creation and finally building the solution.

Is it okay to merge?

Answer the remaining question.

Cross-posted from slack:

And what’s the overhead vs. the most direct form, and the current reason for the overhead?

The reason for this overhead  (converting to CPU Arrays) is to provide users to access something like sol[i].u[j] where i,j are some indexes. It would cause scalar indexing on ts,us  which are CUArrays.
I wanted to ask whether should we leave it user to convert to CPU Arrays? I missed that thing to discuss.
The probs  creation seems to be necessary, but maybe could be pulled out of DiffEqGPU? Currently, it was done to adhere to DiffEqGPU way of handling it.  This was not coming in the previous benchmarks because ps was being built separately and passed to the vectorized_solve .
And sorry for some sloppiness which may had caused any discomfort.

no

what does cu(probs) actually do? What dispatch is that hitting?


Checks added for attribute "for" in label and for attribute "name" in input element

Types of changes

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

Description

Added check whether the "for" attribute is provided a non-empty value in a .
Added check whether the "for" attribute is provided a non-empty value in a <input>.

Resolves: #7
Screenshot(s)

Checklist:

[x] I have thoroughly read the CONTRIBUTING guidelines.
[x] I understand my pull request will be thoroughly reviewed at high detail.
[x] I understand the work in my pull request will only be available in the next version release of Checka11y.css and not in the current version release.
[x] I confirm the work in this pull request is valid according to my findings and is not something for anything personal.
[ ] I have updated the README where and if applicable (still put an x if you have considered this but thought there was nothing to add or modify).
[x] I have added myself to the contributors section in package.json (still put an x if you have considered this but decided not to add yourself).
[x] I have checked I have not committed any accidental files.
[ ] I have tested all the main modern browsers (I.e. Chrome, Firefox, Edge, Safari - please leave this unchecked if there were any browsers listed you could not test and list them in the help section with details why you couldn't test that browser)
[ ] All new and existing a11y checks still work correctly (compare your local test/index.html to the test/index.html in the master branch).

Help

I could not test in Safari because I do not have access to an Apple device.

Thanks for looking at this! It looks really good, however my concern with this approach is that it will show a false negative. I.e The below is valid, but looks like it will be shown as an error:

  First name
  <input type="text" />

Similar with the name attribute, I'm sure you can use id instead of name (but maybe my research is skewed)? So, the following should be also valid:
First name
<input id="firstname" />

I'd like to hear your thoughts 😊

I got your point. I think it requires a lot more thought. The current solution will show errors for individual  and <input>, which is not what we would like to happen. What we really want is related  and <input> to have the mentioned attributes.
Now, these can be related in two ways:

     <input/>

  <input/>

Using CSS we can determine whether this relation exists, like this:

    label > input {
    }

    label + input {
    }

But, then the CSS will be applied to the <input> element. And since <input> doesn't support content property, the error will not be displayed properly.
We need to somehow apply the CSS to the required label after determining the relation. I researched it, but couldn't any feasible solution. I would love to hear if there is any solution.
Also, the case you mentioned is valid, however, enforcing these rules would guarantee that screenreaders work as desired. Using id won't work however, for and name, work in conjunction and is also the recommended way.
Please share your thoughts about it.

@danspratling would be interesting to hear your thoughts on this 🙂 I'm happy to have half a feature, but I'd like to avoid false errors if we can.
I think @Being-Maverick is going somewhere good with their previous comment and are on the right lines.

First, just want to clear up that only 1. is valid @Being-Maverick. 2. is invalid markup as the for attribute is missing on the label. An input directly following a label is never associated with that label.
Anyway, with that out of the way... it seems like what I said before was wrong (sorry about that!).
for attributes should be associated with id not name. Name is only used for form submissions
You can see that in action here if you click the text, rather than the checkboxes. I also checked this with mac voiceover and neither input1 or input3 are read out.
https://codepen.io/dan_spratling/pen/MWyNvOB
Input4 however, is read out correctly and we definitely don't want to be creating false errors.
However I'm not sure the best way to approach this in css either.
By it's very nature, css is unable to navigate backwards up the dom tree, so once you're inside an element you cannot get back out. I'm not sure the best solution here, as this means we can never check if an input exists inside a label while removing the error from the parent. I feel like this is a problem only javascript would be able to fix.
Which leaves us with 2 options.

We put this on the backburner and maybe consider it if we ever device to use javascript in the project leaving a glaring hole in the project which we know is one of the most common accessibility issues
We opinionate the library, and error when labels are not marked up with a for attribute, regardless if an alternate method exists (by nesting).

I would strongly recommend that we go for option 2 here, even if it throws up false errors. Maybe we could add a note to the readme and a very clear explanation in the error description and allow users to turn it off somehow if they wish.
@jackdomleo7 what are your thoughts?

@danspratling CSS has a pseudo-class selector that would allow doing this: :has()... Unfortunately, it is not supported by any major browser yet, but if/when it does, it would be helpful for detecting many issues:
label:not(:has(input)) {
  /* selects a label that doesn't have a label inside */
}

section:not(:has(h1,h2,h3,h4,h5,h6)) {
  /* selects the sections that don't have a heading */
}

...

@danspratling I'm not sure how I feel about sometimes throwing false errors (I'm not sure if it will be more helpful or less helpful to the user depending on the feature). But we can certainly try it!
I really do like @alvaromontoro's approach too!

I agree with the approach suggested by @alvaromontoro. But then as I mentioned before, we can't set content property on the input tag.
Here is an example:
https://codepen.io/charchitkapoor/pen/BazBBBm
Therefore, we can't display an error if the input is missing one of the attributes.
I would suggest rather than displaying the current issue as an error, we should display it as a warning. We should check for for attribute at the label and then display a suitable warning. In the future, where :has() selector is supported then we can upgrade
it to check for input as well.
What are your thoughts?

You could combine this approach with what @cat-street suggests on this other issue, and style the input that has an error. Here is a demo: https://codepen.io/alvaromontoro/pen/abNegmy
One problem with this approach is that if the input was styled, it loses some of the styles if it's correct, as you can see on the demo:

Yeah, this seems good. Let's hear what @jackdomleo7 has to say.

This is an interesting one, so all I'm going to ask is, will it show any errors for anything that isn't an error? 🙂 I'd rather have a tool that doesn't include a feature due to limitations, than one that shows errors for a few scenarios and falsely shows them for other scenarios. It's perfectly ok for this tool to not pick up everything because there are other backup tools for that such as editor plugins and tools like Chrome's Lighthouse. 🙂

I don't think the selectors above would mark false positives, but I could be wrong.
If an <input> does not have an id, it cannot be target of a for in a ; which would be Ok if it the <input> had the attributes aria-label and/or aria-labelledby. That's why the selector is for <input>s that don't have id, aria-label, and aria-labelledby (all three missing). Then, for the <input>s that fall in that category, we remove the error if they are inside a  (as in that case it would be Ok too).

Let me doing some more manual testing when I get chance. 😊


Days not lining up correctly after changing DayButton size

"react-native-calendar": "https://github.com/christopherdro/react-native-calendar"
Changed calendar width to 0.7 of screen and dayButton to 1/7 of that. The top row is jutting out...
iOS

Android

      calendarContainer: {
        width: calendarWidth
      },
      dayButton: {
        width: calendarWidth/7
      }

Found a solution to this bug:
dayButtonFiller: {
     width: calendarWidth/7
},

Have you tried with the latest release?


Develop

By submitting this pull request, I confirm the following:
Please fill in any appropriate checkboxes, e.g: [X]

[ ]   I have read and understood the contributors guide, as well as this entire template.
[ ]   I have made only one major change in my proposed changes.
[ ]   I have commented my proposed changes within the code.
[ ]   I have tested my proposed changes, and have included unit tests where possible.
[ ]   I am willing to help maintain this change if there are issues with it later.
[ ]   I give this submission freely and claim no ownership.

What does this PR aim to accomplish?:
A detailed description, screenshots (if necessary), as well as links to any relevant GitHub issues
How does this PR accomplish the above?:
A detailed description (such as a changelog) and screenshots (if necessary) of the implemented fix
What documentation changes (if any) are needed to support this PR?:
A detailed list of any necessary changes

You must follow the template instructions. Failure to do so will result in your pull request being closed.
Please respect that UMU is developed by volunteers, IE: me, who can only reply in their spare time.

Codecov Report

Merging #28 into master will decrease coverage by 15.17%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           master      #28       +/-   ##
===========================================
- Coverage   68.17%   53.01%   -15.16%
===========================================
  Files           1        1
  Lines         666      666
===========================================
- Hits          454      353      -101
- Misses        212      313      +101

Impacted Files
Coverage Δ

Travis/Scripts/travis_usmu.sh
53.01% <0%> (-15.16%)
:arrow_down:

Continue to review full report at Codecov.

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


Add last_territory_count to the Turn output

When generating slow games provide a little bit of entertainment for
those that might be watching.
Init Message received from player 6, randombox_v3.
Turn 1
Turn 2
Turn 3
Turn 4
Turn 5
Turn 6
Turn 7
Turn 8
Turn 9
Turn 10
..
Init Message received from player 6, randombox_v3.
Turn 1 | 2 2 2 2 2 1
Turn 2 | 2 2 2 2 2 2
Turn 3 | 2 2 2 2 2 2
Turn 4 | 3 3 3 3 2 2
Turn 5 | 3 3 3 3 2 2
Turn 6 | 3 3 3 3 2 3
Turn 7 | 3 3 3 3 3 3
Turn 8 | 3 3 3 3 3 3
Turn 9 | 3 3 3 3 3 3
Turn 10 | 3 3 3 3 3 3
Turn 11 | 4 3 4 4 3 3
...

Agree that adding realtime metrics would be good. However, this: Turn 9 | 3 3 3 3 3 3 is a little cryptic. First time users won't know what those numbers mean.

I played around with a bunch of different outputs, showing the user names, various stats etc, but because the data is scrolling they needed to be horizontally very close to be of any real use.  I could change it to something like the following to be more user friendly of course.
Turn 1, Territory: 2 2


Create temporary branches with random names

When branches are used in an ETL job (for example, when Apache Spark processes the data), the name of the branch does not matter, so the client code could be simplified if LakeFS supported creating temporary branches with random names.
Suggested API
In the REST API, it can be implemented as a POST request to the /repositories/{repository}/branches/temp endpoint with only the source in the request body. In the response, the API can return the randomly generated branch name.
Benefits

Users don't need to write code generating unique branch names for temporary branches that exist for a short time.

Disadvantages

It is a corner case. I am not sure whether you want to support such niche requirements.

Thanks @mikulskibartosz! That's an interesting idea. Since we already have a basic Spark client, I'm thinking perhaps this logic belongs on the client side:
val tmpBranch = lakefs.createTempBranchFrom('my-repo', 'main')
if this type of API makes sense, it can be done completely on the client side, utilizing existing APIs. Would love your thoughts on this approach.

It is perfect!

It is perfect!

Closing: IIUC this is resolved.  Please re-open (and accept my apologies) if https://github.com/treeverse/lakeFS/issues/1833#issuecomment-828681074 is insufficient for you.


Shadowing dependencies // Problem with scope 'implementation' vs. 'compile'

With gradle 7, compile dependency scope was deprecated/removed. Proper replacement should be implementation scope.
However dependencies added with implementation scope are added "after" ideaIC, which means all "shadowed" dependencies like apache velocity will not work correctly.
Sample repository: example
Dependency lists are in scope*.txt files
Changing scope implementation to compile will fix dependency issues and build ends with success.

I also ran into this issue in an IntelliJ Platform Plugin project when I tried to use the org.jetbrains.kotlin.plugin.serialization Gradle plugin.
Despite explicitly adding a dependency of org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.2, I would always get the following error at compile time:

Your current kotlinx.serialization core version is too low, while current Kotlin compiler plugin 1.6.10 requires at least 1.0-M1-SNAPSHOT. Please update your kotlinx.serialization runtime dependency.

I was able to get this working by using the workaround @Pushpavel provided, though I'm not sure if this is a good long-term solution.

With the next release, the ResolutionStrategy.SortOrder.DEPENDENCY_FIRST resolution strategy will be enabled by default for compileClasspath and testCompileClasspath configurations.
It'll be possible to disable it, in terms of any potential troubles, with the build feature flag:
org.jetbrains.intellij.buildFeature.useDependencyFirstResolutionStrategy = false

Fix delivered with 1.7.0 isn't correct. Another one delivered with #1060 – see comments for more details.

I'm still getting this issue with plugin version v1.10.0. The above DEPENDENCY_FIRST workaround doesn't fix it, and the comments in #1060 suggest this issue has been fixed in 1.8.0, but it seems like it's still an issue. Here's the configuration I'm using, v1.5.2 is the latest version I'm able to work with, anything later fails with the kotlinx.serialization version issue


Add Travis CI config

I think you'll (@mafintosh) need to enable this on the Travis web interface too. This'll make sure all incoming PRs pass linting and tests on a bunch of versions of node.

enabled :)


Kanban board set-up

Kanban board for
In this milestone we have :
Used a Kanban board with filled-in tasks that have categories and time estimations to assign work in groups.
We Assigned Students A @jfoyarzo  and B @Miliyonayalew since we are a group of 2 Micronauts removed all Student C's tasks.
Link:
Kanban Board

STATUS: APPROVED  ✔

Hi @jfoyarzo ,
Your project is complete! Great job for nailing it right on the first attempt 🥇.Congratulations!  🎉💯🌟
Good Points 👍

Kanban board is set up correctly ✔

Cheers and Happy coding! :clap: :clap: :clap:
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me [@shoirata] in your question so I can receive the notification.
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

As described in the Code reviews limits policy you have  limited number of  reviews per this project. If you think that the code review was not fair, you can request a second opinion using this form.


Added recursive directory watch

This pull request enables watching a hole directory for updates. All i did was adding the parameter recursive.
Example: etcd_client.eternal_watch('acid', recursive=True)

This was already added, not sure what happened here.


Allow specifying memory for Docker containers

Description
e.g. --memory 1g
Type of change

[ ] Bug fix
[x] New feature
[ ] Breaking change

@willmarks @cjwooo I will wait for a review next time!


Fix numbers always being added as a prefix

Numbers were always being added as the prefix for filenames when using simple naming scheme due to the export option not being converted to a boolean.

Thank you!


support mount of NonRootVolume

like https://github.com/kubernetes-sigs/cluster-api-provider-aws/issues/3105#issuecomment-1023076289

not high priority


Loading a saved multi-input model

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow):
I have written a simple standalone code to reproduce the error
OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
Colab
TensorFlow version (use command below):
v2.2.0-rc3-0-gaad398b5e9 2.2.0-rc3
Python version:
Python 3.6.9
CUDA/cuDNN version:
CUDA Version 10.1.243

Describe the current behavior

I save the whole model with a ModelCheckpoint callback
I try to load the model from de checkpoint files
TypeError: Error converting shape to a TensorShape: Dimension value must be integer or None or have an __index__ method, got TensorShape([None, 16]).

Describe the expected behavior
The model should be loaded and ready to continue training or to be used for evaluation
Standalone code to reproduce the issue

Other info / logs
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/execute.py in make_shape(v, arg_name)
    210   try:
--> 211     shape = tensor_shape.as_shape(v)
    212   except TypeError as e:

21 frames
TypeError: Dimension value must be integer or None or have an __index__ method, got TensorShape([None, 16])

During handling of the above exception, another exception occurred:

TypeError                                 Traceback (most recent call last)
/usr/local/lib/python3.6/dist-packages/tensorflow/python/eager/execute.py in make_shape(v, arg_name)
    211     shape = tensor_shape.as_shape(v)
    212   except TypeError as e:
--> 213     raise TypeError("Error converting %s to a TensorShape: %s." % (arg_name, e))
    214   except ValueError as e:
    215     raise ValueError("Error converting %s to a TensorShape: %s." % (arg_name,

TypeError: Error converting shape to a TensorShape: Dimension value must be integer or None or have an __index__ method, got TensorShape([None, 16]).

Was able to reproduce the issue with TF v2.1, TF v2.2.0-rc3 and TF-nightly. Please find the attached gist. Thanks!

I seem to face the same issue, although it's not during the loading of a saved model.
It occurs during model building/compilation itself.

Was able to reproduce the issue using TF version 2.5. Please find the gist here.

Hitting the same error

@pabloi09 Looks like this may be due to providing multi-input to a keras Sequential model. Please note that Sequential models only works with single-input and single-output. For multi input/outputs, please use Functional model.
The warning also clearly mentions about multi-outputs provided to the model.
I tried to remove one branch in your multi-input Sequential model. With those modification, i didn't see any error. Please check the gist here. Thanks!

Thanks to @jvishnuvardhan 's reply, I was reminded  to check my code and then I found I was using tf.keras.layers.Input, when I tried to use tf.keras.Input, the error just gone. Maybe the previous is a type of keras Sequential model?

Thanks to @jvishnuvardhan 's reply, I clear the error by remove Sequential model and just use Functional style code.

Closing this issue as this was resolved. Thanks!


Changed code to use the new css & asset imports instead of loading the whole lib from CDN

Moves all used styles to /static/style.css
Copies imported assets to /static
Version upgrade of semantic

Looks good! Please run yarn lint --fix, then I'll merge

Thanks!


Help needed: Is it possible to show multiple forums with the android sdk ?

I am able to show one forum on the screen using this code.
Config config = new Config(UserVoiceConstants.MYURL);
config.setForumId(UserVoiceConstants.USER_VOICE_ANDROID_FORUM_ID);
config.setCustomFields(Utils.getDeviceInfoForUserVoice(this));
config.setShowKnowledgeBase(true);
UserVoice.init(config, this);
Is it possible to show multiple forums at once ? I don't see it in the API. There was an online post from 2014 which said it was being worked on, but hasnt been updated.
Appreciate help on this.

No, it is not possible to display multiple forums.


Support virtio-fs

Testsuite passed

Can you split the systemd changes to their own commit?

We also still need logic to expose every path based drive as both 9p and virtiofs and have the agent support both.

Testsuite passed

Testsuite passed

Hmm, I don't think we should silently ignore virtiofsd being missing.
Also, as mentioned in my comment, we should do the same path check login for virtfs-proxy-helper.

OK, I'll change that.
Regarding virtfs-proxy-helper, I saw that the issue is assigned to someone else. That's why I didn't add code for it in this PR.

@monstermunchkin note that I've already done those changes for you :)
I pinged you on IRC to see if you were working late today, then proceeded to just do it myself!

And yeah, that issue is assigned to someone else, but since we're doing the same thing for this other binary, no good reason not to kill two birds with one stone and it's trivial enough that I don't think we'll be wasting anyone's time by doing it directly.


identification by mass spectrometry branch updates

This is mostly to make the terms more generic by decoupling MS methods from any specific molecule type and by decoupling mudpit from any specific chromatography and/or any specific MS/MS technology. Proposed changes:
MI:0032 (de novo protein sequencing by mass spectrometry) will be changed into 'tandem MS/MS' defined as:
Tandem MS/MS spectroscopy identify molecules by analyzing fragmentation spectra
of the initial MS peaks. It is commonly used to determine the amino acid sequence
of proteins where it relies on the generation, within MS/MS instrument, of
a nested set of fragments differing by one amino acid. Here, the fragmentation spectra
reveal the identity of the residues that have been removed at each degradation step
by measuring the mass difference of fragments differing of one residue. Tandem MS/MS
analysis is often performed on a set of peptides generated by protease treatment
of the protein (or mixture of proteins) of interest.
COMMENT: the change makes the term molecule type and MS technology neutral. It still applies
to de novo sequencing which is just a special case of tandem MS/MS as applied to proteins.
MI:0082 (peptide mass fingerprinting) definition will be simplified to read:
Protein identification by matching peptide masses, as measured by mass spectrometry,
to the ones calculated by applying in silico proteolityc fragmentation of the candidate protein
retrieved form a sequence database.
COMMENT: The change removes the way too long essay that currently hides as definition.
MI:0658 (multidimensional protein identification technology) will be simplified to read:
MudPIT is a method for rapid and large-scale protein identification by liquid
chromatography of protein fragments, which are typically generated by protease treatment,
that is followed by a tandem MS/MS mass spectrometry.
Apart from the definition change, MI:0658 has to be removed from predetermined branch as it can be (and typically is) used to identify arbitrary proteins
COMMENT: This makes mudpit generalized to any type of LC followed by tandem MS/MS step.

Alternative to making  MI:0032 into a generic 'tandem MS/MS' is to add a new,  generic tandem MS/MS term and then make MI:0032  its child.  I'm not sure, though, if it is worth the trouble...


Similar consecutive lines giving error in 0.47.0

/* @flow */

type T = { b?: string };

function foo(x: T) {
  if (x.b) {
    const s1:string = x.b.toLowerCase();
    const s2:string = x.b.toLowerCase();
  }
}

gives
8:     const s2:string = x.b.toLowerCase();
                         ^ call of method `toLowerCase`. Method cannot be called on possibly undefined value
8:     const s2:string = x.b.toLowerCase();
                         ^ undefined

https://flow.org/try/#0PQKgBAAgZgNg9gdzCYAoVAXAngBwKZgAqYAvGAN5gBGA-AFxgDOGATgJYB2A5mAL4Dc6KAFcOAYwxs4HMFDhwAFAA8GhAJQVUYMGyhhlAOiobyqAJBjpzJgEY6zdt1JglRgxjgAZRHhYBhAENGPAU1QW1tSw5rRgAme1ZOHjJXKncvH38gkLCtPlReVCA

This is the same as https://github.com/facebook/flow/issues/4040
See the reply there.


Setting for enabling and disabling auto left justify tables

Instead of tables being automatically left justified, it would be great if you could have a setting to choose whether you want your tables to be left justified. For context, the style guide for markdown that my team follows does not allow for the left justification.

I think this makes sense as a configure option. I'm on a vacation right now so don't expect that just now. After 12/11 I'll be back from vacation and will issue an update with such code.
Thanks for using my package.
Best regards!
--
Fernando X. F. Crespo

Em 2 de dez de 2015, às 04:31, Jonathan Leung<EMAIL_ADDRESS>escreveu:
Instead of tables being automatically left justified, it would be great if you could have a setting to choose whether you want your tables to be left justified. For context, the style guide for markdown that my team follows does not allow for the left justification.
—
Reply to this email directly or view it on GitHub.

Absolutely love it! Thanks!
—
Sent from my mobile–apologies for brevity and any typos!
hackedu.us |<PHONE_NUMBER>

On Dec 4, 2015, at 6:37 PM, Fernando<EMAIL_ADDRESS>wrote:
I think this makes sense as a configure option. I'm on a vacation right now so don't expect that just now. After 12/11 I'll be back from vacation and will issue an update with such code.
Thanks for using my package.
Best regards!
--
Fernando X. F. Crespo

Em 2 de dez de 2015, às 04:31, Jonathan Leung<EMAIL_ADDRESS>escreveu:
Instead of tables being automatically left justified, it would be great if you could have a setting to choose whether you want your tables to be left justified. For context, the style guide for markdown that my team follows does not allow for the left justification.
—
Reply to this email directly or view it on GitHub.

—
Reply to this email directly or view it on GitHub.

This is now up in 2.7.0
Hope you like it.


racer.racerBinPath is not set, but it actually is!

Stack Trace
racer.racerBinPath is not set in your config.
At undefined

undefined

Commands
     -3:56.4.0 snippets:expand (atom-text-editor.editor.is-focused.autocomplete-active)
     -0:31.5.0 core:save (atom-text-editor.editor.is-focused)
     -0:29.7.0 snippets:next-tab-stop (atom-text-editor.editor.is-focused)
     -0:29.7.0 snippets:expand (atom-text-editor.editor.is-focused)
     -0:29.7.0 editor:indent (atom-text-editor.editor.is-focused)
     -0:27.1.0 core:save (atom-text-editor.editor.is-focused)
     -0:22.2.0 core:backspace (atom-text-editor.editor.is-focused.autocomplete-active)

Config
{
  "core": {},
  "editor": {
    "invisibles": {}
  }
}

Installed Packages
# User
language-cmake, v0.1.4
language-rust, v0.4.5
racer, v0.17.2

# Dev
No dev packages

I have these settings on linux with racer installed using the cargo install method:

And even after restarting Atom I still get these when I type:

+1 for solving this . I am getting the same issue on ubuntu trusty with rust binaries installed instead of compiling source.

Update : i solved my problem by compiling racer from source and by corrected racer binary and rust source paths in the package settings. Thanks a lot this works now :100:

Had similar issues with an invalid path until I recognized a whitespace at the end of the line. Trimming the reference could perhaps prevent such mistake in the future. Moreover if the executable is not already in your PATH you have to add it yourself :)

Yes, I resolved this by upgrading atom v 1.2.4, adding export RUST_SRC_PATH=".../src/rust/src" to my .profile and logging out/in, and making sure that the racer bin path in atom was set to the full path of the racer binary and NO TILDE for home - that doesn't get expanded correctly for some reason.

As of Atom 1.6.1 it still doesn't work, racer alone in the terminal works just fine. Ubuntu 15.04.

@MrAndMrsK - Don't set it to a path with ~/, use /home/user/ instead. This fixed it for me.

@richarddewit I've set an absolute path - still doesn't work.

@vrcod mind sharing what it's actually set to?

@edubkendo as in absolute path? /home/username/.cargo/bin/racer for racer executable and /usr/local/src/rust/src for rust source dir.

I found that it only works on Windows if you give it the full path to the binary, not just to the bin folder containing racer.exe. e.g. C:\Users\username\.cargo\bin\racer.exe works, but C:\Users\username\.cargo\bin does not.
The documentation (and the default path) seem to indicate that you only need to point it at the folder, which is either misleading or a bug on Windows.

@TomGillen I am happy to make that more clear if you have any suggestions. Current wording:

Full path (including executable) of Racer's binary (e.g. /Users/me/racer/bin/racer or c:\racer\bin\racer.exe)

I also noted something somewhat related to this now: If I don't set this setting at all, it refuses to try to use whatever I have in my path (and racer is actually in the path in my case). I think it should default to that.
@edubkendo - do you want me to file a separate issue about that? I could even go ahead and try to fix it, but I don't know how to set up a proper "dev environment" for Atom or anything.

Just copy racer binary to folder that doesn't contain dots in it's path. It works for me. Sorry for my eng.

Hey @h3110w that doesn't work at all. I'm still getting errors I have the racer binary and rustfmt binary in a path that doesn't contain any dots.

This is perhaps related to the use of rustup not installing source code? Which is fixed by installing source with rustup component add rust-src and in racer settings Path to the Rust source code directory as /home/username/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src
Not being able to locate the racer bin? In terminal cargo install racer and in race settings Path to the Racer executable as /home/username/.cargo/bin/racer

I am having this very same issue.  I have set my rust source directory to /home/bryan/.rustup/toolchains/nightly-x86_64-apple-darwin/lib/rustlib/src/rust/src
which does contain the rust srcs.  Please get this fixed!

I solved this issue by setting racerPath properly.

The path to Racer has to point to the Racer binary executable (this is NOT a directory we request here).

I had the same issue. To save others time, i just sum up the steps to configure racer correctly:

Install everything, which is requested in the installation section of the racer documentation.
Build the source of Rust according to the guide at github. By default this will be installed at Linux Ub


Are you compliant with semantic versioning?

http://semver.org/ Can this be considered? If you already follow this, can you mention it in README?

We do our best to comply with "semver" and try not to include things that may be backwards incompatible or break things in patch/minor versions, because we think that makes sense. I don't think there's need to mention / link to semver.org from our readme, though. Thanks!


error:1E08010C:DECODER routines::unsupported

i have no clue what this means or how to fix it. im using the useServiceAccountAuth method.

What was the answer to this @xxCosta - I've got the same thing when importing private key from .env file

This should really be somewhere in the docs @theoephraim
process.env.GOOGLE_SHEETS_PRIVATE_KEY.replace(/\\n/g, "\n"),

I have same issue .replace(/\n/g, "\n"), doesn't help


HomeAssistant on RPi4 Wifi Question

Hello,
I am using HomeAssistant on Raspberry Pi 4.
Can I use Pi4's 5GHz Network to connect my Home Network and 2.4GHz as Wifi Access Point for some IoT devices?

no, you could use both to connect theoretically.. but there is a hardware limitation in access point mode.

Hi @iosoft - thanks for the question. As @G2G2G2G said, the answer if technically no (in regards to the two different bands).
However, I'm going to look into this PR which would enable STA+AP mode. This would allow connection of the Pi4 to your home network, and allow other devices to connect to the AP. Worth reading the PR for more information. Stay tuned.

Hi
It's possible to set both modes in parallel, but performance is horrible (pi Wireless chipset is very limited). Suggestion on use 2 adapters is, IMHO, the best setup.


Some confusion about neural network architecture in NADST

I have noticed that the fertility encoder took cross-entropy loss as the optimization objective while the KL divergence loss was taken as the optimization objective of the state decoder.  is there any consideration for this loss selection?

Hi @YourThomasLee , sorry the late response. I chose to have the fertility take cross-entropy loss as optimization objective as I notice the training process is very similar to one using KL divergence loss. This can be due to the small vocabulary set in fertility decoder (e.g. limited range of numerical values) and hence, using KL divergence loss does not benefit much to improve the training. In state decoder, the vocabulary set is much larger (e.g. tokens) and using KL divergence with smooth labelling can reduce overfitting to some extent.

Thanks a lot!

Actually, I have tested some different combinations of $\alpha,\beta$ for fertility prediction loss and state value prediction loss and it seems like there is still room for improvement. Thus, I want to make sure whether the combination of $\alpha=1,\beta=1$ is the best result for model training(I am afraid that everything I did was that you have done, and the result I got is not ).
When I try to reproduce the reported result, I find the random seed is essential. Often the case, I got the trained model with joint accuracy 45~47%. If possible, could you tell me how you get your best-trained model, did you set a fixed random seed in the program?
I find that in NADST, there is no module for representation learning of context/dialogue history. Is there any consideration for model design?
In Transformer, multi-headed attention is usually followed by a position-wise forward layer, but in NADST, the model is designed as follows.
$$
domain-slot;pair=Attention(domain-slot;pair,domain-slot;pair,domain-slot;pair)\rightarrow domain-slot;pair=Attention(domain-slot pair vector, context, context)\rightarrow domain-slot;pair=Attention(domain-slot pair vector, context, context)\rightarrow position-wise-forward-layer(domain-slot;pair)
$$
Actually, there is no position-wise forward layer between the two attention layers.  I would appreciate it if you can explain it or provide some material/papers about the design mechanism.

Thanks very much for your replies!!!!!

hi @YourThomasLee,

Actually, I have tested some different combinations of $\alpha,\beta$ for fertility prediction loss and state value prediction loss and it seems like there is still room for improvement. Thus, I want to make sure whether the combination of $\alpha=1,\beta=1$ is the best result for model training(I am afraid that everything I did was that you have done, and the result I got is not reliable).

The finetuning of \alpha and \beta during our project might not be optimal and it is possible that you can find better combination. I am just curious if you can share which combination you have is the best?

When I try to reproduce the reported result, I find the random seed is essential. Often the case, I got the trained model with joint accuracy 45~47%. If possible, could you tell me how you get your best-trained model, did you set a fixed random seed in the program?

The random seed is not fixed actually. It is possible that the model performance fluctuates due to different initilizations. One possible approach you can explore is to use pretrained word embeddings, so that the models are not trained from scratch completely.

I find that in NADST, there is no module for representation learning of context/dialogue history. Is there any consideration for model design?

The current model only encodes context/dialogue history through simple word embeddings with positional encoding since our main goal is to reduce system latency. It is open to other more sophisticated encoding technique.

In Transformer, multi-headed attention is usually followed by a position-wise forward layer, but in NADST, the model is designed as follows.
$$
domain-slot pair=Attention(domain-slot pair,domain-slot pair,domain-slot pair)\rightarrow domain-slot pair=Attention(domain-slot pair, delex-context, delex-context)\rightarrow domain-slot pair=Attention(domain-slot pair, context, context)\rightarrow position-wise-forward-layer(domain-slot pair)
$$
Actually, there is no position-wise forward layer between the two attention layers.  I would appreciate it if you can explain it or provide some material/papers about the design mechanism.

Actually there should be position-wise forward layer between attention layers in the current system, which is in the following code:
https://github.com/henryhungle/NADST/blob/afdc1d1f7ecb855b03933e441c0b2fcefbc28feb/model/modules.py#L43-L65
This function is called after each attention step here:
https://github.com/henryhungle/NADST/blob/afdc1d1f7ecb855b03933e441c0b2fcefbc28feb/model/modules.py#L84-L106

Thanks for your detail replies! Actually, I tried to fix the random-seed throgh following codes,

def seed_torch(seed=1029):
	random.seed(seed)
	os.environ['PYTHONHASHSEED'] = str(seed)
	np.random.seed(seed)
	torch.manual_seed(seed)
	torch.cuda.manual_seed(seed)
	torch.cuda.manual_seed_all(seed) # if you are using multi-GPU.
	torch.backends.cudnn.benchmark = False
	torch.backends.cudnn.deterministic = True

but so disappointed, even the random seed is fixed, the model training still can not be reproducible. So, I don't know whether the combination of $\alpha, \beta$ is better or not. It would be appreciated if you can provide advice.
4.  Thanks for your explanation! To my comprehension of this part, a sublayer consists of four parts,
I. domain-slot pairs self-attention
II. domain-slot pairs to dialogue history attention
III. domain-slot pairs to delexical history attention
IV. position-wise forward layer.
Indeed, I want to know the design mechanism of that there is no position-wise forward layer in I, II, and II, III.


Run CI on JDK 10

If build passes, closes #1000

Unfortunately I now see dokka is not compatible with JDK 10: https://github.com/Kotlin/dokka/issues/294
So the build fails, though detekt project itself may be OK. Not sure of next steps... it definitely makes sense to keep testing on current Java versions to proactively pick up on compatibility issues.

I've restarted appveyor ci.


--version reports 2.3

I have lxd 2.4 installed on my system but lxd --version (or lxc --version) returns 2.3
lxd:
  Installed: 2.4-0ubuntu1
  Candidate: 2.4-0ubuntu1
  Version table:
 *** 2.4-0ubuntu1 500
        500 http://mirrors.nayatel.com/ubuntu yakkety/main amd64 Packages
        100 /var/lib/dpkg/status

Is there a stray one in your path somewhere? What's the output of which -a? I just looked at the code and it should be right, but who knows what that means :)

Crap, we do have a problem with the LXD 2.4 tarball saying 2.3... Will release a 2.4.1 now to fix that mess.

Upstream tag is correct, upstream published tarball, not so much...

Fixed, 2.4.1 released.


Managed Apps Upgrades (Month from Tue, 06. Apr 2021)

App Upgrade and Maintenance week next week (12. Apr), but @ced0ps wants to do his during cooldown.
NGINX Ingress Controller @giantswarm/app-squad-nginx
https://github.com/giantswarm/nginx-ingress-controller-app

Link to latest release: https://github.com/giantswarm/nginx-ingress-controller-app/releases/tag/v1.16.0

[x] check if no new release from upstream
[x] upgrade https://github.com/giantswarm/nginx-ingress-controller-app/pull/188
[x] release

External DNS @giantswarm/app-squad-external-dns
https://github.com/giantswarm/external-dns-app

Link to latest release:
If won't upgrade, why?: Our app is already on the latest upstream

[x] check if no new release from upstream
[ ] upgrade
[ ] release

Cert Manager @giantswarm/app-squad-cert-manager
https://github.com/giantswarm/cert-manager-app

Link to latest release: https://github.com/giantswarm/cert-manager-app/releases/tag/v2.5.0
If won't upgrade, why?

[x] check if no new release from upstream
[x] upgrade https://github.com/giantswarm/cert-manager-app/pull/151
[x] release

EFK @giantswarm/app-squad-efk
https://github.com/giantswarm/efk-stack-app

Link to latest release:
If won't upgrade, why?

[ ] check if no new release from upstream
[ ] upgrade https://github.com/giantswarm/efk-stack-app/pull/73
[ ] release

Kong @giantswarm/app-squad-kong
https://github.com/giantswarm/kong-app

Link to latest release:
If won't upgrade, why?

[ ] check if no new release from upstream
[ ] upgrade
[ ] release

Prometheus Operator @giantswarm/app-squad-prometheus
https://github.com/giantswarm/prometheus-operator-app

Link to latest release:
If won't upgrade, why?

[x] check if no new release from upstream yes
[ ] upgrade https://github.com/giantswarm/prometheus-operator-app/pull/92
[ ] release

Loki @giantswarm/app-squad-prometheus  @giantswarm/app-squad-loki
https://github.com/giantswarm/loki-app

Link to latest release:
If won't upgrade, why?: Our app is already on the latest upstream

[x] check if no new release from upstream
[ ] upgrade
[ ] release

aqua
https://github.com/giantswarm/aqua-app

[ ] Upgrade https://docs.aquasec.com/v5.3/docs/53-update-15
[ ] Release

Link to latest release:
If won't upgrade, why?

Notes

Team divides the app upgrades amongst ourselves. Please add @ name beside the app
30 Day Upgrade Promise: By default, we upgrade our apps within 30 days of an upstream release.
Engineer can override this default and decide not to upgrade with good reason.

EFK - @webwurst please do it EFK master.
Prometheus - @ubergesundheit
Loki - @ubergesundheit

kong - @ubergesundheit
Current status is that it seems at least loki and kong subtree needs to be re-initialized because I think our squashing makes the commits unusable for git subtree
I'll investigate what to do and how to mitigate this in the future.

Our loki is already on 2.2.0 skipping..

Prometheus upgrade PR is here https://github.com/giantswarm/prometheus-operator-app/pull/92 Will test on monday

EFK upgrade PR is here https://github.com/giantswarm/efk-stack-app/pull/73

Mon, 26. Apr 2021 for Aqua, @webwurst is waiting for Aqua to provide.

@ubergesundheit and @piontec can sync re: Kong subtree tomorrow in SWH.

Mon, 26. Apr 2021 for Aqua, @webwurst is waiting for Aqua to provide.

https://docs.aquasec.com/v5.3/docs/53-update-15 is now available.

Mon, 26. Apr 2021 for Aqua, @webwurst is waiting for Aqua to provide.

https://docs.aquasec.com/v5.3/docs/53-update-15 is now available.

hi @webwurst because of this POC, I think we should provide this as soon as we can. Top priority :) By when can you do this? Please ask for help if you need it.

Prometheus-operator-app is done https://github.com/giantswarm/prometheus-operator-app/releases/tag/v0.8.0

aqua is done https://github.com/giantswarm/aqua-app/releases/tag/v5.3.4

Done! Will check Kong next round of upgrades. We're taking care of customers issues w Kong currently anyway.


(baseline) k-shortest paths algorithm

implement a Yen's/Eppstein's KSP Algorithm wikipedia as a baseline for eco-routing outcomes.

actually, that would lead to issues for us with national-scale routes. we should implement a single-via paths algorithm for k-shortest path finding. that's described here at the very least.


drivers: ethernet: add get_phy callback for stm32 driver

Adds a get_phy callback for the Ethernet API in STM32 driver.

@erwango Still waiting for a review 👀

@wkhadgar My bad for the delay. Would you mind rebasing ? There were changes on this recently, I'd like to be sure there is no conflict. Also, would you mind building against tests/drivers/build_all/ethernet (using twister --vendor st) ?

@erwango I will take a look at that by this weekend! The end of the year is always really busy with all the celebrations and projects hahaha
In the meantime, can you detail more about these twister tests? You'd like the output of them or? I'll admit I didn't run twister over those changes and just eyeballed it to see any mismatch with building over different boards, so any detail on how I should perform the tests is very welcome!


Let find support the -force flag

Currently when the safecontent option is enabled and the find action is used and returns a single exact match, it will say:
"Found exact match in 'path'. No safe content to display, you can force display with show -f."
This is a bit misleading, since the -f flag is not supported by the find action currently, but by the show.
This adds support for it so that it works now with find path -f.
Adding some tests as well.

Codecov Report

Merging #1251 into master will increase coverage by 0.03%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #1251      +/-   ##
==========================================
+ Coverage   62.48%   62.51%   +0.03%
==========================================
  Files         184      184
  Lines       10321    10324       +3
==========================================
+ Hits         6449     6454       +5
+ Misses       3073     3072       -1
+ Partials      799      798       -1

Impacted Files
Coverage Δ

commands.go
87.72% <ø> (ø)
:arrow_up:

pkg/action/find.go
53.57% <100%> (+5.42%)
:arrow_up:

pkg/action/show.go
51.61% <100%> (+0.53%)
:arrow_up:

Continue to review full report at Codecov.

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


Can you share a printable layout?

I want to compare the layout to the kyria and cantor, to see if the thumb cluster would be more comfortable for me. Thanks!

Hello!
Do any of these files sort out your issue?

I think that the "both_A4", the second file, should have an A4 sized layout in png format that you can print onto paper! If it isn't up to your standards, feel free to use the svg (the first one) to edit!
If you think this issue has been resolved with those files, please close it when you are satisfied! Otherwise, I'll close it within a week or so.

The first one is great. I was going to suggest adding the layout to https://jhelvy.shinyapps.io/splitkbcompare/ but apparently it's not maintained any more. I think it's a useful file to share in the readme so interested folks can compare with other options. Thanks! resolving now.


Improve add-ons documentation

I say all this with love and the hope that the project can continue to improve and thrive.
As a new user, I find the documentation surrounding the add-ons ecosystem to be confusing, and ultimately unhelpful. The add-ons present to me the most compelling use cases for Caddy. But if add-ons are not simple and intuitive, then the overall value proposition for Caddy diminishes. At least for me, so take that for what it's worth.
The current state of add-ons documentation:
I followed the wonderful tutorial "Let's Encrypt in (literally) 90 seconds". Now that I have Caddy running, I check out the docs to see what else I can do.
Oh look, a Git integration!

Ok, so I'll go to the GitHub repo to learn how to install this:
The README has no installation instructions. Ok, I'll stop ctrl-f'ing and actually read the README. Ok, nothing much, but at the bottom there is this link to BUILDING.md

I'm not much of a build from source kind of person, but what choice do I have?

So this note is more helpful. If I don't want to build from source to install an add-on, I need this thing called Caddyext. It turns out Caddyext is a bit much (for me, at least for now). Anyways, after all that (and a little more Googling), I learned that to get add-ons, you need to do at least one of the following:

to select them in the download GUI at download time
select them as CLI arguments in the CLI downloader/installer
install golang and use caddyext.

These are all fine options, but there is no easy-to-find, central place where this information is communicated.
I suggest there be a section in the Caddy docs called "Add-ons" explaining this. Anyways, if you agree, I'm happy to take a first stab at this.

Add-ons were an afterthought, actually, but they turned out to be one of Caddy's most popular and powerful features. But because we implemented them so quickly to support some demand, we didn't think through documentation and a lot of details at the time.
Users of Caddy can find most of what they need in the Caddy docs on the website: https://caddyserver.com/docs. Caddy developers can find most of what they need in the wiki: https://github.com/mholt/caddy/wiki - including how to build and deploy add-ons.
It seems like the main issue you're highlighting is about how to get add-ons. Perhaps we could simply append to the text in the green box to say, "Select this feature on the download page to get it."

As a first pass, I do think adding better instructions to that box is a good idea. Something like

"This addon is not included in the caddy core. You can download a custom binary that includes it on our [download page]"

Some interesting Wikis to take ideas from https://github.com/showcases/projects-with-great-wikis

Hey all!
I have to improve the documentation of my plugin caddy-hugo but this is what I think: the documentation on caddyserber.com should be more end user directed while the info on GitHub should be directed to developers. How should I divide the information between repo's readme and caddy website?

I personally would prefer caddyserver to read the markdown on the project pages directly.

Awesome idea. Why not doing that? @mholt

And something like:
caddy --examples gogs

To read from https://github.com/caddyserver/examples and test some example conf?

@hacdias

I have to improve the documentation of my plugin caddy-hugo but this is what I think: the documentation on caddyserber.com should be more end user directed while the info on GitHub should be directed to developers. How should I divide the information between repo's readme and caddy website?

I agree completely. So in the repo's readme, put instructions for developers, and on the website, instructions for end users. (Maybe a line at the top of the readme for end users who wind up there by accident, pointing them to the download page and/or the docs on the website.)
@abiosoft

I personally would prefer caddyserver to read the markdown on the project pages directly.

I would too, but this presents a couple problems:

Syncing the latest changes
Staying consistent for all directives. It's important that the docs have a consistent formatting, layout, and structure so they're easy to read.

@humboldtux That's an interesting idea; perhaps a tutorial add-on or something.

We can have compulsory format defined maybe in a separate file caddyreadme.md.
I don't have the time luxury yet but its something I will like to look into later.

I made a proposal in buildsrv for something like this. My latest directive I submitted has a markdown format, although code samples are not yet highlighting in pure md. Those still need to be raw html, although I have an idea for that still. Would be really nice to keep a md file in my own repo and have something (buildsrv maybe) sync it to caddyserver.com when it updates the code versions that get built.

I've added a sentence in the green box on the docs explaining how to get add-ons. The whole process of deploying add-ons will be improved in the future. Thanks for the feedback!


How to read Tag Id from multiple tag types

I need to read id from tag which is either NfcA or NfcV.
Is it possible to do this without calling NfcManager.requestTechnology multiple times?

@flowridr yes, this is possible, you can call registerTagEvent, there's a id property inside the resolved value.

Hello,
I have the same kind of problem. I would like to detect tag from type A B & V.
Is it possible to detect and request multiple technologies ?

@ChristopheBelpaire
Hi, have you found any solution to detect type-B card? Thanks.


Websockets and Cloudflare

As per issue #67

I have the same problem

Can you elaborate?

@dparlevliet It looks like your fix may have broken the ability to override the ability to return true/false from a custom reconnecting service handler.

It shouldn't. I did add a forced reconnection to the disconnected method so if you want to completely handle reconnection yourself you'd have to override that one, too. Can you share some more information as to what you're doing and how you're doing it?

@mhuggins I confirmed that you can indeed replace service handlers as intended. Check the examples/bittrex.websockets.client.js file for an example on how to do it with the new changes. There are further examples in that folder and here https://github.com/dparlevliet/node.bittrex.api#websockets. If you still have issues please give me some more information on your specific usage.


Contradictory comments in boot2_w25q080.S and exit_from_boot2.S

According to the comment boot2_w25q080.S, upon entry lr is 0x10000100:
https://github.com/raspberrypi/pico-sdk/blob/2062372d203b372849d573f252cf7c6dc2800c0a/src/rp2_common/boot_stage2/boot2_w25q080.S#L95-L96
According to the comment in exit_from_boot2.S however, it is zero, and that is what the code checks for:
https://github.com/raspberrypi/pico-sdk/blob/2062372d203b372849d573f252cf7c6dc2800c0a/src/rp2_common/boot_stage2/asminclude/boot2_helpers/exit_from_boot2.S#L12-L13
So my guess is the comment in boot2_w25q080.S is incorrect (as well as the one in boot2_at25sf128a.S).

Perhaps this is related to #10 ? :man_shrugging:

Perhaps this is related to #10 ? 🤷♂

It doesn't look like it: The 0x10000100 comment already existed in the SDK's initial release 26653ea:
https://github.com/raspberrypi/pico-sdk/blob/26653ea81e340cacee55025d110c3e014a252a87/src/rp2_common/boot_stage2/boot2_w25q080.S#L94-L95
#10 merely extracted the code with the second comment to its own file exit_from_boot2.S.


Xcode 6 & Example-IOS

@smileyborg , so is Xcode 6.4 no longer compatible with the Example Projects?

Hi @zivelli,
Xcode 6 should work fine with the example app, just make sure to build the scheme Example-iOS.
Please let me know if you see otherwise!

Thnxs, I get Assertion Failure in -[ALiOSDemoListController displayDemoAtIndex:]
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Class should not be nil!'

 This is a bug, fixing it right now :)

Thnxs man, couldn't figure out how to get around this bug. Look forward to the update!

OK, should be all fixed. Please give the latest a try!

Awesome! I can confirm, works on my iPhone 5S and IOS Simulator - iphone 6 & 6+
Thnxs


Productivity Docs for 16.5

[ ] Combine wrap, indent, and align doc into one and include binary expressions
[ ]  Add private field from Constructor
[ ] Convert if to switch expressions or switch statements
[ ] Simplify string interpolation
[ ] Make member static
[ ] Extract local function

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: e8ce42b1-5ca3-2bba-be51-172e0ad715fd
Version Independent ID: 3e28ccb0-f87e-bb74-c4f0-ed0ed2f1b364
Content: Refactoring - Visual Studio
Content Source: docs/ide/refactoring-in-visual-studio.md
Product: visual-studio-windows
Technology: vs-ide-general
GitHub Login: @TerryGLee
Microsoft Alias: tglee

@mikadumont -- Mika, thank you for your feedback; we appreciate it. To make sure we have all the information needed to triage your issue, please provide more context around your general task or desired documentation update.

@mikadumont -- Mika, I misunderstood the context here; @TerryGLee enlightened me.


feat(AlgebraicGeometry/EllipticCurve/Projective): implement group operations on point representatives for projective coordinates

Define the analogous secant-and-tangent negation neg and addition add on PointRep over F, and lift them to PointClass. Define Point as a PointClass that is nonsingular. Prove in neg_equiv and add_equiv that these operations preserve the equivalence. Prove in nonsingular_neg and nonsingular_add that these operations preserve nonsingularity by reducing it to the affine case, and lift these proofs to PointClass.
This is the third in a series of four PRs leading to #8485

[x] depends on: #9416
[x] depends on: #9417

Ok, that's fine with me. It's easy to add the @[simp] tags at a later stage, after all.
bors merge

This fell off the queue when bors crashed yesterday
bors r+
Just in case:
bors d+

bors r+

bors r+


Custom JSON response from Policy-Based Authorization is being overwritten

https://github.com/aspnet/Identity/issues/858

@HaoK?
The repro is very MVC specific, it may be an issue with the flow there.

In RC1 I was using AuthorizationFilterAttribute to check my requirements and create a custom JSON response with a message and 403 status code.
In RC2 the AuthorizationFilterAttribute has been removed (https://github.com/aspnet/Mvc/issues/4233) because authorization policies and requirements are now the recommended way to handle authorization.
However, I can't figure out how to use policies to return a custom message/status code. If any of my policy handlers fail then whatever middleware (I think its the middleware?) I use seems to intercept the response and overwrite it with a raw 403 response.
I've tried the following middleware:
app.UseIdentity()
app.UseJwtBearerAuthentication()
app.UseOAuthValidation() (AspNet.Security.OAuth.Validation)

@blowdart for his thoughts as well.  but its not the Policy's job to return custom message or status code.  you should be able to handle authZ failures gracefully at a higher level.

What level should I be handling this at? I don't want to fill each controller action with authorization logic and the AuthorizationFilterAttribute has been removed...
It makes sense to me that I can decorate a controller action with something like:
[Authorize(Policy = "ValidLicence")]
and if someone submits a request with an out of date licence they get the response:
Status code: 403
Reason: "Your licence has expired"

Especially as I add more requirements to my policies... A client could receive a 403 for any number of reasons and its helpful if the client can know why it was forbidden.
I understand not wanting to return custom status codes from policies but what about a custom message? That way we can optionally tell a client/user what requirement they failed.

Its not unreasonable, but it'd be hard to make generic so it flows over all different types of responses, headers, JSON or HTML. That's certainly outside of the scope for authorization itself, as it has no notion of presentation.
Worth thinking about in 1.1.

@levitatejay I took the liberty to close the related ticket you opened on the OpenIddict repository, since OpenIddict is not responsible of applying the authorization policies.

I've tried the following middleware:
app.UseIdentity()
app.UseJwtBearerAuthentication()
app.UseOAuthValidation() (AspNet.Security.OAuth.Validation)

As mentioned, the scenario you're trying to achieve will likely require important infrastructure changes in ASP.NET Core to make the authorization stack less opaque than it is currently (at least, to allow returning an error message).
Unfortunately, this is not something I can easily implement in the OAuth2 validation middleware (we'll port the error/error_description/error_uri handling from the JWT bearer middleware in alpha2, though).
Definitely a scenario to support in the next version, IMHO.

Could someone please recommend a workaround for the meantime?
In RC1 I was creating a custom AuthorizationFilterAttribute for each case but they are gone in RC2.
I have a few ideas but I don't like any of them:

Throw custom exceptions in my requirement handlers and catch them somewhere (where?) and modify the response then?
Create a new scoped service with an IAuthorizationRequirement FailedRequirement property which the requirement handler would set when it fails and then write some new middleware that checks for a failed requirement and modifies the response.
Write auth logic in every controller action and handle the response there.

Also where is the response body being overwritten? I can see in Microsoft.AspNetCore.Authentication/AuthenticationHandler.cs the response status code is being overwritten:
protected virtual Task<bool> HandleForbiddenAsync(ChallengeContext context)
        {
            Response.StatusCode = 403;
            return Task.FromResult(true);
        }

But where is the body overwritten?

It's probably not overwritten so much as merely ignored and never sent from mvcContext.Result.

@Tratcher Thank you! I just discovered that I can change the response from the requirement handler by using: mvcContext.HttpContext.Response.Body.Write(data, 0, data.Length);
It seems that writing to the response body causes the auth middleware to ignore the challenge... (HandleForbiddenAsync isn't getting called). I'm not sure why though?
Are you able to shed some light on why this works but setting the context.Result doesn't? Is there a way to use context.Result? It seems cleaner than using a stream writer
Is this okay as a workaround until there is a supported way to return messages for requirements? I'm nervous about interfering too much with the authentication pipeline

HandleForbiddenAsync can't run after you write to the body because the headers have already been sent. I don't recommend this approach as it can flush the headers before MVC is finished and may cause errors if MVC tries to set more headers.

Its not unreasonable, but it'd be hard to make generic so it flows over all different types of responses, headers, JSON or HTML. That's certainly outside of the scope for authorization itself, as it has no notion of presentation.

If the authorization middleware has no concept of presentation then it should be possible for us to put in our own middleware in the pipeline that can inspect what requirements failed for the request and modify the response body accordingly.

@levitatejay Thank you! I just discovered that I can change the response from the requirement handler

Where is this handler? I also would like to return different JSON messages when different claim requirements fail. Right now I'm getting empty result with Status Code 403.

Apologies but I think this would be more nicely handled by status code pages extension, I opened an issue there: https://github.com/aspnet/Diagnostics/issues/316

Will be tracked via https://github.com/aspnet/Security/issues/901 as well

I was able to send a custom authorization failure message by adding a custom error handling Middleware and let the AuthorizationHandler throw the exception (with the proper message) I am expecting in the Middleware and write to the httpContext.Response.

I would double on that. Need a way to indicate the reason why policy is failed. In our case it is when user need to accept new "privacy policy".

I would also like to be able to set a response body depending on the policy that failed.  Right now I'm using the events from AddAuthentication but this is too generic for the solution I'd like.
            services.AddAuthentication(_settings.AuthenticationScheme)
                .AddJwtBearer(_settings.AuthenticationScheme, options =>
                {
                    options.TokenValidationParameters = tokenValidationParameters;
                    options.Audience = _settings.Audience;
                    options.ClaimsIssuer = _settings.Issuer;
                    options.Challenge = "Bearer";
                    options.Events = new JwtBearerEvents
                    {
                        OnChallenge = context =>
                        {
                            context.HandleResponse();

                            var response = new Response(HttpStatusCode.Forbidden, "Your session has ended due to inactivity");

                            return context.Response.WriteAsync(JsonConvert.SerializeObject(response));
                        }
                    };
                });